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