一个流水灯程序,不知错在哪里,请高手支招

2019-07-16 00:07发布

#include<reg52.h>
#define uchar unsigned char
uchar i=1;
main()
{ P0=0xff;
  EA=1;
  EX0=1;
  IT0=0;
  while(1);
}
voidINT0 () interrupt 0
{switch(i)
  { case 1:P0=0xfe;break;
    case 2:P0=0xfd;break;
    case 3:P0=0xfb;break;
    case 4:P0=0xf7;break;
    case 5:P0=0xef;break;
    case 6:P0=0xdf;break;
    case 7:P0=0xbf;break;
        case 8:P0=0x7f;break;
   }
   i++;
   if(i==9)
   {EA=0;EX0=0;}
  }
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
xieyang
1楼-- · 2019-07-16 02:41
本帖最后由 xieyang 于 2013-6-15 15:37 编辑

干嘛用中断啊。。。。。。。
叫个撒名啊
2楼-- · 2019-07-16 07:25
从你的程序看先是开启中断总允许,然后是允许外部中断零,然后设置了外部中断低电平有效,然后无限循环,在循环过程中若有按键按下或是给予低电平则转入终端服务子程序,然后就是点亮流水灯,从程序上看貌似没撒问题,不知道你是不是给对了低电平,还有这个中断是INTO,也就是P3.2脚

评分

参与人数 1积分 +3 收起 理由 xiaoliu241 + 3 您的付出是论坛的动力,感谢您一直支持!.

查看全部评分

村里有个姑娘叫
3楼-- · 2019-07-16 10:40
ITO=1                         .........
村里有个姑娘叫
4楼-- · 2019-07-16 16:32
#include<reg52.h>
#define uchar unsigned char
uchar i=1;
main()
{ P0=0xff;
  EA=1;
  EX0=1;
  IT0=1;
  while(1);
}
voidINT0() interrupt 0
{switch(i)
  { case 1:P1=0xfe;break;
    case 2:P1=0xfd;break;
    case 3:P1=0xfb;break;
    case 4:P1=0xf7;break;
    case 5:P1=0xef;break;
    case 6:P1=0xdf;break;
    case 7:P1=0xbf;break;
    case 8:P1=0x7f;break;
   }
   i++;
   if(i==9)
   i=1;
}

评分

参与人数 1积分 +3 收起 理由 xiaoliu241 + 3 您的付出是论坛的动力,感谢您一直支持!.

查看全部评分

一周热门 更多>