




全文預(yù)覽已結(jié)束
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
摘要:為了有效防止機械式鍵盤按鍵抖動帶來的數(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è)計功能的正確性。FPGA/ 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ù)碼管上,原有第06號數(shù)碼管顯示的數(shù)值整體左移到第17號數(shù)碼管上顯示,見圖1 ??傮w而言,矩陣鍵盤及顯示電路的設(shè)計可分為4 個部分:(1) 矩陣鍵盤的行及列的掃描控制和譯碼。該設(shè)計所使用的鍵盤是通過將列掃描信號作為輸入信號,控制行掃描信號輸出,然后根據(jù)行及列的掃描結(jié)果進行譯碼。(2) 機械式按鍵的防抖設(shè)計。由于機械式按鍵在按下和彈起的過程中均有510 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 02432 768 Hz) ; start 為清零控制端;kbrow 為列掃描信號輸入端; kbcol 為行掃描信號輸出端; scan 為數(shù)碼管地址掃描信號輸出端; seg7 為數(shù)碼管顯示信號輸出端。圖1 矩陣鍵盤及顯示電路原理圖圖2 矩陣鍵盤及顯示電路的電路符號限于篇幅,在此不詳述所設(shè)計矩陣鍵盤及顯示電路的全部V HDL 代碼,只對部分重要代碼段落進行詳細說明。如圖1 所示,全部代碼由7 個進程(process) 組成。其中,進程P1 和P2 用于對列掃描輸入信號kbrow 進行讀取,并通過或非運算產(chǎn)生行掃描使能控制信號en 對行掃描輸出信號kbcol 進行控制,并生成一個與kbcol 對應(yīng)的狀態(tài)信號state。若沒有按鍵被按下( 即kbrow =“0000”) ,則en =1,行掃描輸出信號kbcol 不斷循環(huán)掃描各行;若有按鍵被按下,en =0,則行掃描停止,并鎖存當(dāng)前kbcol 的值。進程P1 和P2 的代碼如下:進程P3 使用“case ?when”語句,根據(jù)狀態(tài)信號state 的值(即kbcol 的值) 和列掃描輸入信號kbrow 的值進行按鍵值譯碼, 生成一個4 位二進制按鍵數(shù)值信號dat ,用以記錄當(dāng)前按鍵值。例如,當(dāng)kbcol =“0010”,kbrow =“0001 ”時“B”鍵按下, dat =“1011”。進程P3 的代碼在此不再贅述。進程P4 和P5 用于按鍵的防抖和按鍵值的移位寄存。通過將行掃描使能控制信號en 不斷賦給一個8 位二進制變量reg8 ,再將reg8 賦給8 位二進制信號key ,實現(xiàn)對按鍵狀態(tài)的記錄,然后通過對key的各位數(shù)值進行與運算,生成防抖控制信號f nq。一旦有按鍵按下,en =0,則即便是按鍵在抖動,key 中至少也有1 位數(shù)值為0,從而使f nq =0。只有當(dāng)按鍵再次彈起,并且在連續(xù)8 個時鐘周期內(nèi)不再有新的按鍵按下,key 的數(shù)值全為1,則f nq =1,f nq產(chǎn)生一個上升沿,從而觸發(fā)按鍵數(shù)值信號dat 進入數(shù)值寄存信號temp (32 位二進制數(shù)) 的第0 3 位, 并將temp 原來的第027 位左移到第431 位,實現(xiàn)1 次按鍵按下的數(shù)值存儲。進程P4 和P5 的代碼如下:進程P6 用于將數(shù)值寄存信號temp 的32 位二進制數(shù)分配給8 個數(shù)碼管,從而生成數(shù)碼管地址掃描輸出scan ,以及數(shù)碼管數(shù)值信號data (4 位2 進制數(shù)) 。進程P6 代碼如下:進程P7 用于將數(shù)碼管數(shù)值信號data 譯碼成為7 段數(shù)碼管顯示輸出seg7 ,進程P7 的代碼在此不再贅述。值得注意的是,本文設(shè)計的矩陣鍵盤及顯示電路在按鍵防抖和數(shù)據(jù)寄存部分設(shè)計得更加簡潔可靠,實現(xiàn)的功能更加強大,其具有如下特點:(1) 為了實現(xiàn)按鍵防抖,本文采用對按鍵狀態(tài)連續(xù)記錄的方式,即在按鍵彈起后連續(xù)8 個時鐘周期均無按鍵信號才確認1 次按鍵有效,從而避免了按鍵按下和彈起過程中的數(shù)據(jù)抖動,相比于使用計數(shù)器從按鍵按下開始計數(shù), 直到5 10 ms 后才讓按鍵有效的防抖方式 ,這里設(shè)計的按鍵防抖更加可靠,且可有效避免長時間按下按鍵產(chǎn)生的重復(fù)數(shù)據(jù)輸出,使每次按鍵無論時間長短均可且只會產(chǎn)生1 次數(shù)據(jù)輸出。另外,當(dāng)電路采用32 768 Hz 以上的時鐘作為系統(tǒng)時鐘時,可以通過增加按鍵狀態(tài)連續(xù)記錄的時鐘周期數(shù),實現(xiàn)可靠的防抖。(2) 該設(shè)計采用一個32 位一維數(shù)組temp 作為數(shù)據(jù)寄存器,使用移位寄存方式,實現(xiàn)了對連續(xù)8 次按鍵數(shù)據(jù)的存儲和調(diào)用,從而可以在8 個數(shù)碼管上連續(xù)顯示數(shù)據(jù)。3 仿真結(jié)果分析本文設(shè)計的矩陣鍵盤及顯示電路在Quartus 開發(fā)環(huán)境下進行了仿真驗證。其中,按鍵防抖功能的仿真波形如圖3 所示。仿真結(jié)果分析如下:(1) clk 為時鐘輸入信號,作為系統(tǒng)時鐘;(2) start 為清零控制端,當(dāng)其為高電平時,按鍵有效;(3) kbrow 為列掃輸入信號,kbcol 為行掃輸出信號,圖3 中對kbrow 1 的輸入波形進行設(shè)置,模擬了“A”鍵按下和彈起的過程;(4) f nq 為防抖控制信號, scan 為數(shù)碼管地址掃描輸出,seg7 為數(shù)碼管顯示輸出。由圖3 可知,只有在按鍵彈起后,才有數(shù)據(jù)輸出,從而實現(xiàn)防抖功能。圖3 矩陣鍵盤及顯示電路按鍵防抖仿真波形該設(shè)計的其他功能也可以通過仿真驗證, 不再贅述。4 結(jié)語本文設(shè)計矩陣鍵盤及顯示電路在Quartus 開發(fā)環(huán)境下進行仿真驗證后,下載到湖北眾友科技實業(yè)股份有限公司的ZY11EDA13BE 實驗箱中進行了硬件驗證。該實驗箱使用ACEX1K系列EP1K30QC208 芯片作為
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園安全教育日主題班會
- 水利水電工程新項目評審試題及答案
- 2025年中級經(jīng)濟師重要考點試題及回答
- 線護理工作總結(jié)與改進計劃
- 在c語言期末考試試題及答案
- 孵化跳水測試題及答案
- 醫(yī)療機構(gòu)考試試題及答案
- 釣螃蟹面試題及答案
- 主管工作中的數(shù)據(jù)分析利用計劃
- 學(xué)校環(huán)境中的藝術(shù)裝置設(shè)計計劃
- 諾貝爾文學(xué)獎獲得者莫言
- 牙科手機的清洗消毒、滅菌及保養(yǎng)課件
- 打印版醫(yī)師執(zhí)業(yè)注冊健康體檢表(新版)
- DB11-T339-2016工程測量技術(shù)規(guī)程
- 六年級下冊數(shù)學(xué)課件 整理和復(fù)習(xí)6.5比和比例 人教版 (共14張PPT)
- 福州市歷史建筑保護管理辦法(試行)
- JHA及SCL風(fēng)險評價方法講解(參考)
- DB11T 1933-2021 人乳庫建立與運行規(guī)范
- 1.3.1動量守恒定律課件(共13張PPT)
- 國網(wǎng)北京市電力公司授權(quán)委托書(用電)
- 中小學(xué)教育懲戒規(guī)則(試行)全文解讀ppt課件
評論
0/150
提交評論