是單片機按鍵編程遇到的,別人寫的程式,
具體是這樣:
sbit key=P2^5;
bit key_error=0;
if(key_error&&key)
{
delay_ms(10);
if(key)
{
執行的陳述句;
}
}
當按鍵按下時,P2^5接地,我的問題就在if的判斷條件上,key_error&&key的結果是什么?
我的理解是:
key_error=0;
按鍵按下key也為0,
相與之后結果為0,
也就是if(0&&0),
這樣的話根本不會執行下面的陳述句嘛!
我覺得if的判斷條件應該是這樣:
if(key_error==0&&key==0)
if(key==0)
才說的通嘛!
但是if(key_error==0&&key==0)與if(key_error&&key)的差別還是很大的啊,到底咋回事兒啊




還請大佬們指點指點。
uj5u.com熱心網友回復:
樓主你理解的是對的uj5u.com熱心網友回復:
key_error看看是不是在別的地方有改變,這個放在這里多半是有意義的,比如可以做一個閘門,放開了才檢測鍵單看這幾句其實看不出什么,要結合背景關系,才能知道這個處理有沒有問題
uj5u.com熱心網友回復:
不能斷章取義,如果別人是那樣寫的,必定是有用的,而且判斷條件的成立必須是2個都為1條件才成立的,或許他的按鈕不是接地而接電源未可知?uj5u.com熱心網友回復:
謝謝答復,我把整個代碼再好好看看
uj5u.com熱心網友回復:
謝謝答復,我把整個代碼再好好看看
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/129994.html
標籤:單片機/工控
