- 註冊時間
- 2012-3-16
- 最後登錄
- 2024-4-10
- 主題
- 查看
- 積分
- 173
- 閱讀權限
- 40
- 文章
- 223
- 相冊
- 0
- 日誌
- 0
狀態︰
離線
|
提供一個 4*4 keypad 掃描程式,供參考!先模仿別人怎樣寫程式,融會貫通 。- unsigned char keypad() // 讀取 4 X 4 小鍵盤的按鍵 副程式
- {
- unsigned char value; // keypad 輸入值
- unsigned char scanline[] = {0xfe,0xfd,0xfb,0xf7}; // 掃描線 1110 1101 1011 0111
- unsigned char col,row,temp; // 宣告行列變數
- value = 0xff; // 設定鍵盤初始值
- for(row=0 ; row<4 ; row++) // 列掃描 4 次
- {
- P1 = scanline[row]; // 輸出掃描線
- temp = P1 & 0xf0; // 讀取偵測線 左nibble
- if(temp != 0xf0) // 有某一個按鍵被按到 有按鍵輸入
- {
- os_wait2(K_TMO,1); // debounce 10 mS
- if(temp != 0xf0)
- {
- for(col=0 ; col<4 ; col++) // 行掃描 4 次
- {
- if(temp == ((scanline[col] & 0x0f) << 4)) // 左移 4 bit 右 nibble
- {
- value = row * 4 + col; // 計算鍵值公式
- while((P1 & 0xf0) != 0xf0); // 等待按鍵放開
- }
- }
- }
- }
- }
- return value; // 傳回按鍵值 0 ~ 15 ,無按鍵輸入傳回 0xff
- }
複製代碼 |
-
總評分: 威望 + 2
查看全部評分
|