在進行矩陣按鍵檢測的時候,對於51微控制器來說,由於io輸出電流較小,驅動能力不足,若用乙個a號io口去檢測b號io口,無論b口高電平還是低電平,a口皆是低電平;若a口置高,可用來檢測b口的低電平。
io.h檔案
#ifndef _matrix_h_
#define _matrix_h_
#include "stc15f2k60s2.h"
#include "delay.h"
#define line0 p30
#define line1 p31
#define line2 p32
#define line3 p33
#define list0 p44
#define list1 p42
#define list2 p35
#define list3 p34
extern bit flagsmgscreen;
extern bit numclear;
extern unsigned char num;
extern unsigned char countpress;
void key_scan();
#endif
.c檔案
#include "matrix.h"
bit flagsmgscreen=0; //介面轉換標誌
bit numclear; //清零按鍵
unsigned char num;
unsigned char countpress;
void key_scan()
while(!line0 || !line1 || !line2 ||!line3) //若按鍵一直按下去則一直在該
}else temp = 20; //while中迴圈
switch(temp)
}
VB檢測按鍵CTRL C的次數
print 按住了c x else print 沒按住c x end if if y 0 then print 按住了ctrl y else print 沒按住ctrl y end if if x 0 and y 0 and chongfu 0 then 當ctrl c按下並且重複次數為0,capt...
7 按鍵檢測
當按鍵沒有按下去,電容達到飽和,電路短路,gpio口pa0為低電平 當按鍵k1按下,四腳按鍵左側1,2和右側3,4導通,pa0變成高電平。而且與按鍵併聯的電容放電達到了消除按鍵抖動產生的波紋的效果,避免檢測不正確。確定好兩個gpio口 goioa 0和gpioc 13,進行埠初始化,還要對埠進行檢測...
按鍵檢測(二)
基本功是每按一次按鍵,訊號電平發生一次反轉 按鍵長按或者不按訊號狀態不發生變化,比如按下後led點亮,此時繼續保持按下或者鬆開,led狀態不變,當按鍵再次按下後,led才會熄滅。應用場景 如果按鍵按下為高電平,那麼就可以用來檢測按鍵按下時的上公升沿,或者中斷的上公升沿,調整防抖時延實現不同的靈敏度。...