微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 各位大哥!能否帮小弟看看这程序?

各位大哥!能否帮小弟看看这程序?

时间:10-02 整理:3721RD 点击:

#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
#define led P2
sbit sb = P0^0;
void ys(uint i)
{
    unsigned char j;
    for(i; i > 0; i--)   //循环 600*255 次
        for(j = 255; j > 0; j--);
}
void KAISHI(uchar x)
{
        uchar i;                                                      
        for(i = 0; i < x; i ++)
        {
                   led = 0xff;
                   ys(600);
                   led = 0x00;
                   ys(600);
        }                                                      
}
void main(void)
{
        EA = 1;                 //打开总中断
        EX1 = 1;         //INT1中断使能位
        IT1 = 1;         //负边沿触发
        while(1)
        {
            led = 0x00;
            ys(600);
                led = 0xff;
                ys(600);
        }
}
void MY_INT1(void) interrupt 2                //中断
{
        uchar bhled = led;
          EX1 =0;
         ys(20);
        if(sb == 0)                                         //判断开关
          {
             KAISHI(5);                                   //五次
                  led = bhled;
          }
        if(sb !=1)
          ys(20);
        EX1 = 1;
}

什么要求都没有说。
中断函数中的
        if(sb == 0)   
        {}
        if(sb !=1)
        {}
这两句不是一样的吗?

小编想表明 傻逼看这个帖子。用的时间。哎。

这是确定是否还按下的

假设sb=0;那么
中断函数中的
        if(sb == 0)   
        {}
        if(sb !=1)
        {}
都会执行。
假设sb=1;那么
中断函数中的
        if(sb == 0)   
        {}
        if(sb !=1)
        {}
都不会执行。

请以后发表类似贴的朋友注意一下吧,不要只是把程序贴上来就说看一下。你这究竟是要别人学习呢,还是要别人纠错呢?不要误导了别人,至少要说明你的程序的功能和错误点先!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top