------------------------------------------------*/
#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通道搶答器的程序 我發(fā)現(xiàn)如果不加最后那句while(Flag),則按鍵并沒被鎖定,按下key1,1號燈亮,接著按key2,又變成2號燈亮了,
按道理講,當(dāng)?shù)谝淮伟聪耴ey1后,F(xiàn)lag的狀態(tài)不是變化了嗎,應(yīng)該不符合while的條件了啊,為什么還能繼續(xù)執(zhí)行里面的if else語句了?
本人初學(xué),求各位大俠指點(diǎn)迷津
歡迎光臨 (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |