流水灯控制程序

2020-01-25 15:23发布

#include <reg51.h>
#include<intrins.h>
void delay_ms(unsigned int x)   //误差 0us
{
    unsigned char a,b,c;
    for(c=x;c>0;c--)
        for(b=142;b>0;b--)
            for(a=2;a>0;a--);
}
void main(void)
{
ET0=1;//外部中断0、1下降沿中断
ET1=1;
EX0=1;
EX1=1;
EA=1;
while(1)
      P0=0x00;  // P1的8个LED,高电平亮
}

void int0_int()  interrupt 0
{
        unsigned char i ,j, tmp=0x01;
        for(i=3; i>0; i--)
                   for(j=8; j>0; j--)
                   {
                           P0=tmp;
                           delay_ms(500); //500ms闪烁
                        tmp = _crol_(tmp,1);
                }       
}
void int1_int()  interrupt 2
{
        unsigned char i ,j, tmp=0x80;
        for(i=3; i>0; i--)
                   for(j=8; j>0; j--)
                   {
                           P0=tmp;
                           delay_ms(500); //500ms闪烁
                        tmp = _cror_(tmp,1);
                }       
}
请大家帮忙指导,我想点击中断0时,流水灯不断的工作,如果点击中断2,流水能马上转换,也要不断的工作。如果用一个中断控制多个流水灯状态,需要怎么修改程序,谢谢大家指点。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。