網站首頁 | 范文大全 | 精美散文 | 優秀作文 | 論文大全 | 教案下載 | 勵志名言 | 文檔下載 | 心得體會 | 黨課下載 | 述職報告 | 事跡材料 | 思想匯報 | 發言材料 |
匯站范文網
  • 作文選
  • 作文大全
  • 話題作文
  • 小學作文
  • 初中作文
  • 高中作文
  • 英語作文
  • 作文素材
  • 作文指導
  • 作文評語
  • 您的位置:匯站范文網 > 優秀作文 > 話題作文 > 數字系統設計大作業4×4陣列... 正文 2021-04-20 12:20:17

    數字系統設計大作業4×4陣列鍵盤鍵信號檢測電路設計

    相關熱詞搜索:

    2014 ~ 2015學年 第 1 學期 《數字系統設計》 大作業 題 目:
    4×4陣列鍵盤鍵信號檢測電路設計 專 業:
    電子信息工程 班 級:
    姓 名:
    指導教師:
    電氣工程學院 2015 年 月 摘 要 人類文明已進入到高度發達的信息化社會。信息化社會的發展離不開電子信息產品開發技術、產品品質的提高和進步。電子信息產品隨著科學技術的進步,其電子器件和設計方法更新換代的速度日新月異。實現這種進步的主要原因就是電子設計技術和電子制造技術的發展,其核心就是電子設計自動化(EDA,Electronic Design Automation)技術,EDA技術的發展和推廣應用又極大地推動了電子信息產業的發展。為保證電子系統設計的速度和質量,適應“第一時間推出產品”的設計要求,EDA技術正逐漸成為不可缺少的一項先進技術和重要工具。目前,在國內電子技術教學和產業界的技術推廣中已形成“EDA熱”,完全可以說,掌握EDA技術是電子信息類專業學生、工程技術人員所必備的基本能力和技能。

    本設計主要利用VHDL硬件描述語言在EDA平臺xilinx.ise.7.1i上設計一個4×4陣列鍵盤掃描電路,將行掃描信號輸入陣列鍵盤,讀取列信號的值,輸出按鍵編碼,從而判斷出按鍵按下的位置。并且使用Modelsim軟件進行模擬仿真,下載到EDA實驗箱進行硬件驗證。

    關鍵詞:EDA VHDL語言 4×4陣列鍵盤掃描 目 錄 《數字系統設計》 1 數字系統設計 2 摘 要 3 關鍵詞:EDA VHDL語言 4×4陣列鍵盤掃描 3 1、實驗目的 5 2、實驗要求 5 3、 實驗原理 5 4、 總體框圖 6 4.1.1方案一 6 4.1.2方案二 6 4.2設計思路 7 5、功能模塊介紹 9 5.1鍵盤消抖模塊 9 5.2鍵盤模塊 9 5.3VHDL部分程序 9 6、實驗結果 11 6.1綜合電路圖 11 6.2時序仿真 12 1、實驗目的 (1)通過常見基本組合邏輯電路的設計,熟悉EDA設計流程;

    (2)熟悉文本輸入及仿真步驟;

    (3)掌握VHDL設計實體的基本結構及文字規則;

    (4)理解硬件描述語言和具體電路的映射關系;

    (5)用VHDL設計一個能識別4×4陣列鍵盤的實用電路。

    2、實驗要求 要求通過查閱相關書籍資料,熟悉和初步掌握VHDL語言的語法及其功能,深入分析4×4鍵盤掃描電路的原理,然后運用VHDL硬件描述語言和圖形設計綜合方法,實現4×4鍵盤掃描電路的程序設計,通過運用xilinx.ise.7.1i軟件設置輸入端口,實現模擬仿真,得到仿真波形圖后,并記錄結果。

    3、 實驗原理 4×4陣列鍵盤十分常用,如下圖是此鍵盤電路的原理圖,10芯接口也如下。通常,此類按鍵的識別法有兩種:掃描法和反轉法。掃描法,即當按下某鍵后,為了辨別和讀取鍵信息,向A口掃描輸入一組分別只含一個0的4位數據,如1110,1101,1011等。若有鍵按下,則B口一定會輸出對應的數據,這時,只要結合A、B口的數據,就能判斷出鍵的位置。如當鍵S0按下,對于輸入的A=1110時,那么B=0111.于是{B,A}=0111_1110就成了S0的代碼。

    反轉法中,A、B口都必須接雙向口。首先將A口設定為輸出,B口設定為輸入。然后向A口輸出全0,接著讀B口。若讀入的數據中有一位是0,則表明與該位對應的列線上有某鍵被按下,存儲此值(否則循環檢測);
    然后反過來,將A口設定為輸入,B口設定為輸出。向B口輸出全0,讀A口,其中必有一位為0.將此4位數與剛才從B口讀得的數據組合即得被按鍵的特征碼。最后通過查表即得所按鍵的碼。

    4×4按鍵電路 4、 總體框圖 4.1.1方案一時鐘脈沖 譯碼輸出 鍵盤輸入 鍵盤掃描 上圖為方案一的設計框圖,鍵盤按鍵按下后,經過鍵盤掃描電路后,直接輸出顯示。本方案優點在于簡單易懂,缺點在于無法消除按鍵按下時和之后彈起時的抖動對掃描電路的干擾。

    4.1.2方案二 時鐘脈沖 鍵盤輸入 鍵盤消抖 輸出低電平 LED燈顯示 鍵盤掃描 上圖為方案二的設計框圖,鍵盤按鍵按下后,先經過消除抖動電路之后,再進入鍵盤掃描電路,這樣就可以使CPU只處理一次按鍵操作,避免了按鍵按下時和之后彈起時的抖動對掃描電路的干擾。另外,LED燈顯示可以更直觀地看到實驗結果。

    4.2設計思路 本設計采用方案二,主要由三個功能模塊組成:鍵盤消抖模塊、鍵盤掃描模塊、譯碼顯示模塊。

    (1)鍵盤消抖模塊 因為普通的按鍵都是接觸式的,當按鍵閉合或釋放時,上下接觸面都會產生一個很短暫的抖動,這個抖動時間一般都會持續5-10ms,雖然這個抖動時間很短,但對于FPGA工作在50M的高頻率上的器件來說,還是可以捕捉的到的。為了使CPU對于一次按鍵操作只處理一次,在軟件中必須加入消除抖動處理。

    本模塊是由四個上升沿觸發型D觸發器和一個四輸入的與門構成的。四個D觸發器用同步時序方式連接,即:將它們的時鐘輸入端都連在一起。在工作時四個D觸發器與clk時鐘信號同步,輸入信號以移位串行方式向前傳遞。

    (2)鍵盤掃描模塊 陣列式鍵盤又叫做行列式鍵盤,用帶有I/O口的線組成行列結構,按鍵設置在行列的交點上。此模塊所用鍵盤是表1所示的4×4陣列鍵盤。按鍵設置在行列交叉點,行列線分別接到按鍵開關的兩端,每個鍵的按下與否由這個鍵的行電平和列電平共同決定,當按下時為低電平“0”,沒有按下時為高電平“1”。

    表1、4×4陣列鍵盤 1 2 3 A 4 5 6 B 7 8 9 C * 0 # D 本模塊設計采用掃描的方法來實現對鍵盤上每個鍵的識別,即當進行行掃描時,掃描信號由行線進入鍵盤,以“1110”、“1101”、“1011”、“0111”的順序每次掃描不同的一行。之后,讀取列線的電平信號,判斷是哪個鍵按下了,如果列線全為高電平,則代表該列沒有按鍵按下,如果列線有輸入低電平,則低電平信號所在的行和出現低電平的列的交點處有按鍵按下。假設行線為a,列線為b,長度都為4。將輸入行掃描值a與列讀取值b并置形成組合值作為按鍵的輸入值,并對每一個鍵進行編碼(如表2鍵盤參數所示),使其送入輸出變量r(定義為4位),即可判斷出按鍵按下的位置。

    表2、鍵盤參數 行掃描a 列讀取b 鍵盤按鍵 按鍵編碼 1110 0111 1 0000 1101 0111 4 0001 1011 0111 7 0010 0111 0111 * 0011 1110 1011 2 0100 1101 1011 5 0101 1011 1011 8 0110 0111 1011 0 0111 1110 1101 3 1000 1101 1101 6 1001 1011 1101 9 1010 0111 1101 # 1011 1110 1110 A 1100 1101 1110 B 1101 1011 1110 C 1110 0111 1110 D 1111 3)譯碼顯示模塊 該模塊包括輸出低電平與LED燈顯示。因為實驗箱的LED燈是低電平有效,所以需要把輸出變量r進行邏輯“非”變換。該部分采用了4個非門,分別將輸入的4位掃描模塊輸出變量取反。LED燈的亮滅表示輸出變量r。r為高電平時燈亮,r為低電平時燈滅,這樣就能更清晰地顯示出實驗結果,使人一目了然。

    5、功能模塊介紹 5.1鍵盤消抖模塊 圖5-1消抖動模塊 圖4為消抖模塊的邏輯符號,其中D(3:0)輸入按鍵按下時帶抖動的信號,經過消抖之后,Q(3:0)輸出消除抖動之后的信號,使得CPU可以只對一次按鍵處理一次信號。

    5.2鍵盤模塊 圖5-2鍵盤模塊 圖5-2為掃描模塊的邏輯符號,其中a[3:0]是4位的行掃描信號,b[3:0]是4位的列讀取信號,r[3:0]是4位的按鍵編碼輸出。

    5.3VHDL部分程序 library ieee; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_1164.all; entity k44 is port (clk : in std_logic;--1khz以下 b,a : in std_logic_vector(3 downto 0); r : out std_logic_vector(3 downto 0)); end; architecture one of k44 is --signal c:std_logic_vector(1 downto 0); signal ba:std_logic_vector(7 downto 0); --signal e:std_logic_vector(3 downto 0); begin ba<=b&a; --ba<=e&a;b<=e; process(a,clk) begin -- if rising_edge(clk) then c<=c+1; --case c is -- when “00“=>e<=“0111“;when “01“=>e<=“1011“; -- when “10“=>e<=“1101“;when “11“=>e<=“1110“; --when others=>null; --end case; case ba is when “01111110“=>r<=“0000“;when “01111101“=>r<=“0001“; when “01111011“=>r<=“0010“;when “01110111“=>r<=“0011“; when “10111110“=>r<=“0100“;when “10111101“=>r<=“0101“; when “10111011“=>r<=“0110“;when “10110111“=>r<=“0111“; when “11011110“=>r<=“1000“;when “11011101“=>r<=“1001“; when “11011011“=>r<=“1010“;when “11010111“=>r<=“1011“; when “11101110“=>r<=“1100“;when “11101101“=>r<=“1101“; when “11101011“=>r<=“1110“;when “11100111“=>r<=“1111“; when others=>null; end case; --end if; end process; end; 6、實驗結果 6.1綜合電路圖 圖6-1(a)電路原理圖 圖6-1(b)RTL電路 6.2時序仿真 對源程序進行操作,生成tbw文件后,繼續對.tbw進行操作,點擊Simulate Behavioral Model出現如下時序圖,并對輸入與輸出進行賦值,如下:
    圖6-2(a)時序仿真初始圖 圖6-2(b)時序仿真結果圖 具體分析:
    如圖6-2(b)所示, (1)當a=0111,b=1110時,對應輸出s=0000,此時對應鍵盤上的S0,輸出信息為1;

    (2)當a=0111,b=1101時,對應輸出s=0001,此時對應鍵盤上的S2,輸出信息為2;

    (3)當a=1101,b=1001時,對應輸出s=1001,此時對應鍵盤上的SA,輸出信息為9. 綜上所分析,實驗仿真結果顯然滿足課題要求,故該實驗方案成立。

    數字系統設計大作業4×4陣列鍵盤鍵信號檢測電路設計》由(匯站范文網)整理提供,版權歸原作者、原出處所有。
    Copyright © 2021 匯站范文網 All Rights Reserved. 備案號:粵ICP備19014676號
    最好看的2018中文视频免费_韩国中文字乱码卡一卡二_一个人的HD高清在线观看_男生叽叽捅女生叽叽