用at89s51 的並行口p1 接4×4 矩陣鍵盤,以p3.0-p3.3
作輸入線,以p3.4-p3.7 作輸出線;在數碼管上顯示數字按鍵的「0-9」序號,其它按鍵顯示0。
原理分析:4x4矩陣鍵盤每個按鍵都有它的行值和列值,當每個按鍵的行值為低電平,列值為高電平時,按鍵為未按下狀態。判斷是否有按鈕按下時,先讓這一行通低電平,再通過掃瞄每一列來判斷是否被按下(逐列使列值通高電平),如果被按下,那麼這一列的電平此時會成為低電平;如果這一列在掃瞄時為低電平,說明這一列有按鍵被按下,而行值是每次在判斷列值前就確定的,這樣就能知道到底是哪乙個按鍵被按下了。
基本流程: 設定第一行為低電平——>掃瞄每一列(設定為高電平),判斷是否為0——>確定是否有按鍵按下——>設定第二行為低電平——>掃瞄第二列......(如此迴圈到第四行,再從第一行重新開始)
編譯環境:keil c51 v3
**軟體:proteus 7.4
微控制器型別:at89c52
數碼管型別:7seg-mpx1-cc (cc——共陰數碼管)
鍵盤型別:keypad-samllcalc
微控制器上的程式如下:
電路圖核心部分如下:
4X4矩陣鍵盤掃瞄程式
4x4矩陣鍵盤掃瞄 1.4根行線的gio均設為output,根列線的gio均設為input 2.4根行線的gio分別置為0111 1011 1101 1110,讀逐一讀取列線gio的值,可確定是哪乙個按鍵 電路圖如下 注意 1.圖中用作輸入的gio,一定要有乙個上拉電阻。2.晶元中的每乙個引腳是否用...
4X4矩陣鍵盤掃瞄程式
4x4矩陣鍵盤掃瞄 1.4根行線的gio均設為output,根列線的gio均設為input 2.4根行線的gio分別置為0111 1011 1101 1110,讀逐一讀取列線gio的值,可確定是哪乙個按鍵。電路圖例如以下 注意 1.圖中用作輸入的gio,一定要有乙個上拉電阻。2.晶元中的每個引腳是否...
4x4矩陣求逆
最近學習自定義光柵化渲染器,在學習矩陣變換的時候,求矩陣的逆矩陣的時候遇到的一些問題,特記錄在此。typedef struct matrix3x3 type 3 3矩陣 matrix3x3,matrix3x3 ptr typedef struct matrix4x4 type 4 4矩陣 matri...