天天看點

FPGA 34 矩陣鍵盤 子產品設計

FPGA 34 矩陣鍵盤 子產品設計

​ 最早的 MCU(即單片機)其 IO 口相對較少,而且用到按鍵過多的話, 就會占用過多的 IO。 人們為了解決這個問題就引入了“矩陣鍵盤”。 在矩陣鍵盤中,每條行線和列線在交叉處都不是直接連同, 而是通過一個按鍵直接相連,這樣以來一個 4*4 的矩陣鍵盤隻需要 8 根控制線就可以完成16 個按鍵的控制。

FPGA 34 矩陣鍵盤 子產品設計

矩陣鍵盤工作原理 :

FPGA 34 矩陣鍵盤 子產品設計

​ 檢測矩陣鍵盤中某一按鍵是否被按下, 采用的方法是列掃描法。 圖中一共有 8條控制線, 4 條行控制線(ROW),4 條列控制線(COL) 。在原理圖圖中,我們可以看到,ROW的信号【對于FPGA】是一個輸入IO,COL0、1、2、3 是一個輸出IO的配置,是以FPGA 隻需要讀取ROW0、1、2、3 端口的信号來進行判斷。

​ 假如我們讓 COL0=0,然後去讀取 ROW 的值,如果 4 個 ROW 信号的電平全部為高,則表明目前列并無按鍵按下,則切換到掃描下一列,再去讀取 4 個 ROW 信号的值,根據讀到的 ROW 值判斷目前是哪一個按鍵被按下。例如當掃描第三列的時候,即 COL=4’b1011 時,檢測到 ROW=4’b1011,則說明“A”被按下。

矩陣鍵盤掃描驅動子產品設計 :

FPGA 34 矩陣鍵盤 子產品設計

端口描述:

FPGA 34 矩陣鍵盤 子產品設計

矩陣鍵盤檢測狀态轉移圖 :(P208)

key_board.v 檔案

矩陣鍵盤模型:

驗證測試腳本檔案:

FPGA 34 矩陣鍵盤 子產品設計
FPGA 34 矩陣鍵盤 子產品設計
FPGA 34 矩陣鍵盤 子產品設計
FPGA 34 矩陣鍵盤 子產品設計
FPGA 34 矩陣鍵盤 子產品設計
FPGA 34 矩陣鍵盤 子產品設計

最終配置效果:

FPGA 34 矩陣鍵盤 子產品設計