keypad 鍵盤掃瞄,並返回按鍵值

2021-05-05 18:16:54 字數 795 閱讀 4761

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 這裡只說一般日常應用中的鍵...