51MCU 基於51微控制器的矩陣鍵盤

2021-10-05 15:10:49 字數 929 閱讀 3732

author: manba cople

專業:iot

說明:記錄和輸出學習內容

介紹寫矩陣鍵盤的一種思路和具體實現**
以鍵盤的某個角作為座標原點建立平面直角座標系,如下圖(圖為我設計計算器的矩陣鍵盤),從而,矩陣鍵盤的思路就是,給x方向(水平方向)

賦值為1,y方向(豎直方向)賦值為0,不斷掃瞄判斷x方向是否有等於0的,若判斷到某行為0就說明該行有按鍵按下,因為,當有按鍵按下時,

按鍵導通,y方向的0就給了x方向;

由於矩陣鍵盤是二維的,還需要判斷按鍵的列號才能確定乙個按鍵的位置,判斷列,首先給x方向複製為0,y方向賦值為1,不斷掃瞄,當有按鍵

按下時,x方向的0,就會導通給y方向,從而確定按鍵的(x,y)。

另外,關於矩陣鍵盤的掃瞄,可以在主程式中實現,也可以用利用定時器做。

//0無按鍵按下,1有按鍵按下

void

matrixkey()

p3=0xf0

;for

(j=0

;j<

4;j++)}

if(kx==0)

//排除沒有按鍵按下就計算鍵值

else

//有按鍵按下

}

利用座標系的思想實現矩陣鍵盤思路較為清晰,另外,**利用迴圈+移位運算降低了**量。繼續優化的話,在於按鍵消抖的問題。

基於51微控制器矩陣鍵盤程式

用矩陣鍵盤輸入數字在數碼管顯示 矩陣鍵盤 的編寫有點像vhdl 編碼器的書寫,很多那些數字都是根據唯一的掃瞄位置來定,也就是說這些數字可以任意設定,主要就是巧妙在 0xf0 0xfe 通過這樣確定出一定的位置,然後 編碼 為你想要位置所代表的數字。矩陣鍵盤其實 都很固定,很多東西其實也可以算是一沉不...

51微控制器矩陣鍵盤

行列掃瞄法 所有的行線置高電平,依次對列線進行掃瞄。將第一列置低電平,p1.0 0 若檢測到行線p1.4 0,則k0鍵被按下。同理若p1.5 0,則k4被按下。pertues 圖 c程式 include include define uchar unsigned char define uint u...

51微控制器

數碼管顯示幾乎是每次藍橋杯微控制器設計與開發組競賽的必考部分,相對於使用lcd1602作為顯示裝置,使用數碼管來顯示能夠更好的考察參賽選手的微控制器基本功,因為ct107d開發平台的設計使得數碼管的顯示不僅牽扯到數碼管顯示的 基本內容,還涉及到74hc573鎖存器,74hc02異或門,74hc138...