如何用2个按键实现2种灯光效果的转换

2019-07-16 01:48发布

如题,小弟今年准备毕业 学的是电子信息工程 尝试用C编写了个16个灯的流水灯+按键转换效果的程序
一开始从左往右 按了一下就从右至左。用的是中断实现
我现在向用另外一个按键来实现第三种效果 不知道该怎么编写
下面附上源程序  求帮忙



#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
#include <intrins.h>
void delay(int a)
{
uint x,y;
for(x=0;x<100;x++)
for(y=0;y<a;y++);
}

void main()
{
uchar a=0xfe,b=0xfe,c=0x7f,q;
IT0=0;
EX0=1;
EA=1;
while(1)
{
for(q=0;q<8;q++)
{
    P0=a;
    a=_crol_(a,1);
    delay(50);
}
    P0=0xff;
for(q=0;q<8;q++)
{
    P2=a;
    a=_crol_(a,1);
    delay(50);
}
    P2=0xff;


/*P0=b;
delay(100);
b=_crol_(b,1);
delay(100);
P0=0xff;*/
/*P2=0xff;
P2=a;
delay(100);
a=_crol_(a,1);
delay(100);
P2=0xff;*/

}
}
int0() interrupt 0//外部中断0服务子程序
{
uchar a=0xfe,b=0xfe,c=0x7f,q;
for(q=0;q<8;q++)
{
    P2=c;
    c=_cror_(c,1);
    delay(50);
}
    P2=0xff;
for(q=0;q<8;q++)
{
    P0=c;
    c=_cror_(c,1);
    delay(50);
}
    P0=0xff;
}



/*P0=0x00;         //16个灯闪烁
P2=0x00;
delay(100);
P0=0xff;
P2=0xff;
delay(100);*/



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。