日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 電源 > 數(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??傮w而言,矩陣鍵盤及顯示電路的設(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)系本站刪除。
換一批
延伸閱讀

構(gòu)建可靠的硬件要求我們在設(shè)計階段考慮所有公差。許多參考文獻討論了參數(shù)偏差導致的有源元件誤差——展示了如何計算運算放大器失調(diào)電壓、輸入電流和類似參數(shù)的影響——但很少有人考慮無源元件容差。確實考慮了組件容差的參考文獻是從科學...

關(guān)鍵字: 元件公差 電路設(shè)計

對于非比例電路,我們必須假設(shè)完整的電阻容差,因為容差不會分開。我們可以將輸出電壓計算為 V OUT =IR,其中 I 是理想的 1mA 電流源,R 是 5% 的電阻器(圖 1a)。V OUT =1 mA (1±0.05±...

關(guān)鍵字: 電路設(shè)計 非比例電路

我們是否設(shè)計了一個電源,后來才發(fā)現(xiàn)我們的布局效率低下?按照這些關(guān)鍵提示創(chuàng)建電源布局并避免調(diào)試壓力。什么是電源設(shè)計的布局?你知道嗎?一個完美的電路設(shè)計,電源布局顯得尤為重要。由于不同的設(shè)計方案的出發(fā)點不同,而有所差異,但是...

關(guān)鍵字: 電源布局 電路設(shè)計

在這篇文章中,小編將對FPGA的相關(guān)內(nèi)容和情況加以介紹以幫助大家增進對它的了解程度,和小編一起來閱讀以下內(nèi)容吧。

關(guān)鍵字: FPGA 芯片 VHDL

摘要:基于攝像機遠程操作技術(shù),利用單片機控制步進電機,建立攝像鏡頭的電力驅(qū)動系統(tǒng)。此系統(tǒng)節(jié)約了經(jīng)濟成本,通過人機交互閉環(huán)系統(tǒng)、模塊化等方法,進一步提高了系統(tǒng)的通用性,使其可以應用于工程。

關(guān)鍵字: 步進電機 單片機 電路設(shè)計

一直以來,智能硬件都是大家的關(guān)注焦點之一。因此針對大家的興趣點所在,小編將為大家?guī)碇悄芄β誓K的相關(guān)介紹,詳細內(nèi)容請看下文。

關(guān)鍵字: 智能功率模塊 IPM 電路設(shè)計

與傳統(tǒng)聚合物電容器相比,多層陶瓷電容器 (MLCC) 在電力電子設(shè)計中很受歡迎,原因有很多: MLCC 提供: · 具有相對較高電容的小輪廓。 · 非常低的等效串聯(lián)電阻 (ESR)。 · 非常低的等效串聯(lián)電感 (...

關(guān)鍵字: MLCC電容 電路設(shè)計

許多同步降壓轉(zhuǎn)換器設(shè)計人員面臨一個共同的問題:如何最好地連接開漏電源良好標志,也稱為電源良好 (PGOOD) 引腳。在這篇文章中,我將探討電源良好與各種不同的上拉源相關(guān)聯(lián)時的預期行為。有一些錯誤信息四處流傳,希望這篇文章...

關(guān)鍵字: 降壓轉(zhuǎn)換器 電路設(shè)計

嵌入式開發(fā)是指利用分立元件或集成器件進行電路設(shè)計、結(jié)構(gòu)設(shè)計,再進行軟件編程(通常是高級語言),實驗,經(jīng)過多輪修改設(shè)計、制作,最終完成整個系統(tǒng)的開發(fā)。

關(guān)鍵字: 嵌入式開發(fā) 電路設(shè)計 結(jié)構(gòu)設(shè)計

可編程邏輯器件是通過EDA技術(shù)將電子應用系統(tǒng)的既定功能和技術(shù)指標具體實現(xiàn)的硬件載體,F(xiàn)PGA作為實現(xiàn)這一途徑的主流器件之一,具有直接面向用戶,靈活性和通用性極大,使用方便,硬 件測試和實現(xiàn)快捷等特點。

關(guān)鍵字: EDA FPGA VHDL

數(shù)字電源

15504 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉