I/O口,I代表Inpout,O代表Output。前面的所講的點亮LED,是單片機輸出高低電平,從而達(dá)到控制LED;這一講將會通過按鍵輸入電平,單片機檢測到輸入高低電平,將會有對應(yīng)的動作。
STC89C52的輸入電平識別。
獨立按鍵
按鍵的一端接單片的I/O口,另一端接GND或者VCC(接VCC的時候需要注意,電壓是需要單片機能夠識別的輸入的電壓。) ,下圖是接GND的連接方式。
當(dāng)獨立按鍵按下時,高低電平(VCC或者GND)會直接到達(dá)I/O口,此時單片機可以檢測到該I/O口是高電平(1)或者低電平(0),然后做獨立按鍵被按下的對應(yīng)處理。
現(xiàn)在有一個功能需求,當(dāng)按下按鍵時LED被點亮,手松開時LED熄滅。代碼應(yīng)該如何寫呢?
#include "reg52.h"
//引入頭文件
sbit led1 = P2^0;
//位定義led1,可以直接通過位控制led亮滅
sbit key1 = P3^1;
//位定義key1,可以通過位控制檢測該I/O口的狀態(tài)
void main() {
//循環(huán)
while(1) {
if(key1==0) { //判斷I/O口狀態(tài),如果為0
led1 = 0; //點亮Lled
}
else {
led1 = 1; //熄滅led
}
}
}
總結(jié):獨立按鍵一端連接I/O口,另一端連接GND或者VCC,當(dāng)按鍵被按下GND或者VCC的電平直接到I/O口。通過檢測I/O口電壓可以判斷按鍵是否被按下,進而觸發(fā)不同的程序行為。
-
單片機
+關(guān)注
關(guān)注
6037文章
44558瀏覽量
635353 -
51單片機
+關(guān)注
關(guān)注
274文章
5702瀏覽量
123623 -
GND
+關(guān)注
關(guān)注
2文章
539瀏覽量
38721 -
獨立按鍵
+關(guān)注
關(guān)注
1文章
45瀏覽量
11564
發(fā)布評論請先 登錄
相關(guān)推薦
評論