亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于FPGA的矩陣鍵盤控制器及顯示電路的設計*

        2012-05-15 01:06:12王榮揚吳國強
        湖州職業(yè)技術學院學報 2012年3期
        關鍵詞:數碼管譯碼按鍵

        王榮揚 , 吳國強

        (湖州職業(yè)技術學院 機電工程分院, 浙江 湖州 313000)

        在便攜式電子設備中有著廣泛應用的矩陣鍵盤,一般利用單片機對其進行掃描控制,大大降低了單片機處理其它信息的能力,造成資源的浪費。利用FPGA強大的邏輯處理能力及豐富的引腳,本文設計了基于FPGA的矩陣鍵盤控制器,主要包括矩陣鍵盤抗抖動模塊、掃描模塊、譯碼模塊、存儲模塊以及數碼管顯示模塊,同時將矩陣鍵盤輸入的數據通過7段數碼管進行顯示。

        1 矩陣鍵盤控制器及顯示電路設計思路

        為完成便攜式設備的人機交互,利用4×4矩陣鍵盤設計了基于FPGA的矩陣鍵盤控制器及顯示電路,如圖1所示。系統(tǒng)主要由FPGA、矩陣鍵盤、138譯碼芯片以及數碼管等組成,主要完成一個8位數的輸入,對所輸入的8位數進行存儲供后續(xù)使用,利用數碼管的顯示功能來確認所輸入的數據是否準確,降低輸入誤差。

        由圖1可看出,本系統(tǒng)軟件部分主要實現矩陣鍵盤行列掃描控制、輸入抗抖動、按鍵譯碼、按鍵存儲以及數碼管顯示等功能。

        (1)矩陣鍵盤行列掃描控制模塊:產生周期性的掃描信號,根據掃描輸入信號進行判斷是否有按鍵被按下,若有按鍵被按下則立刻進行按鍵判斷和編碼,并將按鍵存儲到內部寄存器[1]。

        (2)彈跳消除電路:機械開關結構的矩陣鍵盤,按鍵被按下時,接觸點會出現來回彈跳的信號。信號彈跳時間內程序無法有效的判斷按鍵值,從而影響到輸入的正確性,降低設備的性能[1]。

        (3)按鍵譯碼電路:掃描回復信號(按鍵輸入給FPGA的信號)在FPGA內部無法直接作為后續(xù)使用信號,必須定義中間信號,用以區(qū)分不同按鍵的功能,對按鍵進行譯碼[1]。

        (4)按鍵存儲電路:前一次按鍵的輸入數據將被下一次掃描產生的新按鍵數據覆蓋,因此需要一個移位寄存器來保存整個按鍵的輸入。

        (5)數碼管顯示電路:為完成8位數據的輸入顯示,需要對每個數碼管進行掃描控制,并根據按鍵值對數碼管進行譯碼顯示。

        圖1 系統(tǒng)硬件電路圖

        2 矩陣鍵盤控制器及顯示的VHDL設計

        2.1 矩陣鍵盤防抖設計

        矩陣鍵盤抗抖動電路主要有計數器、移位寄存器、D型觸發(fā)器延時和采樣型防抖微分電路四種方法[2]。本文采用的去抖方法是:將鍵盤輸入信號作為電路輸入信號,在時鐘信號作用下,輸入信號經過兩級D觸發(fā)器延時后再使用RS觸發(fā)器進行處理。抖動消除電路所使用的脈沖信號頻率必須比其它電路使用的脈沖信號頻率更高,通常將掃描電路的工作頻率定在24Hz左右,而將彈跳電路的工作頻率定在128Hz左右[3]。根據以上設計思想,采用VHDL硬件語言編寫了鍵盤抗抖動模塊,抗抖動模塊經綜合后其RTL電路圖如圖2所示。

        圖2 抗抖動電路RTL圖

        2.2 時鐘電路和掃描電路

        時鐘電路主要產生系統(tǒng)所需要的時鐘信號,由FPGA時鐘分頻得到系統(tǒng)工作時鐘,然后采用計數器分頻方法得到所需要的彈跳消除時鐘信號、鍵盤掃描信號以及數碼管顯示時鐘信號。鍵盤掃描電路用來產生鍵盤掃描信號,根據矩陣鍵盤工作原理,需要產生從第一列到第四列的周期性掃描信號。采用VHDL硬件語言設計掃描模塊,具體程序如下。

        Process(clk_1khz) “1101” when clk_key=“01”else

        begin “1011” when clk_key=“10”else

        if clk_1khz'event and clk_1khz='1' then “0111” when clk_key=“11”else

        counter<=counter+1; clk_scan<=sel;

        end if; “1111”;

        clk_key<=counter(9 downto 0); end process;

        sel<= “1110” when clk_key=“00” else

        2.3 矩陣鍵盤譯碼電路

        矩陣鍵盤所產生的掃描回復信號(按鍵輸入給FPGA的信號),是無法直接在FPGA內部作為信號進行使用,在使用前需要根據定義的不同功能將掃描回復信號譯碼為可供FPGA識別的BCD編碼,完成矩陣鍵盤輸入的譯碼,同時區(qū)分不同按鍵的功能。譯碼電路的主要功能是:判斷是否有鍵按下,然后根據掃描的信號確認所按下的鍵是數字鍵還是功能鍵,將所按下的鍵編寫成BCD碼。表1為所用鍵盤輸入信號與按鍵位置之間的關系。

        表1 按鍵輸入信號與按鍵位置的關系

        譯碼電路對應的VHDL程序如下。

        Process(clk) when “101011” =>data_n<=“1001”;

        begin when “100111” =>data_n<=“1110”;

        scan<= clk_key & KO; when “111101” =>data_n<=“1011”;

        if clk'event and clk='1' then when “111011” =>data_n<=“1100”;

        case scan is when others =>data_n<=“0000”;

        when “001110” =>data_n<=“0001”; end case;

        when “001101” =>data_n<=“0100”; end if;

        when “001011” =>data_n<=“0111”; if clk'event and clk='1' then

        when “000111” =>data_n<=“0000”; case scan is

        when “011110” =>data_n<=“0010”; when “111110” =>data_f<=“1010”;

        when “011101” =>data_n<=“0101”; when “110111” =>data_f<=“1101”;

        when “011011” =>data_n<=“1000”; when others =>data_f<=“0000”;

        when “010111” =>data_n<=“1111”; end case;

        when “101110” =>data_n<=“0011”; end if;

        when “101101” =>data_n<=“1010”; end process;

        2.4 存儲及顯示電路

        每次掃描會產生新的按鍵輸入,可能會覆蓋前面的數據,所以需要一個按鍵存儲器電路,將整個鍵盤掃面完畢后的結果記錄下來。按鍵存儲電路由移位寄存器電路組成。本設計采用串行輸入、串行輸出移位寄存器作為按鍵存儲電路。設計思路:八進制計數器cnt按合適的頻率進行計數;每記一個數,便給位選信號segweixh賦一個不同的值,通過I/O口將segweixh的值輸出給138譯碼器;當位選信號segweixh變化時,按一定的算法將鍵盤輸入信號的四位賦值給內部寄存器datebuf;process(datebuf)過程是數碼管顯示譯碼階段,主要完成對輸入信號的譯碼工作。(限于篇幅,程序略)

        3 實驗結果分析

        (1)掃描電路仿真分析:圖3所示為分頻和鍵盤掃描仿真圖,圖中clk為頻率為50MHz的FPGA時鐘信號;clk_1kHz為經過50000分頻得到的1kHz的鍵盤掃描工作時鐘信號;在程序內部分頻器的作用下對鍵盤進行掃描,clk_scan為鍵盤掃描信號,由圖3可以看出仿真結果和理論要求一致。

        圖3 分頻及掃描模塊仿真波形圖

        (2) 數碼管顯示電路仿真分析:圖4所示為數碼管顯示仿真波形,圖中clk為頻率為50Mhz的FPGA時鐘信號;clk_1khz為經過50000分頻得到的1khz的數碼管顯示工作時鐘信號;矩陣鍵盤輸入數據存放在移位寄存器datain_x中,假設輸入數據為“0000 0001 0010 0011 0100 0101 0110 0111”,對應的顯示數碼為0、1、2、3、4、5、6、7;led_out為138位選信號,由仿真結果看得其與理論值一致;segma_out為數碼管顯示斷碼,由圖4可得,在led_out為“000”、 “001”、 “010”、 “011”、 “100”、 “101”、 “110”、 “111”時分別顯示“11111010”、“ 00100010”、“ 10111001”、“ 10101011”、“ 01100011”、“ 11001011”、“ 11011011”、“ 10100010”,即0、1、2、3、4、5、6、7與輸入的數據一致。

        圖4 數碼管顯示模塊仿真波形圖

        4 結 語

        本設計的矩陣鍵盤控制器及其顯示電路在ISE13.4 開發(fā)環(huán)境下進行仿真驗證后,下載到采用138譯碼芯片、矩陣鍵盤、FPGA及4位數碼管建立開發(fā)的硬件系統(tǒng)中進行了硬件驗證,該硬件采用Xilinx系列 spartan-xc3s500E 芯片作為核心芯片。實驗證明,所設計的系統(tǒng)能夠準確的完成目標功能,硬件系統(tǒng)結果與仿真結果一致,即驗證了系統(tǒng)的正確性。所設計的系統(tǒng)誤判概率低,反應速度快,能夠滿足設計要求。該模塊以按鍵的釋放控制按鍵編碼輸出,在按鍵被按下一段時間到釋放按鍵之前,不能按一定的間隔連續(xù)輸出被按鍵的鍵值,矩陣鍵盤沒有連續(xù)按鍵的功能。

        參考文獻:

        [1] 張喜鳳,屈寶鵬.基于VHDL的矩陣鍵盤及顯示電路設計[J].現代電子技術,2010,33(16):14-16.

        [2] 魯傳明,翁嘉民.基于VHDL的防抖型矩陣式鍵盤設計[J].河南工程學院學報,2009,21(1):58-62.

        [3] 譚會生,翟遂春.EDA技術綜合應用實例與分析[M].西安:電子科技大學出版社,2004:11.

        猜你喜歡
        數碼管譯碼按鍵
        基于有限狀態(tài)機的按鍵檢測程序設計
        電子制作(2021年3期)2021-06-16 03:14:26
        基于校正搜索寬度的極化碼譯碼算法研究
        Arduino編程
        電腦報(2019年2期)2019-09-10 07:22:44
        MC9S08FL16單片機數碼管靜態(tài)顯示分析
        科技風(2019年13期)2019-06-11 13:38:30
        單片機控制的四位數碼管動態(tài)顯示編程
        時代農機(2019年2期)2019-04-24 01:20:14
        基于Qt的數碼管數字編碼系統(tǒng)的設計與實現
        一種多方向導光按鍵結構設計
        電子制作(2016年1期)2016-11-07 08:43:05
        從霍爾的編碼譯碼理論看彈幕的譯碼
        新聞傳播(2016年3期)2016-07-12 12:55:27
        LDPC 碼改進高速譯碼算法
        遙測遙控(2015年2期)2015-04-23 08:15:19
        基于概率裁剪的球形譯碼算法
        国家一级内射高清视频| 国产内射一级一片高清内射视频 | 欧美综合自拍亚洲综合图片区| 欧美激情αv一区二区三区| 免费国产黄线在线播放| 亚洲人成网站在线播放小说 | 韩国一区二区三区黄色录像| 无码中文字幕日韩专区| 亚洲色成人网站www永久四虎| 久久久久亚洲精品天堂| 女人的天堂av免费看| 国内自拍视频在线观看| 人妻系列中文字幕av| 亚洲一区二区三区内裤视| 精品成在人线av无码免费看| 亚洲精品无码乱码成人| 亚洲国产精品自拍一区| 亚欧同人精品天堂| 少妇人妻中文字幕在线| 亚洲av毛片在线网站| 国产黄大片在线观看画质优化| 亚洲依依成人亚洲社区| 精选麻豆国产AV| 中文字幕av久久激情亚洲精品| 一区二区三区日韩亚洲中文视频| 国产欧美va欧美va香蕉在| av无码天堂一区二区三区| 亚洲综合婷婷久久| 蜜臀av人妻一区二区三区| 亚洲国产色一区二区三区| 免费毛片a线观看| 玩弄放荡人妻一区二区三区| av少妇偷窃癖在线观看| 日韩精品综合在线视频| 亚洲视频免费一区二区| 在线精品无码字幕无码av| 日韩乱码人妻无码中文字幕视频| 日韩高清无码中文字幕综合一二三区 | 丝袜人妻一区二区三区| 伊人久久大香线蕉av网禁呦| 欧美a在线播放|