當前位置:首頁 > 電源 > 數(shù)字電源
[導讀]為了有效防止機械式鍵盤按鍵抖動帶來的數(shù)據(jù)錯誤,這里在QuartusⅡ開發(fā)環(huán)境下,采用VHDL語言設(shè)計了一種能夠?qū)C械式4×4矩陣鍵盤的按鍵值依次顯示到8個7段數(shù)碼管上的矩陣鍵盤及顯示電路。仿真結(jié)果表明,所設(shè)計的矩陣鍵盤及顯示電路成功地實現(xiàn)了按鍵防抖和按鍵數(shù)據(jù)的準確顯示。以ACEXlK系列EPlK30QC208芯片為硬件環(huán)境,驗證了各項設(shè)計功能的正確性。

  FPGA/CPLD在數(shù)字系統(tǒng)設(shè)計中的廣泛應用,影響到了生產(chǎn)生活的各個方面。在FPGA/CPLD的設(shè)計開發(fā)中,VHDL語言作為一種主流的硬件描述語言,具有設(shè)計效率高,可靠性好,易讀易懂等諸多優(yōu)點。作為一種功能強大的FPGA/CPLD數(shù)字系統(tǒng)開發(fā)環(huán)境,Altera公司推出的Quar-tUSⅡ,為設(shè)計者提供了一種與結(jié)構(gòu)無關(guān)的設(shè)計環(huán)境,使設(shè)計者能方便地進行設(shè)計輸入、快速處理和器件編程,為使用VHDL語言進行FPGA/-CPLD設(shè)計提供了極大的便利。矩陣鍵盤作為一種常用的數(shù)據(jù)輸入設(shè)備,在各種電子設(shè)備上有著廣泛的應用,通過7段數(shù)碼管將按鍵數(shù)值進行顯示也是一種常用的數(shù)據(jù)顯示方式。在設(shè)計機械式矩陣鍵盤控制電路時,按鍵防抖和按鍵數(shù)據(jù)的譯碼顯示是兩個重要方面。本文在QuartusⅡ開發(fā)環(huán)境下,采用VHDL語言設(shè)計了一種按鍵防抖并能連續(xù)記錄并顯示8次按鍵數(shù)值的矩陣鍵盤及顯示電路。

1 矩陣鍵盤及顯示電路設(shè)計思路
   
矩陣鍵盤及顯示電路能夠?qū)C械式4×4矩陣鍵盤的按鍵值依次顯示到8個7段數(shù)碼管上,每次新的按鍵值顯示在最右端的第O號數(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 768Hz);start為清零控制端;kbrow為列掃描信號輸入端;kbeol為行掃描信號輸出端;scan為數(shù)碼管地址掃描信號輸出端;seg7為數(shù)碼管顯示信號輸出端。
    限于篇幅,在此不詳述所設(shè)計矩陣鍵盤及顯示電路的全部VHDL代碼,只對部分重要代碼段落進行詳細說明。

[!--empirenews.page--]


    如圖1所示,全部代碼由7個進程(process)組成。其中,進程P1和P2用于對列掃描輸入信號kbrow進行讀取,并通過或非運算產(chǎn)生行掃描使能控制信號en對行掃描輸出信號kbcol進行控制,并生成一個與kbcol對應的狀態(tài)信號state。若沒有按鍵被按下(即kbrow="0000"),則en= '1',行掃描輸出信號kbcol不斷循環(huán)掃描各行;若有按鍵被按下,en=‘O’,則行掃描停止,并鎖存當前kbcol的值。進程P1和P2的代碼如下:


    進程P3使用“case…when”語句,根據(jù)狀態(tài)信號state的值(即kbcol的值)和列掃描輸入信號kbrow的值進行按鍵值譯碼,生成一個4位二進制按鍵數(shù)值信號dat,用以記錄當前按鍵值。例如,當kbcol=“0010”,kbrow=“0001”時,“B”鍵按下,dat=“1011”。進程P3的代碼在此不再贅述。
    進程P4和P5用于按鍵的防抖和按鍵值的移位寄存。通過將行掃描使能控制信號en不斷賦給一個8位二進制變量reg8,再將reg8賦給8位二進制信號key,實現(xiàn)對按鍵狀態(tài)的記錄,然后通過對key的各位數(shù)值進行與運算,生成防抖控制信號fnq。一旦有按鍵按下,en=‘O’,則即便是按鍵在抖動,key中至少也有1位數(shù)值為‘0’,從而使fnq=‘O’。只有當按鍵再次彈起,并且在連續(xù)8個時鐘周期內(nèi)不再有新的按鍵按下,key的數(shù)值全為‘1’,則fnq=‘1’,fnq產(chǎn)生一個上升沿,從而觸發(fā)按鍵數(shù)值信號dat進入數(shù)值寄存信號temp(32位二進制數(shù))的第0~3位,并將temp原來的第0~27位左移到第4~31位,實現(xiàn)1次按鍵按下的數(shù)值存儲。進程P4和P5的代碼如下:
   
    進程P6用于將數(shù)值寄存信號temp的32位二進制數(shù)分配給8個數(shù)碼管,從而生成數(shù)碼管地址掃描輸出scan,以及數(shù)碼管數(shù)值信號data(4位2進制數(shù))。進程P6代碼如下:
    [!--empirenews.page--]
   
    進程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)生的重復數(shù)據(jù)輸出,使每次按鍵無論時間長短均可且只會產(chǎn)生1次數(shù)據(jù)輸出。另外,當電路采用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è)計的矩陣鍵盤及顯示電路在QliartusⅡ開發(fā)環(huán)境下進行了仿真驗證。其中,按鍵防抖功能的仿真波形如圖3所示。仿真結(jié)果分析如下:
    (1)clk為時鐘輸入信號,作為系統(tǒng)時鐘;
    (2)start為清零控制端,當其為高電平時,按鍵有效;
    (3)kbrow為列掃輸入信號,kbcol為行掃輸出信號,圖3中對kbrow[1]的輸入波形進行設(shè)置,模擬了“A”鍵按下和彈起的過程;
    (4)fnq為防抖控制信號,scan為數(shù)碼管地址掃描輸出,seg7為數(shù)碼管顯示輸出。由圖3可知,只有在按鍵彈起后,才有數(shù)據(jù)輸出,從而實現(xiàn)防抖功能。


    該設(shè)計的其他功能也可以通過仿真驗證,不再贅述。

4 結(jié)語
   
本文設(shè)計矩陣鍵盤顯示電路在QuartusⅡ開發(fā)環(huán)境下進行仿真驗證后,下載到湖北眾友科技實業(yè)股份有限公司的ZYllEDAl3BE實驗箱中進行了硬件驗證。該實驗箱使用ACEXlK系列EPlK30QC208芯片作為核心芯片。實驗證明,當電路的系統(tǒng)時鐘頻率在1 024~32 768 Hz范圍內(nèi)時,電路均可穩(wěn)定運行,按鍵防抖可靠、功能完整。當系統(tǒng)時鐘頻率低于1 024 Hz時,需要減少防抖記錄時鐘周期的個數(shù),否則容易錯過短時按鍵動作;當系統(tǒng)時鐘頻率高于32 768 Hz時,需要增加防抖記錄時鐘周期的個數(shù),以確??煽康陌存I防抖。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉