《電子技術應用》
您所在的位置:首頁 > 顯示光電 > 設計應用 > 基于VHDL的矩陣鍵盤及顯示電路設計
基于VHDL的矩陣鍵盤及顯示電路設計
張喜鳳 屈寶鵬
摘要: 在QuartusⅡ開發環境下,采用VHDL語言設計了一種能夠將機械式4×4矩陣鍵盤的按鍵值依次顯示到8個7段數碼管上的矩陣鍵盤及顯示電路。仿真結果表明,所設計的矩陣鍵盤及顯示電路成功地實現了按鍵防抖和按鍵數據的準確顯示。以ACEXlK系列EPlK30QC208芯片為硬件環境,驗證了各項設計功能的正確性。
Abstract:
Key words :

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

1 矩陣鍵盤及顯示電路設計思路
   
矩陣鍵盤及顯示電路能夠將機械式4×4矩陣鍵盤的按鍵值依次顯示到8個7段數碼管上,每次新的按鍵值顯示在最右端的第O號數碼管上,原有第0~6號數碼管顯示的數值整體左移到第1~7號數碼管上顯示,見圖1。總體而言,矩陣鍵盤及顯示電路的設計可分為4個部分:
    (1)矩陣鍵盤的行及列的掃描控制和譯碼。該設計所使用的鍵盤是通過將列掃描信號作為輸入信號,控制行掃描信號輸出,然后根據行及列的掃描結果進行譯碼。
    (2)機械式按鍵的防抖設計。由于機械式按鍵在按下和彈起的過程中均有5~10 ms的信號抖動時間,在信號抖動時間內無法有效判斷按鍵值,因此按鍵的防抖設計是非常關鍵的,也是該設計的一個重點。
    (3)按鍵數值的移位寄存。由于該設計需要在8個數碼管上依次顯示前后共8次按鍵的數值,因此對已有數據的存儲和調用也是該設計的重點所在。
    (4)數碼管的掃描和譯碼顯示。由于該設計使用了8個數碼管,因此需要對每個數碼管進行掃描控制,并根據按鍵值對每個數碼管進行7段數碼管的譯碼顯示。

2 矩陣鍵盤及顯示電路的實現
   
本文所設計的矩陣鍵盤及顯示電路的電路符號如圖2所示。其中,clk為時鐘信號輸入端(頻率可為1 024~32 768Hz);start為清零控制端;kbrow為列掃描信號輸入端;kbeol為行掃描信號輸出端;scan為數碼管地址掃描信號輸出端;seg7為數碼管顯示信號輸出端。
    限于篇幅,在此不詳述所設計矩陣鍵盤及顯示電路的全部VHDL代碼,只對部分重要代碼段落進行詳細說明。


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


    進程P3使用“case…when”語句,根據狀態信號state的值(即kbcol的值)和列掃描輸入信號kbrow的值進行按鍵值譯碼,生成一個4位二進制按鍵數值信號dat,用以記錄當前按鍵值。例如,當kbcol=“0010”,kbrow=“0001”時,“B”鍵按下,dat=“1011”。進程P3的代碼在此不再贅述。
    進程P4和P5用于按鍵的防抖和按鍵值的移位寄存。通過將行掃描使能控制信號en不斷賦給一個8位二進制變量reg8,再將reg8賦給8位二進制信號key,實現對按鍵狀態的記錄,然后通過對key的各位數值進行與運算,生成防抖控制信號fnq。一旦有按鍵按下,en=‘O’,則即便是按鍵在抖動,key中至少也有1位數值為‘0’,從而使fnq=‘O’。只有當按鍵再次彈起,并且在連續8個時鐘周期內不再有新的按鍵按下,key的數值全為‘1’,則fnq=‘1’,fnq產生一個上升沿,從而觸發按鍵數值信號dat進入數值寄存信號temp(32位二進制數)的第0~3位,并將temp原來的第0~27位左移到第4~31位,實現1次按鍵按下的數值存儲。進程P4和P5的代碼如下:
   
    進程P6用于將數值寄存信號temp的32位二進制數分配給8個數碼管,從而生成數碼管地址掃描輸出scan,以及數碼管數值信號data(4位2進制數)。進程P6代碼如下:
   
   
    進程P7用于將數碼管數值信號data譯碼成為7段數碼管顯示輸出seg7,進程P7的代碼在此不再贅述。值得注意的是,本文設計的矩陣鍵盤及顯示電路在按鍵防抖和數據寄存部分設計得更加簡潔可靠,實現的功能更加強大,其具有如下特點:
    (1)為了實現按鍵防抖,本文采用對按鍵狀態連續記錄的方式,即在按鍵彈起后連續8個時鐘周期均無按鍵信號才確認1次按鍵有效,從而避免了按鍵按下和彈起過程中的數據抖動,相比于使用計數器從按鍵按下開始計數,直到5~10 ms后才讓按鍵有效的防抖方式,這里設計的按鍵防抖更加可靠,且可有效避免長時間按下按鍵產生的重復數據輸出,使每次按鍵無論時間長短均可且只會產生1次數據輸出。另外,當電路采用32 768 Hz以上的時鐘作為系統時鐘時,可以通過增加按鍵狀態連續記錄的時鐘周期數,實現可靠的防抖。
    (2)該設計采用一個32位一維數組temp作為數據寄存器,使用移位寄存方式,實現了對連續8次按鍵數據的存儲和調用,從而可以在8個數碼管上連續顯示數據。

3 仿真結果分析
   
本文設計的矩陣鍵盤及顯示電路在QliartusⅡ開發環境下進行了仿真驗證。其中,按鍵防抖功能的仿真波形如圖3所示。仿真結果分析如下:
    (1)clk為時鐘輸入信號,作為系統時鐘;
    (2)start為清零控制端,當其為高電平時,按鍵有效;
    (3)kbrow為列掃輸入信號,kbcol為行掃輸出信號,圖3中對kbrow[1]的輸入波形進行設置,模擬了“A”鍵按下和彈起的過程;
    (4)fnq為防抖控制信號,scan為數碼管地址掃描輸出,seg7為數碼管顯示輸出。由圖3可知,只有在按鍵彈起后,才有數據輸出,從而實現防抖功能。


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

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

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久精品一区二区国产| 欧美一区二区三区四区夜夜大片| 亚洲视频免费在线观看| 亚洲国产一区视频| 一色屋精品亚洲香蕉网站| 国产欧美一区二区三区视频| 欧美视频一区| 欧美日韩国产91| 欧美绝品在线观看成人午夜影视| 另类人畜视频在线| 久久综合精品国产一区二区三区| 欧美一区观看| 久久国产精品网站| 久久久精品国产一区二区三区| 欧美在线一区二区| 久久成人国产| 久久精品免费看| 久久久噜久噜久久综合| 久久久久se| 久久一区国产| 毛片av中文字幕一区二区| 另类天堂av| 欧美高清一区二区| 欧美精品在线看| 欧美日韩国产一中文字不卡| 欧美日韩国产一中文字不卡| 欧美日韩一卡二卡| 国产精品久久久久久久9999| 国产精品美女久久久浪潮软件 | 伊人影院久久| 亚洲第一免费播放区| 亚洲国产美女| 夜夜嗨av一区二区三区| 亚洲一区二区3| 午夜免费电影一区在线观看| 欧美制服第一页| 亚洲激情网址| 亚洲一区二区三区777| 欧美一级欧美一级在线播放| 久久九九精品| 欧美成人免费视频| 欧美日韩少妇| 国产欧美一区二区精品性色| 激情欧美一区二区三区| 亚洲精品三级| 午夜精品久久久99热福利| 久久精品一区二区| 一区二区三区国产在线观看| 欧美一级视频免费在线观看| 久久视频精品在线| 欧美激情精品久久久久久变态| 欧美性开放视频| 国产一区二区无遮挡| 91久久精品国产91性色tv| 亚洲一区日韩| 亚洲欧洲精品一区二区三区不卡| 亚洲字幕在线观看| 久久综合伊人| 欧美体内谢she精2性欧美| 国内久久视频| 一区二区三区精品| 久久精品国产v日韩v亚洲 | 99精品视频免费全部在线| 午夜精品一区二区三区四区| 麻豆成人91精品二区三区| 欧美日韩在线一区二区三区| 国产日韩欧美一区二区| 亚洲国产成人久久| 午夜精品久久一牛影视| 亚洲三级视频| 久久精品首页| 欧美视频官网| 亚洲国产精品99久久久久久久久| 亚洲免费视频网站| 一区二区三区久久久| 久久久久亚洲综合| 国产精品久久99| 亚洲精品看片| 亚洲二区在线观看| 亚洲欧美日韩综合aⅴ视频| 欧美成人免费观看| 国模私拍一区二区三区| 亚洲一级二级在线| 99精品国产在热久久下载| 久久精彩免费视频| 国产精品二区在线| 亚洲精品乱码久久久久久久久| 欧美在线观看视频一区二区三区 | 久久在线免费观看| 国产伦精品一区二区三区视频黑人| 91久久在线观看| 久久精品国产综合精品| 香港久久久电影| 欧美日韩日本网| 亚洲国产成人91精品| 久久精品成人一区二区三区| 午夜精品视频在线观看| 欧美色播在线播放| 亚洲人体偷拍| 亚洲精品国产精品乱码不99| 久久久久成人精品免费播放动漫| 国产精品亚洲欧美| 在线视频中文亚洲| 在线亚洲美日韩| 欧美成人综合在线| 黄色一区二区三区四区| 午夜亚洲福利| 欧美在线播放一区二区| 国产精品久久影院| 在线视频欧美日韩精品| 在线亚洲+欧美+日本专区| 欧美激情久久久久| 最近看过的日韩成人| 亚洲人成网站色ww在线| 久久综合综合久久综合| 国产在线一区二区三区四区| 亚洲欧美视频在线| 欧美在线中文字幕| 国产日产精品一区二区三区四区的观看方式| 一区二区三区四区五区精品| 亚洲视频在线观看网站| 欧美日韩在线观看视频| 日韩一级片网址| 中国亚洲黄色| 欧美日韩精品不卡| 日韩视频永久免费| 亚洲欧美999| 国产精品美腿一区在线看| 亚洲一区二区欧美日韩| 午夜精品久久久久久久99热浪潮| 国产精品久久一级| 亚洲欧美综合一区| 久久免费高清视频| 亚洲电影免费在线观看| 最新国产成人av网站网址麻豆| 欧美国产在线观看| 亚洲美洲欧洲综合国产一区| 亚洲一区影音先锋| 国产九区一区在线| 欧美在线视频免费| 牛牛影视久久网| 亚洲精选91| 午夜欧美精品久久久久久久| 国产精品婷婷| 久久精品国产69国产精品亚洲| 欧美成年人网| 99精品国产高清一区二区| 午夜精品久久久久久久男人的天堂| 国产日韩欧美一区二区| 亚洲国产成人91精品| 欧美黄色aaaa| 在线中文字幕不卡| 久久大香伊蕉在人线观看热2| 精品1区2区3区4区| 妖精成人www高清在线观看| 欧美午夜精品久久久久久超碰| 亚洲一区二区三区在线看| 久久久久久夜| 亚洲精品一级| 午夜宅男久久久| 狠狠色综合播放一区二区| 99国内精品久久| 国产麻豆精品在线观看| 亚洲激情网址| 国产精品国产成人国产三级| 欧美一区免费视频| 欧美人牲a欧美精品| 亚洲欧美国产另类| 欧美高清在线精品一区| 亚洲一区免费| 欧美成人免费全部| 亚洲影院高清在线| 欧美风情在线| 亚洲欧美伊人| 欧美精品一区二区高清在线观看| 亚洲色图在线视频| 久热精品视频| 亚洲婷婷在线| 欧美成人69av| 欧美一区成人| 欧美人与禽性xxxxx杂性| 亚洲欧美日韩久久精品| 免费欧美高清视频| 亚洲永久免费精品| 欧美精品aa| 欧美一区二区福利在线| 欧美日韩在线直播| 久久精品视频免费观看| 欧美日韩在线观看视频| 久久精品亚洲一区| 国产精品制服诱惑| 在线视频你懂得一区| 黄色免费成人| 亚洲免费在线| 亚洲日韩欧美视频一区| 久久久精品免费视频| 亚洲一区在线直播| 欧美日韩视频免费播放| 亚洲国产日韩一级| 国产欧美日韩一区二区三区在线观看|