摘要:該文介紹了一種基于FPGA的矩陣式按鍵掃描方案,實現了矩陣式鍵盤在FPGA時序邏輯的控制下自動完成按鍵的掃描、處理、編碼等功能,按鍵結果的采集通過中斷方式來獲取,是一種電路設計簡單,響應穩定、快速的方法。
關鍵詞:FPGA;矩陣式;按鍵掃描
中圖分類號:TP391 文獻標識碼:A 文章編號:1009-3044(2014)20-4883-03
The Design Matrix Key Scanning Based on FPGA
SHI Hai-yang, DUAN Xiao-hu, WU Hua
(Institute of Computing Technology, AVIC Xi'an Aviation, Xi'an 710119,China)
Abstract: This paper introduces a matrix key scanning scheme based on FPGA, realizes the matrix keyboard control of the FPGA temporal logic to perform automatic button scanning, processing, coding and other functions, the key results of the collection to get through interrupt mode, is a kind of simple circuit design, stable, fast response.
Key words: FPGA; matrix; key scanning
矩陣式鍵盤是一種常用的鍵盤設計方式,具有電路設計簡單的特點,通過可編程邏輯(FPGA)來實現按鍵的掃描和控制,具有反應快速,設計靈活,易于擴展等特點。該文設計了一種基于FPGA的矩陣式按鍵掃描方法,系統架構如圖1所示。CPU主要完成系統的控制功能,FPGA完成按鍵邏輯的控制,矩陣式鍵盤是一個4*6鍵盤。
1 按鍵掃描的原理
在矩陣式鍵盤中每個按鍵是跨接在一條列線和一條行線之間,列線作為鍵盤的輸入信號,行線作為按鍵的輸出信號,當按鍵閉合時,行線采集到的信號電平就是列線上輸入的信號電平。當按鍵斷開時,行線采集到的信號是高電平[1]。因此,通過在FPGA中產生一個周期性的列掃描信號,也就是每個列線周期性的變為低電平。當某列為低電平時,采集行信號就可以判斷是否有按鍵按下,同時也可以判斷出是那個按鍵被按下。
如圖2所示,一個4*6的矩陣式鍵盤,在邏輯時序控制下,循環掃描信號由列線進入鍵盤,列信號Y[5:0]以“111110→111101→111011→110111→101111→0111111”的序列循環掃描[2],當沒有按鍵按下時,行信號X[3:0]就是“1111”,當采集到的行信號X[3:0]不為“1111”,就是有按鍵按下,如果是行信號X[3:0] “1101”,而此時列信號為Y[5:0]為:“110111”,就可以判斷出是K42被按下。……