------------------------------------------------*/ #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语句了? 本人初学,求各位大侠指点迷津 |