但凡做和51微控制器有關的東西,我們組都會用到按鍵..... 迷之有緣
獨立按鍵的原理很簡單,沒有按鍵按下時,全部為高電平,按下時接觸地變為地電平,檢測是否有低電平來檢測按下動作。
矩陣鍵盤稍微複雜一點,分別檢測行,檢測列,以此來確定按鍵位置。
注意的是,按下時會有抖動,因為寫程式時,需要消抖。常用的方式是延時函式消抖。
1/*2獨立按鍵掃瞄基本程式 @l2 2016/08/03 3*/
4 #include 5
#define gpio_key p1 //
按鍵與p1口相連
檢測原理類似,檢測該按鍵對應io口是否為低電平
1/*2矩陣鍵盤4x4,數碼管顯示鍵值 @l2 2016/08/033*/
4 #include5
#define gpio_dig p1
6#define gpio_key p0
78 unsigned char code dig_code[17]=;
1112 unsigned char
keyvalue;
13void delay10ms(unsigned int
c);14
void
keydown();
1516
void main(void)17
23}2425
void keydown(void)26
44//
測試行45 gpio_key=0x0f; //
給列io口置低電平
46switch
(gpio_key)
4753
while((a<50) && (gpio_key!=0xf0)) //
檢測按鍵鬆手檢測
5458}59
}60}61
6263
void delay10ms(unsigned int
c)
64
72}
73 }
(三)微控制器按鍵檢測
好了,微控制器這個東西呢,無非是輸入和輸出,所以經過前面兩個led燈,實際上微控制器就學完了一半了?甚至是學完了一大半了,畢竟任何乙個微控制器都不可能沒有輸出,沒有輸出的微控制器是沒有任何意義的,但是可以沒有輸入,比如流水燈,不需要進行任何資訊的輸入,也是可以好好的閃燈的。今天寫寫另一半,輸入之典型...
51微控制器 鍵盤掃瞄
p3口接16個按鍵 include define uint unsigned int define uchar unsigned char sbit dula p2 6 sbit wela p2 7 sbit key1 p3 4 uchar code table uchar num,temp,num...
51微控制器矩陣鍵盤
行列掃瞄法 所有的行線置高電平,依次對列線進行掃瞄。將第一列置低電平,p1.0 0 若檢測到行線p1.4 0,則k0鍵被按下。同理若p1.5 0,則k4被按下。pertues 圖 c程式 include include define uchar unsigned char define uint u...