------------------------------------------------*/ #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語句了? 本人初學,求各位大俠指點迷津 |