当前位置:文档之家› 4X4矩阵键盘实验讲解

4X4矩阵键盘实验讲解


按鍵掃瞄之狀態
按鍵掃瞄之有限狀態機電路,總共分有6個狀態:
狀態S_0: Idle State沒有任何按鍵發生時,都停留在此狀態,如果偵 測到S_Row=1(亦即有按鍵發生)就跳至S_1狀態。 狀態S_1: 發出掃瞄column 0即col=4’b1110的狀態,並讀回row值作 比較:
實驗四 4X4矩陣鍵盤實驗
4X4矩陣鍵盤輸入並輸出至七段式顯示器
底板子4x4矩陣按鍵
按鍵與FPGA之接線示意圖
VCC
R
R
RRcol[0]来自col[1]col[2]
col[3] row[0]
1
2
3
4
5
row[1]
6 a e
7 b f
8 c 0
FPGA
row[2]
9 d
row[3]
按鍵掃瞄之狀態機圖


如果讀到row不等於f (4’b1111)就代表在column 0上的4個按鍵(4, 8, d, 0)有其中一個被按下,於是跳至S_5做等待使用者放開按鍵的處 理。
如果讀到row等於f (4’b1111)就代表在column 0上的4個按鍵(4, 8, d, 0) 沒有被按下,於是跳至S_2做掃瞄column 1的按鍵。
按鍵掃瞄之狀態
狀態S_3: 發出掃瞄column 2即col=4’b1011的狀態並讀回
row值作比較:
如果讀到row不等於f (4’b1111)就代表在column 2上的4個按鍵(2, 6, b, e)有其中一個被按下,於是跳至S_5做等待使用者放開按 鍵的處理。 如果讀到row等於f (4’b1111)就代表在column 2上的4個按鍵(2, 6, b, e)沒有被按下,於是跳至S_4做掃瞄column 2的按鍵。 狀態S_4: 發出掃瞄column 3即col=4’b0111的狀態並讀回row值作比較: 如果讀到row不等於f (4’b1111)就代表在column 3上的4個按鍵(1, 5, c, d)有其中一個被按下,於是跳至S_5做等待使用者放開按 鍵的處理。 如果讀到row等於f (4’b1111)就代表在column 3上的4個按鍵(1, 5, c, d)沒有被按下,於是跳回至S_0,因此FSM跳回Idle state即掃描 完4個column 都沒有發現任何按鍵被按下。 狀態S_5: 等待使用者放開按鍵的狀態,如果使用者沒放開按鍵就一直停
留在此,如果放開了,就跳回S_0狀態。
電路架構
Pin assignment
set_location_assignment set_location_assignment set_location_assignment set_location_assignment set_location_assignment set_location_assignment set_location_assignment set_location_assignment PIN_138 PIN_139 PIN_140 PIN_141 PIN_134 PIN_135 PIN_136 PIN_137 -to -to -to -to -to -to -to -to col[0] col[1] col[2] col[3] row[0] row[1] row[2] row[3]

狀態S_2: 發出掃瞄column 1即col=4’b1101的狀態並讀回row值作比 較:
如果讀到row不等於f (4’b1111)就代表在column 1上的4個按鍵(3, 7, c, f)有其中一個被按下,於是跳至S_5做等待使用者放開按鍵的處 理。 如果讀到row等於f (4’b1111)就代表在column 1上的4個按鍵(3, 7, c, f)沒有被按下,於是跳至S_3做掃瞄column 2的按鍵。
相关主题