1 p20 -----0----1----2----3
| | | |
2 p21 -----4----5----6----7
| | | |
3 p22 -----8----9----10---11
| | | |
4 p23 -----12---13---14---15
| | | |
5 p24 ---- | | | |
| | | |
6 p25 ---------- | |
| |
7 p26 --------------- |
|8 p27 --------------------
*/#include
code char key_code=;
code ksp[4]=;
void delay (void)
char keypad_scan()}}
} while(1);
}// 檢查是否有按鍵按下
char gotkey()
return(16); //1.這句不知道為什麼要放括號外??
//w 我想可能是因為鍵盤大多時間應該是不被按下的,沒按下的情況返回16.
//2.還有,有按鍵被按下,返回相應的鍵值後,會不會再執行這句呢?
//會的話不是多輸出乙個16呢?
//查資料,得知,return是返回函式值並退出函式
矩陣鍵盤掃瞄
矩陣鍵盤掃瞄一般採取行列掃瞄法。比如先拉低所有列線,拉高行線,之後讀取行線狀態,如果行線有一行為低,則假設有按鍵按下,此時再延時20毫秒左右後判 斷行線的某一行是否仍然為低,若為低則確認有鍵按下。這時可以進行按鍵鍵值判斷,即判別在哪一行哪一列有按鍵按下。判斷的方法是通過拉高列線,依次置行線 的某一行...
矩陣鍵盤掃瞄
矩陣鍵盤掃瞄 module matrix keyboard input clk 50m,50m時鐘 input rst n,復位 input 3 0 row,矩陣鍵盤行輸入 output reg 3 0 col,矩陣鍵盤列輸出 output reg key flag,按鍵按下標誌 output re...
鍵盤掃瞄碼
當按下一鍵時,產生 mark 碼,產生一次 irq1 中斷。放開鍵時,產生 break 碼,產生一次 irq1 中斷。因此 當按下 a 鍵放開,實際上產生了兩次 irq1 中斷 break 是 mark 碼的 bit7 置 1 得來,也就是 break mark 0x80 這裡只說一般日常應用中的鍵...