FPGA矩陣鍵盤課程設(shè)計_第1頁
FPGA矩陣鍵盤課程設(shè)計_第2頁
FPGA矩陣鍵盤課程設(shè)計_第3頁
FPGA矩陣鍵盤課程設(shè)計_第4頁
FPGA矩陣鍵盤課程設(shè)計_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、通信 (基于FPGA的4*4矩陣鍵盤的設(shè)計)FPGA課程設(shè)計報告項目名稱 基于FPGA的4*4矩陣鍵盤的設(shè)計 專業(yè)班級 通信1 學(xué)生姓名 張 指導(dǎo)教師 2016年 7 月 10 日字號的設(shè)置。字體的設(shè)置。西文字體的設(shè)置。如果沒有特殊說明,就選圖上的這個。說明:字體設(shè)置指下圖。I摘 要本課程設(shè)計提出了基于FPGA的4*4矩陣鍵盤的設(shè)計,主要是在軟件Quartus II 9.0這個環(huán)境中,以硬件描述語言Verilog進(jìn)行編寫程序,從而完成矩陣鍵盤的相關(guān)設(shè)計。主要由矩陣式鍵盤電路、顯示電路等組成,實(shí)現(xiàn)過程是通過行掃描輸入隨機(jī)信號,列掃描判斷哪一個鍵被按下,并最后由數(shù)碼管顯示該按鍵。此次課程設(shè)計完成了

2、4*4矩陣鍵盤控制LED數(shù)碼管顯示系統(tǒng)的設(shè)計,該設(shè)計具有靈活性強(qiáng),易于操作,可靠性高,廣泛應(yīng)用于各種場合的特點(diǎn),是進(jìn)行按鍵操作管理的有效方法,它可以提高系統(tǒng)準(zhǔn)確性,有利于資源的節(jié)約,降低對操作者本身的要求,并能正確、實(shí)時、高效地顯示按鍵信息,以提高工作效率和資源換利用率的意義。關(guān)鍵詞:數(shù)碼管; 矩陣鍵盤;按鍵;顯示電路 AbstractThis course is designed based on FPGA is proposed 4 * 4 matrix keyboard design, mainly in the Quartus II software 9.0 this environm

3、ent, with the Verilog hardware description language program, so as to complete the related design of matrix keyboard. Main matrix keyboard circuit, display circuit and so on, complete the 4 * 4 matrix keyboard control LED digital tube display system design, the design has strong flexibility, easy op

4、eration, high reliability, widely used in various occasions. Into 4 * 4 matrix keyboard control LED digital tube display system design, design flexibility is strong, easy to operate, high reliability, widely used in various occasions. Matrix keyboard control system, can improve efficiency, and is an

5、 effective method to manage the keystrokes, it can improve the system accuracy, and is conducive to resource saving and reduce the requirement of the operator itself, and correctly, real-time and efficient to show the key information, in order to improve the work efficiency and the utilization ratio

6、 of resources in meaning.Keywords: Digital tube; Matrix keyboard; The key; Disply circuit目 錄摘 要IAbstractII第1章 緒論11.1 課題背景11.2 國內(nèi)外發(fā)展現(xiàn)狀11.3 本文主要研究內(nèi)容1第2章 軟件及語言簡介22.1 Quartus軟件簡介32.2 Verilog語言簡介42.2.1 Verilog語言的主要功能42.2.2 Verilog語言設(shè)計數(shù)字系統(tǒng)的特點(diǎn)4第3章 4*4矩陣鍵盤的原理63.1 4*4矩陣式鍵盤63.2 總體結(jié)構(gòu)63.2.1 LED數(shù)碼管83.2.2 鍵盤結(jié)構(gòu)93.

7、3 鍵盤掃描93.4 矩陣鍵盤接口電路的原理9第4章 程序調(diào)試114.1 流程圖114.2 程序結(jié)果討論11第5章 波形仿真及討論135.1 波形結(jié)果135.2 結(jié)果討論14結(jié)論15參考文獻(xiàn)16附錄程序17致謝19第1章 緒論1.1 課題背景在現(xiàn)代的個人計算機(jī)系統(tǒng)中,一般都采用通用的標(biāo)準(zhǔn)鍵盤如標(biāo)準(zhǔn)鍵盤(如:標(biāo)準(zhǔn)101/102鍵盤或Microsoft自然PS/2鍵盤)來實(shí)現(xiàn)人與計算機(jī)之間的接口交互, 從而將需要的各種數(shù)據(jù)和指令等信息都通過鍵盤來輸人計算機(jī)。但是, 各種嵌人式系統(tǒng)(如:手機(jī)、微波爐、電風(fēng)扇等)所需的鍵盤的按鍵個數(shù)非常有限, 通常為幾個到十幾個不等(而標(biāo)準(zhǔn)鍵盤通常為:一百多個按鍵并且

8、每個按鍵所代表的功能含義也各不相同。所以, 每一種嵌入式系統(tǒng)都應(yīng)對鍵盤(包括鍵盤掃描模塊和相關(guān)控制信號等)進(jìn)行專門設(shè)計, 以便結(jié)合工程實(shí)際情況充分利用該系統(tǒng)已有的各種資源, 使所設(shè)計的鍵盤很好地融合到嵌人式系統(tǒng)中1。在現(xiàn)代個人計算機(jī)系統(tǒng)中, 一般都采用通用的標(biāo)準(zhǔn)鍵盤( 如: 標(biāo)準(zhǔn)101/102 鍵盤或Microsoft自然PS/2 鍵盤) 來實(shí)現(xiàn)人與計算機(jī)之間的接口交互, 所需要的各種數(shù)據(jù)和指令等信息都通過鍵盤來輸入計算機(jī)。但是, 在各種嵌入式系統(tǒng)( 如手機(jī)、微波爐、電風(fēng)扇等) 中, 所需要的鍵盤按鍵個數(shù)非常有限, 通常為幾個到十幾個不等( 而標(biāo)準(zhǔn)鍵盤通常為一百多個按鍵) , 并且每個按鍵所代

9、表的功能含義也各不相同。所以, 針對每一種嵌入式系統(tǒng)都應(yīng)對鍵盤( 包括鍵盤掃描模塊和相關(guān)控制信號等) 進(jìn)行專門設(shè)計, 結(jié)合工程實(shí)際情況充分利用該系統(tǒng)已有的各種資源, 使所設(shè)計的鍵盤恰如其分地融合到嵌入式系統(tǒng)中, 成為其不可分割的一部分2。在數(shù)字電路中, 可以利用編碼器實(shí)現(xiàn)按鍵鍵值的直接編碼。將每個按鍵的輸出信號對應(yīng)連接到編碼器的每個輸入端, 通過編碼邏輯就可以在編碼器的輸出端得到對應(yīng)每個按鍵的碼值, 早期稱這種鍵盤為編碼鍵盤。但是,當(dāng)按鍵較多時數(shù)碼邏輯的成本較高, 直接編碼的方法也不夠靈活, 一旦編碼邏輯固定就難以更改。在通用鍵盤上或當(dāng)按鍵數(shù)量較多時, 普遍采用掃描方式產(chǎn)生鍵值。將按鍵連接成矩

10、陣, 每個按鍵位于某行、某列的交點(diǎn)上, 如圖1 所示, 先通過掃描方式確定按下鍵的行和列位, 即位置碼或掃描碼。再查表將位置碼轉(zhuǎn)換為按鍵碼值或者直接使用掃描碼,有些參考書稱此為“非編碼鍵盤”。但這種名稱容易讓人誤解為沒有對應(yīng)的鍵值, 因此又稱為掃描式鍵盤3。1.2 國內(nèi)外發(fā)展現(xiàn)狀 近年來EDA技術(shù)在電子領(lǐng)域引發(fā)的技術(shù)革命,推動著電子技術(shù)的迅猛發(fā)展,為世人所矚目,而FPGA為代表的可編程邏輯器件的應(yīng)用,更是受到業(yè)內(nèi)人士的普遍關(guān)注。伴隨著大規(guī)模集成電路和計算機(jī)技術(shù)的高速發(fā)展,在設(shè)計工業(yè)自動化,儀器儀表,計算機(jī)設(shè)計與應(yīng)用、通信、國防等領(lǐng)域的電子系統(tǒng)中,F(xiàn)PGA技術(shù)的含量正以驚人的速度提升。

11、將盡可能大的完整的電子系統(tǒng)在單一FPGA芯片中實(shí)現(xiàn)已成為現(xiàn)實(shí),電子類新技術(shù)項目的開發(fā)也更多地依賴于FPGA技術(shù)的應(yīng)用4。 作為FPGA研究課題之一的矩陣鍵盤控制接口電路的設(shè)計,在FPGA設(shè)計中是一個經(jīng)常被提到的話題,就像是利用PFGA設(shè)計數(shù)字中一樣,雖然簡單,但是卻是一個很有研究意義的話題,涉及到怎么樣才能是FPGA資源更加充分利用,現(xiàn)在很多電子產(chǎn)品都涉及到按鍵,小的有獨(dú)立按鍵,大的有N*N的矩陣鍵盤,獨(dú)立按鍵由于案件的個數(shù)少,也就沒必要考慮資源的利用問題了。而矩陣鍵盤,由于按鍵多,對整個系統(tǒng)的影響大,所以肯定要考慮資源的利用問題,而且還要考慮一下電路里面的時序問題。1.3 本文主要

12、研究內(nèi)容本次設(shè)計要求設(shè)計一個4*4矩陣鍵盤,也就是行為4,列為4,一共可以設(shè)計16個按鍵。其中設(shè)計方法為:一般判斷鍵盤中有沒有按鍵按下是通過航線送入掃描信號,然后從列線中讀取狀態(tài)得到的,其方法是依次給行線送入低電平,檢查列線的輸入。如果列線信號趣味高電平,則代表低電平信號所在的行中無按鍵按下,反之,則有,則在低電平信號所在的行和出現(xiàn)低電平的交叉處有按鍵按下。  第2章 軟件及語言簡介2.1 Quartus II軟件簡介QuartusII是Altera公司的綜合性PLD/FPGA開發(fā)軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(Altera 

13、;Hardware Description Language)等多種設(shè)計輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計輸入到硬件配置的完整PLD設(shè)計流程。QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl腳本完成設(shè)計流程外,提供了完善的用戶圖形界面設(shè)計方式。具有運(yùn)行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點(diǎn)。 QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模塊庫,使用戶可以充分利用成熟的模塊,簡化了設(shè)計的復(fù)雜性、加快了設(shè)計速度5。對第三方EDA工具的良好支持也使用戶可以在設(shè)計流程的各個階段使用熟悉的

14、第三方EDA工具。此外,Quartus II通過和DSP Builder工具與Matlab/Simulink相結(jié)合,可以方便地實(shí)現(xiàn)各種DSP應(yīng)用系統(tǒng);支持Altera的片上可編程系統(tǒng)(SOPC)開發(fā),集系統(tǒng)級設(shè)計、嵌入式軟件開發(fā)、可編程邏輯設(shè)計于一體,是一種綜合性的開發(fā)平臺。Maxplus II 作為Altera的上一代PLD設(shè)計軟件,由于其出色的易用性而得到了廣泛的應(yīng)用6。目前Altera已經(jīng)停止了對Maxplus II的更新支持,QuartusII與之相比不僅僅是支持器件類型的豐富和圖形界面的改變。Altera在QuartusII中包含了許多諸如SignalTap II、Chip Edit

15、or和RTL Viewer的設(shè)計輔助工具,集成了SOPC和HardCopy設(shè)計流程,并且繼承了Maxplus II 友好的圖形界面及簡便的使用方法7。 Quartus II提供了完全集成且與電路結(jié)構(gòu)無關(guān)的開發(fā)包環(huán)境,具有數(shù)字邏輯設(shè)計的全部特性,包括:可利用原理圖、結(jié)構(gòu)框圖、VerilogHDL、AHDL和VHDL完成電路描述,并將其保存為設(shè)計實(shí)體文件;芯片(電路)平面布局連線編輯;LogicLock增量設(shè)計方法,用戶可建立并優(yōu)化系統(tǒng),然后添加對原始系統(tǒng)的性能影響較小或無影響的后續(xù)模塊;功能強(qiáng)大的邏輯綜合工具;完備的電路功能仿真與時序邏輯仿真工具;定時/時序分析與關(guān)鍵路徑延時分析;可使

16、用SignalTap II邏輯分析工具進(jìn)行嵌入式的邏輯分析;支持軟件源文件的添加和創(chuàng)建,并將它們鏈接起來生成編程文件;使用組合編譯方式可一次完成整體設(shè)計流程;自動定位編譯錯誤;高效的期間編程與驗證工具;可讀入標(biāo)準(zhǔn)的EDIF網(wǎng)表文件、VHDL網(wǎng)表文件和Verilog網(wǎng)表文件;能生成第三方EDA軟件使用的VHDL網(wǎng)表文件和Verilog網(wǎng)表文件8。 2.2 Verilog語言簡介1983年,Gateway Design Automation(GDA)硬件描述語言公司的Philip Moorby首創(chuàng)了Verilog HDL。后來Moorby成為Verilog HDL-XL的主要設(shè)計者和Ca

17、dence公司的第一合伙人。1984至1986年,Moorby設(shè)計出第一個關(guān)于Verilog HDL的仿真器,并提出了用于快速門級仿真的XL算法,使Verilog HDL語言得到迅速發(fā)展。1987年Synonsys公司開始使用Verilog HDL行為語言作為綜合工具的輸入。1989年Cadence公司收購了Gateway公司,Verilog HDL成為Cadence公司的私有財產(chǎn)。1990年初,Cadence公司把Verilog HDL和Verilog HDL-XL分開,并公開發(fā)布了Verilog HDL。隨后成立的OVI(Open Verilog HDL Internationa

18、l)組織負(fù)責(zé)Verilog HDL的發(fā)展并制定有關(guān)標(biāo)準(zhǔn),OVI由Verilog HDL的使用者和CAE供應(yīng)商組成。1993年,幾乎所有ASIC廠商都開始支持Verilog HDL,并且認(rèn)為Verilog HDL-XL是最好的仿真器。同時,OVI推出2.0版本的Verilong HDL規(guī)范,IEEE則將OVI的Verilog HDL2.0作為IEEE標(biāo)準(zhǔn)的提案9。1995年12月,IEEE制定了Verilog HDL的標(biāo)準(zhǔn)IEEE1364-1995。目前,最新的Verilog語言版本是2000年IEEE公布的Verilog 2001標(biāo)準(zhǔn),其大幅度地提高了系統(tǒng)級和可綜

19、合性能HDL既是一種行為描述語言,也是一種結(jié)構(gòu)描述語言。如果按照一定的規(guī)則和風(fēng)格編寫代碼,就可以將功能行為模塊通過工具自動轉(zhuǎn)化為門級互連的結(jié)構(gòu)模塊。這意味著利用Verilog語言所提供的功能,就可以構(gòu)造一個模塊間的清晰結(jié)構(gòu)來描述復(fù)雜的大型設(shè)計,并對所需的邏輯電路進(jìn)行嚴(yán)格的設(shè)計10。 2.2.1 Verilog語言的主要功能可描述順序執(zhí)行或并行執(zhí)行的程序結(jié)構(gòu);用延遲表示式或事件表達(dá)式來明確地控制過程的啟動時間;通過命名的事件來觸發(fā)其他過程里的激活行為或停止行為;提供了條件和循環(huán)等程序結(jié)構(gòu);提供了可帶參數(shù)且非零延續(xù)時間的任務(wù)程序結(jié)構(gòu);提供了可定義新的操作符的函數(shù)結(jié)構(gòu);提供了用于建立表達(dá)式

20、的算術(shù)運(yùn)算符、邏輯運(yùn)算符和位運(yùn)算符;提供了一套完整的表示組合邏輯基本元件的原語;提供了雙向通路和電阻器件的描述;可建立MOS器件的電荷分享和衰減模型;可以通過構(gòu)造性語句精確地建立信號模型11。2.2.2 Verilog語言設(shè)計數(shù)字系統(tǒng)的特點(diǎn) 主要采用自上而下的設(shè)計方法。即從系統(tǒng)總體要求出發(fā),自上而下地逐步將設(shè)計的內(nèi)容細(xì)化,最后完成系統(tǒng)硬件的整體設(shè)計。在設(shè)計的過程中,對系統(tǒng)自上而下分成三個層次進(jìn)行設(shè)計: 第一層次是行為描述。所謂行為描述,實(shí)質(zhì)上就是對整個系統(tǒng)的數(shù)學(xué)模型的描述。一般來說,對系統(tǒng)進(jìn)行行為描述的目的是試圖在系統(tǒng)設(shè)計的初始階段,通過對系統(tǒng)行為描述的仿真來發(fā)現(xiàn)設(shè)計中存在的問題。在

21、行為描述階段,并不真正考慮其實(shí)際的操作和算法用何種方法來實(shí)現(xiàn),而是考慮系統(tǒng)的結(jié)構(gòu)及其工作的過程是否能到達(dá)系統(tǒng)設(shè)計的要求。 第二層次是RTL方式描述。這一層次稱為寄存器傳輸描述(又稱數(shù)據(jù)流描述)。如前所述,用行為方式描述的系統(tǒng)結(jié)構(gòu)的程序,其抽象程度高,是很難直接映射到具體邏輯元件結(jié)構(gòu)的。要想得到硬件的具體實(shí)現(xiàn),必須將行為方式描述的VHDL語言程序改寫為RTL方式描述的VHDL語言程序。也就是說,系統(tǒng)采用RTL方式描述,才能導(dǎo)出系統(tǒng)的邏輯表達(dá)式,才能進(jìn)行邏輯綜合。 第三層次是邏輯綜合。即利用邏輯綜合工具,將RTL方式描述的程序轉(zhuǎn)換成用基本邏輯元件表示的文件(門級網(wǎng)絡(luò)表)。此時,

22、如果需要,可將邏輯綜合的結(jié)果以邏輯原理圖的方式輸出。此后可對綜合的結(jié)果在門電路級上進(jìn)行仿真,并檢查其時序關(guān)系。應(yīng)用邏輯綜合工具產(chǎn)生的門級網(wǎng)絡(luò)表,將其轉(zhuǎn)換成PLD的編程碼點(diǎn),即可利用PLD實(shí)現(xiàn)硬件電路的設(shè)計12。 由自上而下的設(shè)計過程可知,從總體行為設(shè)計開始到最終的邏輯綜合,每一步都要進(jìn)行仿真檢查,這樣有利于盡早發(fā)現(xiàn)設(shè)計中存在的問題,從而可以大大縮短系統(tǒng)的設(shè)計周期。  18第3章 4*4矩陣鍵盤的原理3.1 4*4矩陣式鍵盤矩陣式鍵盤(或者叫行列式鍵盤)常應(yīng)用在按鍵數(shù)量比較多的系統(tǒng)之中。這種鍵盤由行線和列線組成,按鍵設(shè)置在行、列結(jié)構(gòu)的交叉點(diǎn)上,行、列線分別接在按鍵開

23、關(guān)的兩端。行列式鍵盤可分為非編碼鍵盤和編碼鍵盤兩大類。編碼鍵盤內(nèi)部設(shè)有鍵盤編碼器,被按下鍵的鍵號由鍵盤編碼器直接給出,同時具有防抖和解決重鍵的功能。非編碼鍵盤通常采用軟件的方法,逐行逐列檢查鍵盤狀態(tài),當(dāng)有鍵按下時,通過計算或查表的方法獲取該鍵的鍵值,通常,計算機(jī)通過程序控制對鍵盤掃描,從而獲取鍵值,根據(jù)計算機(jī)掃描的方法可以分為定是掃描法和中斷掃描法兩種,原理結(jié)構(gòu)如圖3-1所示。圖3-1 4*4矩陣鍵盤原理結(jié)構(gòu)框圖3.2 總體結(jié)構(gòu)由行列式鍵盤原理就可以知道,要正確的完成鍵盤輸入工作必須有按鍵掃描電路產(chǎn)生clk信號。同時還必須有按鍵譯碼電路從kbrow信號和kbcol信號中譯碼出按鍵的值。此外,一

24、般還需要一個按鍵發(fā)生信號用于和其他模塊接口,通知其他模塊鍵盤上有按鍵動作發(fā)生,并可以從鍵盤上讀取按鍵的鍵值。由于各個模塊需要的時鐘頻率是不一樣的,因此時鐘產(chǎn)生模塊就是用于產(chǎn)生各個模塊需要的時鐘信號。在本次課程設(shè)計中,最為重要的兩部分就是數(shù)碼管顯示電路以及鍵盤結(jié)構(gòu),這兩部分的組成,形成了4*4矩陣鍵盤,通過鍵盤輸入,數(shù)碼管進(jìn)行顯示。3.2.1 LED數(shù)碼管led數(shù)碼管(LED Segment Displays)由多個發(fā)光二極管封裝在一起組成“8”字型的器件,引線已在內(nèi)部連接完成,只需引出它們的各個筆劃,公共電極。數(shù)碼管實(shí)際上是由七個發(fā)光管組成8字形構(gòu)成的,加上小數(shù)點(diǎn)就是8個。這些段分別由字母a,

25、b,c,d,e,f,g,dp來表示。圖3-2 7段LED顯示器件外形圖在本系統(tǒng)中,4*4鍵盤共有16個鍵,對其編號09,AF,所以用一個7段數(shù)碼管靜態(tài)顯示即可滿足即時顯示按鍵信息的要求。所謂靜態(tài)顯示,就是當(dāng)顯示器件某個字符時,相應(yīng)的顯示段(發(fā)光二極管)恒定地導(dǎo)通或截止,直到顯示方式顯示一個字符時,只需要微處理器送一次代碼,因此占用機(jī)時少,而且顯示穩(wěn)定可靠,其缺點(diǎn)是,使用元器件相對較多,且線路比較復(fù)雜,相對而言成本較高,比較適合顯示位數(shù)較少的情況。器件結(jié)構(gòu)如圖3-3所示。圖3-3 7段LED顯示器件結(jié)構(gòu)圖3.2.2 鍵盤結(jié)構(gòu)本系統(tǒng)中的4*4矩陣式鍵盤結(jié)構(gòu)簡單,按鍵數(shù)較少,采用非編碼式鍵盤,當(dāng)有鍵

26、盤按下時,由單片機(jī)通過程序掃描確定鍵值,設(shè)計一個4*4矩陣鍵盤,也就是行為4,列為4,一共可以設(shè)計16個按鍵。并將獲得的鍵值通過LED數(shù)碼管顯示出來,4*4矩陣式鍵盤結(jié)構(gòu)及鍵值分布如圖3-4所示。圖3-4鍵盤鍵值分布3.3 鍵盤掃描本設(shè)計一共有三個模塊,分別為:掃描電路模塊、時鐘產(chǎn)生模塊、鍵盤譯碼電路和按鍵標(biāo)志位產(chǎn)生電路。掃描模塊中是為了產(chǎn)生掃描信號,來利用掃描信號來掃描鍵盤中中是否有按鍵按下。鍵盤譯碼電路和按鍵標(biāo)志位產(chǎn)生電路是為了配合掃描模塊來掃描電路中是否有按鍵按下,而且還要求它來產(chǎn)生按鍵標(biāo)志信號,以便和外部電路握手。時鐘產(chǎn)生電路是為了產(chǎn)生不同頻率的信號,來驅(qū)動上面兩個電路的運(yùn)轉(zhuǎn)。行掃描法

27、又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識別方法,如上圖所示鍵盤,介紹過程如下:1、判斷鍵盤中有無鍵按下 將全部行線Y0-Y3置低電平,然后檢測列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。2、判斷閉合鍵所在的位置 在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時,其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。4個模塊來實(shí)現(xiàn)鍵盤掃描

28、功能, 分別為即時掃描模塊、掃描控制模塊、掃描脈沖模塊和鍵值傳送模塊。3.4 矩陣鍵盤接口電路的原理 在鍵盤中按鍵數(shù)量較多時,為了減少I/O口的占用,通常將按鍵排列成矩陣形式。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣,一個端口就可以構(gòu)成4*4=16個按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構(gòu)成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。由此可見,在需要的鍵數(shù)比較多時,采用矩陣法來做鍵盤是合理的。矩陣式結(jié)構(gòu)的鍵盤顯然比直接法要復(fù)雜一些,識別也要復(fù)雜一些,列線通過電阻接正電源,并將行線所

29、接的FPGA的I/O口作為輸出端,而列線所接的I/O口則作為輸入。這樣,當(dāng)按鍵沒有按下時,所有的輸出端都是高電平,代表無鍵按下。行線輸出是低電平,一旦有鍵按下,則輸入線就會被拉低,這樣,通過讀入輸入線的狀態(tài)就可得知是否有鍵按下了。 第4章 程序仿真4.1 流程圖本次設(shè)計的4*4矩陣鍵盤,作為輸入的有clk, start,kbcol,分別是時鐘信號,開始,行輸入,作為輸出的有kbrow,scan,seg7_out分別是列掃描,數(shù)碼管位數(shù)以及輸出結(jié)果即哪個鍵被按下,在程序仿真是我們給輸入一個隨機(jī)信號,若輸入是1,2,3,4行,那么會有相應(yīng)輸出產(chǎn)生,否則數(shù)碼管會顯示零,具體流程圖如4-1所

30、示。開始輸入隨機(jī)信號,列掃描否是否有鍵被按下是識別哪一個鍵被按下圖4-1流程圖4.2 程序結(jié)果討論只使用一個數(shù)碼管顯示,通過隨機(jī)信號的不斷變化,會有不同的輸出產(chǎn)生,周而復(fù)始地掃描。其停留在某個狀態(tài)的時間大約為10ms。更短的停留時間是沒有必要的,因為人按鍵的時間大約為10ms,不可能有更快的按鍵動作發(fā)生。 另外,更短的停留時間還容易采集到抖動信號,會干擾判斷。而太長的停留時間則會使某些較快的按鍵東走丟失。完成程序見附錄,部分主要程序如圖4-1。圖4-1主要程序圖4-2 程序結(jié)果第5章 波形仿真及討論5.1 波形結(jié)果在本系統(tǒng)中,4*4鍵盤共有16個鍵,對其編號09,AF,所以用一個7段

31、數(shù)碼管靜態(tài)顯示即可滿足即時顯示按鍵信息的要求。所謂靜態(tài)顯示,就是當(dāng)顯示器件某個字符時,相應(yīng)的顯示段(發(fā)光二極管)恒定地導(dǎo)通或截止,直到顯示方式顯示一個字符時,只需要微處理器送一次代碼,因此占用機(jī)時少,而且顯示穩(wěn)定可靠,其缺點(diǎn)是,使用元器件相對較多,且線路比較復(fù)雜,相對而言成本較高,比較適合顯示位數(shù)較少的情況。運(yùn)行結(jié)果如圖5-1所示。圖5-1 波形結(jié)果5.2 結(jié)果討論本次課程設(shè)計主要是使用軟件QuartusII和Verilog語言進(jìn)行編寫程序,從而達(dá)到4*4矩陣鍵盤的目的,實(shí)現(xiàn)其相應(yīng)功能。首先輸入程序,程序正確之后,進(jìn)行波形仿真,由于不是實(shí)物,沒有鍵盤,所以通過給一個隨機(jī)信號來模擬某個鍵被按下,

32、因此會出現(xiàn)一些沒有的行數(shù),故而在波形仿真數(shù)碼管會產(chǎn)生0,這就是因為沒有相應(yīng)的列數(shù)有行數(shù)對應(yīng),4*4矩陣,那么就只有4行4列,只有隨機(jī)信號產(chǎn)生1,2,3,4,這幾行時,才會有相應(yīng)的正確輸出產(chǎn)生。其次本次課程是仿真,通過時鐘信號來控制,所以時鐘信號一直有,就會一直進(jìn)行循環(huán)列掃描,行掃描譯碼。當(dāng)進(jìn)行列掃描時,掃描信號由列引腳進(jìn)入鍵盤,以1000,、0100、0010、0001的順序每次掃描不同的一列,然后讀取行引腳的電平信號,以此可以判斷是哪個按鍵被按下。例如,當(dāng)行掃描信號為“0100”時,表示正在掃描“89AB”一列,如果該列沒有按鍵別按下,則由行信號讀出的值為“0000”;反之,如果按鍵“9”被

33、按下時,則該行信號讀出的值為“0100”。結(jié)論本次課題設(shè)計完成的是基于FPGA的4*4矩陣鍵盤設(shè)計,通過一個多星期的不斷努力、克服各種困難,最終實(shí)現(xiàn)了任務(wù)目標(biāo)。本次設(shè)計解決的主要問題是是利用verilog HDL語言完成基于FPGA的矩陣鍵盤的編程問題。矩陣式鍵盤是一種常見的輸入裝置,在日常生活中,矩陣式鍵盤在計算機(jī)、電話、手機(jī)、微波爐等各式電子產(chǎn)品上已經(jīng)被廣泛應(yīng)用。各式各樣的矩陣鍵盤控制著各種各樣的功能,矩陣式鍵盤控制接口電路是最基本的輸入電路,它我們利用軟件Quartus II自行設(shè)計并修改的鍵盤輸入顯示電路是通過VHDL語言編寫并實(shí)現(xiàn)了鍵碼的對應(yīng)顯示。并且發(fā)現(xiàn)許多的問題,還有很

34、多需要改進(jìn)的地方,設(shè)計的過程很有意思也非常繁瑣,再利用Quartus II進(jìn)行仿真的時候,要精心的對參數(shù)盡心設(shè)置,最后才能夠仿真出結(jié)果。 在課程設(shè)計的過程中也可以看到我的不足,如原理知識掌握不實(shí),曾經(jīng)學(xué)過的知識如今卻不會應(yīng)用,軟件的應(yīng)用也不熟練,希望日后提供給我們更多的鍛煉機(jī)會來培養(yǎng)我們的實(shí)踐能力。 參考文獻(xiàn)1 王志輝,林水生. 基于FPGA的鍵盤掃描模塊的設(shè)計實(shí)現(xiàn)J. 電子元器件應(yīng)用2006 ,8 (2) :84-86 2 王美麗, 用FPGA設(shè)計和制作鍵盤掃描儀表技術(shù)J 2008,10: 47-49 3 許艷,文堂柳. 基于FPGA的鍵盤接口模塊設(shè)計J. 民風(fēng)

35、 2008:17-214  李君,胡勝.一種新型的鍵盤掃描方式J.控制工程,2004(S1):125-148. 5 李小亮,蔣華勤,董雪峰.基于FPGA的可鍵盤控制計數(shù)電路的設(shè)計與實(shí)現(xiàn)J.電子設(shè)計工程,2011(8):154-156. 6 Carlos H. Llanos,Ronald H. Hurtado,Sadek C. Absi Alfaro FPGA-based approach for changdetection in GTAW welding process Journal of the Brazilian Society of Mecha

36、nical Sciences andEngineeringJ 2016 38 No.3:913-9297 Shah, Agam1  Intel starts baking speedyFPGAsinto chipsJ.CIO 2016:9-158 張玲.基于FPGA4*4鍵盤掃描電路設(shè)計J,計算機(jī)軟件與光盤應(yīng)用,2012(13):181-182. 9 樊國梁,張曉燕.基于VHDL的鍵盤掃描及顯示電路設(shè)計J, 電子世界,2005(02):120-130  10 尹唱唱,衛(wèi)阿盈.基于Quartus的數(shù)字電路設(shè)計研究J. 中國科技信息,2009(21

37、):75-82  11 王艷玲.Quartus應(yīng)用于數(shù)字電路教學(xué)的研究J. 中國科技信息,2009(02):41-47. 12 程繼航,黃飛,石靜苑.Quartus在EDA技術(shù)中的應(yīng)用J. 電腦編程技巧及維護(hù),2009(10):12-15附錄程序module dong(kbrow,seg7_out,scan,clk,start,kbcol);output3:0kbrow;/列掃描信號output6:0seg7_out;/七段顯示控制信號output7:0scan;/數(shù)碼管地址選擇控制信號input clk,start;/掃描時鐘信號,開始信號,高電平有效input3:0kb

38、col;/行掃描信號reg3:0kbrow;reg6:0seg7_out;reg7:0scan;reg1:0count;reg1:0sta;reg6:0seg7;reg4:0dat;reg fn;/按鍵標(biāo)志位,判斷是否有鍵被按下initial scan<='b10000000;/只使用一個數(shù)碼管顯示always(posedge clk)beginif(start=0) begin seg7<='b0000000;endelse begin count<=count+1;/循環(huán)列掃描 case(count) 2'b00:begin kbrow<=&

39、#39;b0001;sta<='b00;end 2'b01:begin kbrow<='b0010;sta<='b01;end 2'b10:begin kbrow<='b0100;sta<='b10;end 2'b11:begin kbrow<='b1000;sta<='b11;end endcase/行掃描譯碼 case(sta) 2'b00:begin case(kbcol) 4'b0001:begin seg76:0<='b1111001;dat<='b00011;end 4'b0010:begin seg76:0<='b1101101;dat<='b00010;end 4'b0100:begin seg76:0<='b0110000;dat<='b00001;end 4'b1000:begin seg76:0<='b1111110;dat<='b00000;end default:begin seg76:0<=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論