51单片机按键中断控制流水灯

类似转盘一类,一个八个灯,先流水灯点亮10秒后,停止到某一个灯,然后这个灯亮,其他都不亮,十分感谢大佬们
或者是中断控制,先按一下开始,再按一下停止,再按一下复位,然后再开始,如此循环

第1个回答  2018-01-03
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
uchar led,time=0;
sbit key=P1^0;
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
led=_crol_(led,1);
P0=led;
time++;
if(time>=200)TR0=0;
}
main()
{
uchar keyval=0;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
EA=1;
while(1)
    {
    if(key==0)
        {
        while(key==0);
        keyval++;
        keyval%=3;
        }
    switch(keyval)
        {
        case 0:led=0xff;P0=led;break;
        case 1:TR0=1;led=0xfe;break;
        case 2:TR0=0;break;
        default:break;
        }
    }
}

追问

麻烦老哥了,我去试试

本回答被提问者和网友采纳
第2个回答  2018-01-03
按键中断控制流水灯
我可以做追问

对的,老哥,谢谢你

相似回答