基于VHDL 的矩陣鍵盤及顯示電路設(shè)計
摘 要:為了有效防止機械式鍵盤按鍵抖動帶來的數(shù)據(jù)錯誤,這里在Quartus Ⅱ開發(fā)環(huán)境下,采用VHDL 語言設(shè)計了一種能夠?qū)C械式4 ×4 矩陣鍵盤的按鍵值依次顯示到8 個7 段數(shù)碼管上的矩陣鍵盤及顯示電路。仿真結(jié)果表明,所設(shè)計的矩陣鍵盤及顯示電路成功地實現(xiàn)了按鍵防抖和按鍵數(shù)據(jù)的準確顯示。以ACEX1K系列EP1K30QC208 芯片為硬件環(huán)境,驗證了各項設(shè)計功能的正確性。
本文引用地址:http://butianyuan.cn/article/180426.htmFPGA/ CPLD 在數(shù)字系統(tǒng)設(shè)計中的廣泛應(yīng)用,影響到了生產(chǎn)生活的各個方面。在FPGA/ CPLD 的設(shè)計開發(fā)中,V HDL 語言作為一種主流的硬件描述語言,具有設(shè)計效率高, 可靠性好, 易讀易懂等諸多優(yōu)點 。作為一種功能強大的FPGA/ CPLD 數(shù)字系統(tǒng)開發(fā)環(huán)境,Altera 公司推出的Quart us Ⅱ,為設(shè)計者提供了一種與結(jié)構(gòu)無關(guān)的設(shè)計環(huán)境,使設(shè)計者能方便地進行設(shè)計輸入、快速處理和器件編程,為使用V HDL 語言進行FPGA/ CPLD 設(shè)計提供了極大的便利 。矩陣鍵盤作為一種常用的數(shù)據(jù)輸入設(shè)備,在各種電子設(shè)備上有著廣泛的應(yīng)用,通過7 段數(shù)碼管將按鍵數(shù)值進行顯示也是一種常用的數(shù)據(jù)顯示方式。在設(shè)計機械式矩陣鍵盤控制電路時,按鍵防抖和按鍵數(shù)據(jù)的譯碼顯示是兩個重要方面。本文在Quart us Ⅱ開發(fā)環(huán)境下,采用V HDL語言設(shè)計了一種按鍵防抖并能連續(xù)記錄并顯示8 次按鍵數(shù)值的矩陣鍵盤及顯示電路。
1 矩陣鍵盤及顯示電路設(shè)計思路
矩陣鍵盤及顯示電路能夠?qū)C械式4 ×4矩陣鍵盤的按鍵值依次顯示到8 個7段數(shù)碼管上,每次新的按鍵值顯示在最右端的第0 號數(shù)碼管上,原有第0~6號數(shù)碼管顯示的數(shù)值整體左移到第1~7號數(shù)碼管上顯示,見圖1 。總體而言,矩陣鍵盤及顯示電路的設(shè)計可分為4 個部分:
(1) 矩陣鍵盤的行及列的掃描控制和譯碼。該設(shè)計所使用的鍵盤是通過將列掃描信號作為輸入信號,控制行掃描信號輸出,然后根據(jù)行及列的掃描結(jié)果進行譯碼。
(2) 機械式按鍵的防抖設(shè)計。由于機械式按鍵在按下和彈起的過程中均有5~10 ms 的信號抖動時間,在信號抖動時間內(nèi)無法有效判斷按鍵值,因此按鍵的防抖設(shè)計是非常關(guān)鍵的,也是該設(shè)計的一個重點。
(3) 按鍵數(shù)值的移位寄存。由于該設(shè)計需要在8 個數(shù)碼管上依次顯示前后共8 次按鍵的數(shù)值,因此對已有數(shù)據(jù)的存儲和調(diào)用也是該設(shè)計的重點所在。
(4) 數(shù)碼管的掃描和譯碼顯示。由于該設(shè)計使用了8 個數(shù)碼管,因此需要對每個數(shù)碼管進行掃描控制,并根據(jù)按鍵值對每個數(shù)碼管進行7 段數(shù)碼管的譯碼顯示。
2 矩陣鍵盤及顯示電路的實現(xiàn)
本文所設(shè)計的矩陣鍵盤及顯示電圖2 所示。其中, clk 為時鐘信號輸入端(頻率可為1 024~32 768 Hz) ; start 為清零控制端;kbrow 為列掃描信號輸入端; kbcol 為行掃描信號輸出端; scan 為數(shù)碼管地址掃描信號輸出端; seg7 為數(shù)碼管顯示信號輸出端。
圖1 矩陣鍵盤及顯示電路原理圖
圖2 矩陣鍵盤及顯示電路的電路符號
DIY機械鍵盤相關(guān)社區(qū):機械鍵盤DIY
評論