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