请教个新手问题,我第一次编这个,目的是用四个灯标识两个按键的状态
如果两件都没按下,led1闪烁,如果两个同时按下,led2闪烁,led3和led4表示两个按键的状态
如果只按一个键,led1和led2不亮,led5亮起
目前的状况是循环不知道怎么跳出来,要么就是不停循环led5怎么也不亮,要么不循环直接顺序
执行,led5自己就亮了
请高手指点
#include <reg52.h>
sbit key1=P3^4; //定义按键的输入端S2键
sbit key2=P3^5;
sbit key3=P3^6;
sbit key4=P3^7;
sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
sbit led4=P1^3;
sbit led5=P1^4;
void time500ms(void) //延时程序
{
unsigned int i,j;
for(i=200;i>0;i--)
for(j=248;j>0;j--);
}
void time100ms(void) //延时程序
{
unsigned int i,j;
for(i=40;i>0;i--)
for(j=248;j>0;j--);
}
key(jj) //按键判断程序
{
jj=1;
time100ms();
if(key2==0&&key1==1)
{led1=1;jj=0;};
if(key2==1&&key1==0)
{led2=1;jj=0;};
if(key1==0&&key2==1)
{led1=1;jj=0;};
if(key1==1&&key2==0)
{led2=1;jj=0;};
if(key1==key2&&key1==0)
led2=0;
if(key1==key2&&key1==1)
led1=0;
return(jj);}
main()
{
int i=1,j;
//判断抽样选择是否正确,都没选择,灯1亮,都选择了灯2亮,选择正确下一步
do{
key(i);
time500ms();
led3=key1;
led1=1;
led4=key2;
led2=1;
time500ms();
}while(i>0);
led5=0;
} |