------------------------------------------------*/
#include<reg51.h>
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
sbit key4=P1^3;
main()
{
bit Flag;
while(!Flag)
{
if(!key1) {P2=0xFE;Flag=1;}
else if(!key2){P2=0xFD;Flag=1;}
else if(!key3){P2=0xFB;Flag=1;}
else if(!key4){P2=0xF7;Flag=1;}
}
while(Flag)
}
这是个4通道抢答器的程序 我发现如果不加最后那句while(Flag),则按键并没被锁定,按下key1,1号灯亮,接着按key2,又变成2号灯亮了,
按道理讲,当第一次按下key1后,Flag的状态不是变化了吗,应该不符合while的条件了啊,为什么还能继续执行里面的if else语句了?
本人初学,求各位大侠指点迷津
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |