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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

通信(基于FPGA的4*4矩陣鍵盤的設計)PAGEIIFPGA課程設計報告項目名稱基于FPGA的4*4矩陣鍵盤的設計專業(yè)班級通信1學生姓名張指導教師2016年7月10日字號的設置。字體的設置。西文字體的設置。如果沒有特殊說明,就選圖上的這個。說明:字體設置指下圖。字號的設置。字體的設置。西文字體的設置。如果沒有特殊說明,就選圖上的這個。說明:字體設置指下圖。摘要本課程設計提出了基于FPGA的4*4矩陣鍵盤的設計,主要是在軟件QuartusII9.0這個環(huán)境中,以硬件描述語言Verilog進行編寫程序,從而完成矩陣鍵盤的相關設計。主要由矩陣式鍵盤電路、顯示電路等組成,實現(xiàn)過程是通過行掃描輸入隨機信號,列掃描判斷哪一個鍵被按下,并最后由數(shù)碼管顯示該按鍵。此次課程設計完成了4*4矩陣鍵盤控制LED數(shù)碼管顯示系統(tǒng)的設計,該設計具有靈活性強,易于操作,可靠性高,廣泛應用于各種場合的特點,是進行按鍵操作管理的有效方法,它可以提高系統(tǒng)準確性,有利于資源的節(jié)約,降低對操作者本身的要求,并能正確、實時、高效地顯示按鍵信息,以提高工作效率和資源換利用率的意義。關鍵詞:數(shù)碼管;矩陣鍵盤;按鍵;顯示電路AbstractThiscourseisdesignedbasedonFPGAisproposed4*4matrixkeyboarddesign,mainlyintheQuartusIIsoftware9.0thisenvironment,withtheVeriloghardwaredescriptionlanguageprogram,soastocompletetherelateddesignofmatrixkeyboard.Mainmatrixkeyboardcircuit,displaycircuitandsoon,completethe4*4matrixkeyboardcontrolLEDdigitaltubedisplaysystemdesign,thedesignhasstrongflexibility,easyoperation,highreliability,widelyusedinvariousoccasions.Into4*4matrixkeyboardcontrolLEDdigitaltubedisplaysystemdesign,designflexibilityisstrong,easytooperate,highreliability,widelyusedinvariousoccasions.Matrixkeyboardcontrolsystem,canimproveefficiency,andisaneffectivemethodtomanagethekeystrokes,itcanimprovethesystemaccuracy,andisconducivetoresourcesavingandreducetherequirementoftheoperatoritself,andcorrectly,real-timeandefficienttoshowthekeyinformation,inordertoimprovetheworkefficiencyandtheutilizationratioofresourcesinmeaning.Keywords:Digitaltube;Matrixkeyboard;Thekey;DisplycircuitPAGEPAGE20目錄TOC\o"1-3"\f\h\z\u摘要 IAbstract II第1章緒論 11.1課題背景 11.2國內外發(fā)展現(xiàn)狀 11.3本文主要研究內容 1第2章軟件及語言簡介 22.1Quartus軟件簡介 32.2Verilog語言簡介 42.2.1Verilog語言的主要功能 42.2.2Verilog語言設計數(shù)字系統(tǒng)的特點 4第3章4*4矩陣鍵盤的原理 63.14*4矩陣式鍵盤 63.2總體結構 63.2.1LED數(shù)碼管 83.2.2鍵盤結構 93.3鍵盤掃描 93.4矩陣鍵盤接口電路的原理 9第4章程序調試 114.1流程圖 114.2程序結果討論 11第5章波形仿真及討論 135.1波形結果 135.2結果討論 14結論 15參考文獻 16附錄程序 17致謝 19緒論1.1課題背景在現(xiàn)代的個人計算機系統(tǒng)中,一般都采用通用的標準鍵盤如標準鍵盤(如:標準101/102鍵盤或Microsoft自然PS/2鍵盤)來實現(xiàn)人與計算機之間的接口交互,從而將需要的各種數(shù)據(jù)和指令等信息都通過鍵盤來輸人計算機。但是,各種嵌人式系統(tǒng)(如:手機、微波爐、電風扇等)所需的鍵盤的按鍵個數(shù)非常有限,通常為幾個到十幾個不等(而標準鍵盤通常為:一百多個按鍵并且每個按鍵所代表的功能含義也各不相同。所以,每一種嵌入式系統(tǒng)都應對鍵盤(包括鍵盤掃描模塊和相關控制信號等)進行專門設計,以便結合工程實際情況充分利用該系統(tǒng)已有的各種資源,使所設計的鍵盤很好地融合到嵌人式系統(tǒng)中[1]。在現(xiàn)代個人計算機系統(tǒng)中,一般都采用通用的標準鍵盤(如:標準101/102鍵盤或Microsoft自然PS/2鍵盤)來實現(xiàn)人與計算機之間的接口交互,所需要的各種數(shù)據(jù)和指令等信息都通過鍵盤來輸入計算機。但是,在各種嵌入式系統(tǒng)(如手機、微波爐、電風扇等)中,所需要的鍵盤按鍵個數(shù)非常有限,通常為幾個到十幾個不等(而標準鍵盤通常為一百多個按鍵),并且每個按鍵所代表的功能含義也各不相同。所以,針對每一種嵌入式系統(tǒng)都應對鍵盤(包括鍵盤掃描模塊和相關控制信號等)進行專門設計,結合工程實際情況充分利用該系統(tǒng)已有的各種資源,使所設計的鍵盤恰如其分地融合到嵌入式系統(tǒng)中,成為其不可分割的一部分[2]。在數(shù)字電路中,可以利用編碼器實現(xiàn)按鍵鍵值的直接編碼。將每個按鍵的輸出信號對應連接到編碼器的每個輸入端,通過編碼邏輯就可以在編碼器的輸出端得到對應每個按鍵的碼值,早期稱這種鍵盤為編碼鍵盤。但是,當按鍵較多時數(shù)碼邏輯的成本較高,直接編碼的方法也不夠靈活,一旦編碼邏輯固定就難以更改。在通用鍵盤上或當按鍵數(shù)量較多時,普遍采用掃描方式產生鍵值。將按鍵連接成矩陣,每個按鍵位于某行、某列的交點上,如圖1所示,先通過掃描方式確定按下鍵的行和列位,即位置碼或掃描碼。再查表將位置碼轉換為按鍵碼值或者直接使用掃描碼,有些參考書稱此為“非編碼鍵盤”。但這種名稱容易讓人誤解為沒有對應的鍵值,因此又稱為掃描式鍵盤[3]。1.2國內外發(fā)展現(xiàn)狀

近年來EDA技術在電子領域引發(fā)的技術革命,推動著電子技術的迅猛發(fā)展,為世人所矚目,而FPGA為代表的可編程邏輯器件的應用,更是受到業(yè)內人士的普遍關注。伴隨著大規(guī)模集成電路和計算機技術的高速發(fā)展,在設計工業(yè)自動化,儀器儀表,計算機設計與應用、通信、國防等領域的電子系統(tǒng)中,F(xiàn)PGA技術的含量正以驚人的速度提升。將盡可能大的完整的電子系統(tǒng)在單一FPGA芯片中實現(xiàn)已成為現(xiàn)實,電子類新技術項目的開發(fā)也更多地依賴于FPGA技術的應用[4]。

作為FPGA研究課題之一的矩陣鍵盤控制接口電路的設計,在FPGA設計中是一個經(jīng)常被提到的話題,就像是利用PFGA設計數(shù)字中一樣,雖然簡單,但是卻是一個很有研究意義的話題,涉及到怎么樣才能是FPGA資源更加充分利用,現(xiàn)在很多電子產品都涉及到按鍵,小的有獨立按鍵,大的有N*N的矩陣鍵盤,獨立按鍵由于案件的個數(shù)少,也就沒必要考慮資源的利用問題了。而矩陣鍵盤,由于按鍵多,對整個系統(tǒng)的影響大,所以肯定要考慮資源的利用問題,而且還要考慮一下電路里面的時序問題。1.3本文主要研究內容本次設計要求設計一個4*4矩陣鍵盤,也就是行為4,列為4,一共可以設計16個按鍵。其中設計方法為:一般判斷鍵盤中有沒有按鍵按下是通過航線送入掃描信號,然后從列線中讀取狀態(tài)得到的,其方法是依次給行線送入低電平,檢查列線的輸入。如果列線信號趣味高電平,則代表低電平信號所在的行中無按鍵按下,反之,則有,則在低電平信號所在的行和出現(xiàn)低電平的交叉處有按鍵按下。

第2章軟件及語言簡介2.1Quartus

II軟件簡介QuartusII是Altera公司的綜合性PLD/FPGA開發(fā)軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(Altera

Hardware

Description

Language)等多種設計輸入形式,內嵌自有的綜合器以及仿真器,可以完成從設計輸入到硬件配置的完整PLD設計流程。QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl腳本完成設計流程外,提供了完善的用戶圖形界面設計方式。具有運行速度快,界面統(tǒng)一,功能集中,易學易用等特點。QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模塊庫,使用戶可以充分利用成熟的模塊,簡化了設計的復雜性、加快了設計速度[5]。對第三方EDA工具的良好支持也使用戶可以在設計流程的各個階段使用熟悉的第三方EDA工具。此外,QuartusII通過和DSPBuilder工具與Matlab/Simulink相結合,可以方便地實現(xiàn)各種DSP應用系統(tǒng);支持Altera的片上可編程系統(tǒng)(SOPC)開發(fā),集系統(tǒng)級設計、嵌入式軟件開發(fā)、可編程邏輯設計于一體,是一種綜合性的開發(fā)平臺。MaxplusII作為Altera的上一代PLD設計軟件,由于其出色的易用性而得到了廣泛的應用[6]。目前Altera已經(jīng)停止了對MaxplusII的更新支持,QuartusII與之相比不僅僅是支持器件類型的豐富和圖形界面的改變。Altera在QuartusII中包含了許多諸如SignalTapII、ChipEditor和RTLViewer的設計輔助工具,集成了SOPC和HardCopy設計流程,并且繼承了MaxplusII友好的圖形界面及簡便的使用方法[7]。

QuartusII提供了完全集成且與電路結構無關的開發(fā)包環(huán)境,具有數(shù)字邏輯設計的全部特性,包括:可利用原理圖、結構框圖、VerilogHDL、AHDL和VHDL完成電路描述,并將其保存為設計實體文件;芯片(電路)平面布局連線編輯;LogicLock增量設計方法,用戶可建立并優(yōu)化系統(tǒng),然后添加對原始系統(tǒng)的性能影響較小或無影響的后續(xù)模塊;功能強大的邏輯綜合工具;完備的電路功能仿真與時序邏輯仿真工具;定時/時序分析與關鍵路徑延時分析;可使用SignalTapII邏輯分析工具進行嵌入式的邏輯分析;支持軟件源文件的添加和創(chuàng)建,并將它們鏈接起來生成編程文件;使用組合編譯方式可一次完成整體設計流程;自動定位編譯錯誤;高效的期間編程與驗證工具;可讀入標準的EDIF網(wǎng)表文件、VHDL網(wǎng)表文件和Verilog網(wǎng)表文件;能生成第三方EDA軟件使用的VHDL網(wǎng)表文件和Verilog網(wǎng)表文件[8]。

2.2Verilog語言簡介1983年,GatewayDesignAutomation(GDA)硬件描述語言公司的PhilipMoorby首創(chuàng)了VerilogHDL。后來Moorby成為VerilogHDL-XL的主要設計者和Cadence公司的第一合伙人。1984至1986年,Moorby設計出第一個關于Verilog

HDL的仿真器,并提出了用于快速門級仿真的XL算法,使VerilogHDL語言得到迅速發(fā)展。1987年Synonsys公司開始使用VerilogHDL行為語言作為綜合工具的輸入。1989年Cadence公司收購了Gateway公司,VerilogHDL成為Cadence公司的私有財產。1990年初,Cadence公司把VerilogHDL和VerilogHDL-XL分開,并公開發(fā)布了VerilogHDL。隨后成立的OVI(OpenVerilogHDLInternational)組織負責Verilog

HDL的發(fā)展并制定有關標準,OVI由VerilogHDL的使用者和CAE供應商組成。1993年,幾乎所有ASIC廠商都開始支持VerilogHDL,并且認為Verilog

HDL-XL是最好的仿真器。同時,OVI推出2.0版本的VerilongHDL規(guī)范,IEEE則將OVI的Verilog

HDL2.0作為IEEE標準的提案[9]。1995年12月,IEEE制定了VerilogHDL的標準IEEE1364-1995。目前,最新的Verilog語言版本是2000年IEEE公布的Verilog2001標準,其大幅度地提高了系統(tǒng)級和可綜合性能HDL既是一種行為描述語言,也是一種結構描述語言。如果按照一定的規(guī)則和風格編寫代碼,就可以將功能行為模塊通過工具自動轉化為門級互連的結構模塊。這意味著利用Verilog語言所提供的功能,就可以構造一個模塊間的清晰結構來描述復雜的大型設計,并對所需的邏輯電路進行嚴格的設計[10]。

2.2.1Verilog語言的主要功能可描述順序執(zhí)行或并行執(zhí)行的程序結構;用延遲表示式或事件表達式來明確地控制過程的啟動時間;通過命名的事件來觸發(fā)其他過程里的激活行為或停止行為;提供了條件和循環(huán)等程序結構;提供了可帶參數(shù)且非零延續(xù)時間的任務程序結構;提供了可定義新的操作符的函數(shù)結構;提供了用于建立表達式的算術運算符、邏輯運算符和位運算符;提供了一套完整的表示組合邏輯基本元件的原語;提供了雙向通路和電阻器件的描述;可建立MOS器件的電荷分享和衰減模型;可以通過構造性語句精確地建立信號模型[11]。2.2.2Verilog語言設計數(shù)字系統(tǒng)的特點主要采用自上而下的設計方法。即從系統(tǒng)總體要求出發(fā),自上而下地逐步將設計的內容細化,最后完成系統(tǒng)硬件的整體設計。在設計的過程中,對系統(tǒng)自上而下分成三個層次進行設計:

第一層次是行為描述。所謂行為描述,實質上就是對整個系統(tǒng)的數(shù)學模型的描述。一般來說,對系統(tǒng)進行行為描述的目的是試圖在系統(tǒng)設計的初始階段,通過對系統(tǒng)行為描述的仿真來發(fā)現(xiàn)設計中存在的問題。在行為描述階段,并不真正考慮其實際的操作和算法用何種方法來實現(xiàn),而是考慮系統(tǒng)的結構及其工作的過程是否能到達系統(tǒng)設計的要求。

第二層次是RTL方式描述。這一層次稱為寄存器傳輸描述(又稱數(shù)據(jù)流描述)。如前所述,用行為方式描述的系統(tǒng)結構的程序,其抽象程度高,是很難直接映射到具體邏輯元件結構的。要想得到硬件的具體實現(xiàn),必須將行為方式描述的VHDL語言程序改寫為RTL方式描述的VHDL語言程序。也就是說,系統(tǒng)采用RTL方式描述,才能導出系統(tǒng)的邏輯表達式,才能進行邏輯綜合。

第三層次是邏輯綜合。即利用邏輯綜合工具,將RTL方式描述的程序轉換成用基本邏輯元件表示的文件(門級網(wǎng)絡表)。此時,如果需要,可將邏輯綜合的結果以邏輯原理圖的方式輸出。此后可對綜合的結果在門電路級上進行仿真,并檢查其時序關系。應用邏輯綜合工具產生的門級網(wǎng)絡表,將其轉換成PLD的編程碼點,即可利用PLD實現(xiàn)硬件電路的設計[12]。

由自上而下的設計過程可知,從總體行為設計開始到最終的邏輯綜合,每一步都要進行仿真檢查,這樣有利于盡早發(fā)現(xiàn)設計中存在的問題,從而可以大大縮短系統(tǒng)的設計周期。

4*4矩陣鍵盤的原理3.14*4矩陣式鍵盤矩陣式鍵盤(或者叫行列式鍵盤)常應用在按鍵數(shù)量比較多的系統(tǒng)之中。這種鍵盤由行線和列線組成,按鍵設置在行、列結構的交叉點上,行、列線分別接在按鍵開關的兩端。行列式鍵盤可分為非編碼鍵盤和編碼鍵盤兩大類。編碼鍵盤內部設有鍵盤編碼器,被按下鍵的鍵號由鍵盤編碼器直接給出,同時具有防抖和解決重鍵的功能。非編碼鍵盤通常采用軟件的方法,逐行逐列檢查鍵盤狀態(tài),當有鍵按下時,通過計算或查表的方法獲取該鍵的鍵值,通常,計算機通過程序控制對鍵盤掃描,從而獲取鍵值,根據(jù)計算機掃描的方法可以分為定是掃描法和中斷掃描法兩種,原理結構如圖3-1所示。圖3-14*4矩陣鍵盤原理結構框圖3.2總體結構由行列式鍵盤原理就可以知道,要正確的完成鍵盤輸入工作必須有按鍵掃描電路產生clk信號。同時還必須有按鍵譯碼電路從kbrow信號和kbcol信號中譯碼出按鍵的值。此外,一般還需要一個按鍵發(fā)生信號用于和其他模塊接口,通知其他模塊鍵盤上有按鍵動作發(fā)生,并可以從鍵盤上讀取按鍵的鍵值。由于各個模塊需要的時鐘頻率是不一樣的,因此時鐘產生模塊就是用于產生各個模塊需要的時鐘信號。在本次課程設計中,最為重要的兩部分就是數(shù)碼管顯示電路以及鍵盤結構,這兩部分的組成,形成了4*4矩陣鍵盤,通過鍵盤輸入,數(shù)碼管進行顯示。3.2.1LED數(shù)碼管led數(shù)碼管(LEDSegmentDisplays)由多個發(fā)光二極管封裝在一起組成“8”字型的器件,引線已在內部連接完成,只需引出它們的各個筆劃,公共電極。數(shù)碼管實際上是由七個發(fā)光管組成8字形構成的,加上小數(shù)點就是8個。這些段分別由字母a,b,c,d,e,f,g,dp來表示。圖3-27段LED顯示器件外形圖在本系統(tǒng)中,4*4鍵盤共有16個鍵,對其編號0~9,A~F,所以用一個7段數(shù)碼管靜態(tài)顯示即可滿足即時顯示按鍵信息的要求。所謂靜態(tài)顯示,就是當顯示器件某個字符時,相應的顯示段(發(fā)光二極管)恒定地導通或截止,直到顯示方式顯示一個字符時,只需要微處理器送一次代碼,因此占用機時少,而且顯示穩(wěn)定可靠,其缺點是,使用元器件相對較多,且線路比較復雜,相對而言成本較高,比較適合顯示位數(shù)較少的情況。器件結構如圖3-3所示。圖3-37段LED顯示器件結構圖3.2.2鍵盤結構本系統(tǒng)中的4*4矩陣式鍵盤結構簡單,按鍵數(shù)較少,采用非編碼式鍵盤,當有鍵盤按下時,由單片機通過程序掃描確定鍵值,設計一個4*4矩陣鍵盤,也就是行為4,列為4,一共可以設計16個按鍵。并將獲得的鍵值通過LED數(shù)碼管顯示出來,4*4矩陣式鍵盤結構及鍵值分布如圖3-4所示。圖3-4鍵盤鍵值分布3.3鍵盤掃描本設計一共有三個模塊,分別為:掃描電路模塊、時鐘產生模塊、鍵盤譯碼電路和按鍵標志位產生電路。掃描模塊中是為了產生掃描信號,來利用掃描信號來掃描鍵盤中中是否有按鍵按下。鍵盤譯碼電路和按鍵標志位產生電路是為了配合掃描模塊來掃描電路中是否有按鍵按下,而且還要求它來產生按鍵標志信號,以便和外部電路握手。時鐘產生電路是為了產生不同頻率的信號,來驅動上面兩個電路的運轉。行掃描法又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識別方法,如上圖所示鍵盤,介紹過程如下:1、判斷鍵盤中有無鍵按下將全部行線Y0-Y3置低電平,然后檢測列線的狀態(tài)。只要有一列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。2、判斷閉合鍵所在的位置在確認有鍵按下后,即可進入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時,其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處的按鍵就是閉合的按鍵。4個模塊來實現(xiàn)鍵盤掃描功能,分別為即時掃描模塊、掃描控制模塊、掃描脈沖模塊和鍵值傳送模塊。3.4矩陣鍵盤接口電路的原理

在鍵盤中按鍵數(shù)量較多時,為了減少I/O口的占用,通常將按鍵排列成矩陣形式。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣,一個端口就可以構成4*4=16個按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。由此可見,在需要的鍵數(shù)比較多時,采用矩陣法來做鍵盤是合理的。矩陣式結構的鍵盤顯然比直接法要復雜一些,識別也要復雜一些,列線通過電阻接正電源,并將行線所接的FPGA的I/O口作為輸出端,而列線所接的I/O口則作為輸入。這樣,當按鍵沒有按下時,所有的輸出端都是高電平,代表無鍵按下。行線輸出是低電平,一旦有鍵按下,則輸入線就會被拉低,這樣,通過讀入輸入線的狀態(tài)就可得知是否有鍵按下了。

第4章程序仿真4.1流程圖本次設計的4*4矩陣鍵盤,作為輸入的有clk,start,kbcol,分別是時鐘信號,開始,行輸入,作為輸出的有kbrow,scan,seg7_out分別是列掃描,數(shù)碼管位數(shù)以及輸出結果即哪個鍵被按下,在程序仿真是我們給輸入一個隨機信號,若輸入是1,2,3,4行,那么會有相應輸出產生,否則數(shù)碼管會顯示零,具體流程圖如4-1所示。開始開始輸入隨機信號,列掃描輸入隨機信號,列掃描否否是否有鍵被按下是否有鍵被按下是是識別哪一個鍵被按下識別哪一個鍵被按下圖4-1流程圖4.2程序結果討論只使用一個數(shù)碼管顯示,通過隨機信號的不斷變化,會有不同的輸出產生,周而復始地掃描。其停留在某個狀態(tài)的時間大約為10ms。更短的停留時間是沒有必要的,因為人按鍵的時間大約為10ms,不可能有更快的按鍵動作發(fā)生。

另外,更短的停留時間還容易采集到抖動信號,會干擾判斷。而太長的停留時間則會使某些較快的按鍵東走丟失。完成程序見附錄,部分主要程序如圖4-1。圖4-1主要程序圖4-2程序結果第5章波形仿真及討論5.1波形結果在本系統(tǒng)中,4*4鍵盤共有16個鍵,對其編號0~9,A~F,所以用一個7段數(shù)碼管靜態(tài)顯示即可滿足即時顯示按鍵信息的要求。所謂靜態(tài)顯示,就是當顯示器件某個字符時,相應的顯示段(發(fā)光二極管)恒定地導通或截止,直到顯示方式顯示一個字符時,只需要微處理器送一次代碼,因此占用機時少,而且顯示穩(wěn)定可靠,其缺點是,使用元器件相對較多,且線路比較復雜,相對而言成本較高,比較適合顯示位數(shù)較少的情況。運行結果如圖5-1所示。圖5-1波形結果5.2結果討論本次課程設計主要是使用軟件QuartusII和Verilog語言進行編寫程序,從而達到4*4矩陣鍵盤的目的,實現(xiàn)其相應功能。首先輸入程序,程序正確之后,進行波形仿真,由于不是實物,沒有鍵盤,所以通過給一個隨機信號來模擬某個鍵被按下,因此會出現(xiàn)一些沒有的行數(shù),故而在波形仿真數(shù)碼管會產生0,這就是因為沒有相應的列數(shù)有行數(shù)對應,4*4矩陣,那么就只有4行4列,只有隨機信號產生1,2,3,4,這幾行時,才會有相應的正確輸出產生。其次本次課程是仿真,通過時鐘信號來控制,所以時鐘信號一直有,就會一直進行循環(huán)列掃描,行掃描譯碼。當進行列掃描時,掃描信號由列引腳進入鍵盤,以1000,、0100、0010、0001的順序每次掃描不同的一列,然后讀取行引腳的電平信號,以此可以判斷是哪個按鍵被按下。例如,當行掃描信號為“0100”時,表示正在掃描“89AB”一列,如果該列沒有按鍵別按下,則由行信號讀出的值為“0000”;反之,如果按鍵“9”被按下時,則該行信號讀出的值為“0100”。結論本次課題設計完成的是基于FPGA的4*4矩陣鍵盤設計,通過一個多星期的不斷努力、克服各種困難,最終實現(xiàn)了任務目標。本次設計解決的主要問題是是利用verilog

HDL語言完成基于FPGA的矩陣鍵盤的編程問題。矩陣式鍵盤是一種常見的輸入裝置,在日常生活中,矩陣式鍵盤在計算機、電話、手機、微波爐等各式電子產品上已經(jīng)被廣泛應用。各式各樣的矩陣鍵盤控制著各種各樣的功能,矩陣式鍵盤控制接口電路是最基本的輸入電路,它我們利用軟件QuartusII自行設計并修改的鍵盤輸入顯示電路是通過VHDL語言編寫并實現(xiàn)了鍵碼的對應顯示。并且發(fā)現(xiàn)許多的問題,還有很多需要改進的地方,設計的過程很有意思也非常繁瑣,再利用QuartusII進行仿真的時候,要精心的對參數(shù)盡心設置,最后才能夠仿真出結果。

在課程設計的過程中也可以看到我的不足,如原理知識掌握不實,曾經(jīng)學過的知識如今卻不會應用,軟件的應用也不熟練,希望日后提供給我們更多的鍛煉機會來培養(yǎng)我們的實踐能力。

參考文獻[1]王志輝,林水生.基于FPGA的鍵盤掃描模塊的設計實現(xiàn)[J].電子元器件應用2006

,8(2):84-86[2]王美麗,用FPGA設計和制作鍵盤掃描儀表技術[J]2008,10:

47-49[3]許艷,文堂柳.基于FPGA的鍵盤接口模塊設計[J].民風

2008:17-21[4]

李君,胡勝.一種新型的鍵盤掃描方式[J].控制工程,2004(S1):125-148.

[5]李小亮,蔣華勤,董雪峰.基于FPGA的可鍵盤控制計數(shù)電路的設計與實現(xiàn)[J].電子設計工 程,2011(8):154-156.

[6]CarlosH.Llanos,RonaldH.Hurtado,SadekC.AbsiAlfaroFPGA-basedapproachforchangdetection inGTAWweldingprocessJournaloftheBrazilianSocietyofMechanicalSciencesandEngineering[J] 201638

No.3:913-929[7]Shah,Agam1

Intelstartsbakingspeedy?FPGAs?intochips[J].CIO

2016:9-15[8]張玲.基于FPGA4*4鍵盤掃描電路設計[J],計算機軟件與光盤應用,2012(13):181-182.

[9]樊國梁,張曉燕.基于VHDL的鍵盤掃描及顯示電路設計[J],電子世界,2005(02):120-130

[10]尹唱唱,衛(wèi)阿盈.基于QuartusⅡ的數(shù)字電路設計研究[J].中國科技信息,2009(21):75-82

[11]王艷玲.QuartusⅡ應用于數(shù)字電路教學的研究[J].中國科技信息,2009(02):41-47.

[12]程繼航,黃飛,石靜苑.QuartusⅡ在EDA技術中的應用[J].電腦編程技巧及維護,2009(10):12-15附錄程序moduledong(kbrow,seg7_out,scan,clk,start,kbcol);output[3:0]kbrow;//列掃描信號output[6:0]seg7_out;//七段顯示控制信號output[7:0]scan;//數(shù)碼管地址選擇控制信號inputclk,start;//掃描時鐘信號,開始信號,高電平有效input[3:0]kbcol;//行掃描信號reg[3:0]kbrow;reg[6:0]seg7_out;reg[7:0]scan;reg[1:0]count;reg[1:0]sta;reg[6:0]seg7;reg[4:0]dat;regfn;//按鍵標志位,判斷是否有鍵被按下initialscan<='b10000000;//只使用一個數(shù)碼管顯示always@(posedgeclk)beginif(start==0)beginseg7<='b0000000;endelsebegincount<=count+1;//循環(huán)列掃描case(count)2'b00:beginkbrow<='b0001;sta<='b00;;end2'b01:beginkbrow<='b0010;sta<='b01;;end2'b10:beginkbrow<='b0100;sta<='b10;;end2'b11:beginkbrow<='b1000;sta<='b11;;endendcase//行掃描譯碼case(sta)2'b00:begincase(kbcol)4'b0001:beginseg7[6:0]<='b1111001;dat<='b00011;end4'b0010:beginseg7[6:0]<='b1101101;dat<='b00010;end4'b0100:beginseg7[6:0]<='b0110000;dat<='b00001;end4'b1000:beginseg7[6:0]<='b1111110;dat<='b00000;enddefault:beginseg7[6:0]<='b0000000;dat<='b11111;endendcaseend2'b01:begincase(kbcol)4'b0001:beginseg7[6:0]<='b1110000;dat<='b00111;end4'b0010:beginseg7[6:0]<='b1011111;dat<='b00110;end4'b0100:beginseg7[6:0]<='b1011011;dat<='b00101;end4'b1000:beginseg7[6:0]<='b0110011;dat<='b00100;enddefault:beginseg7[6:0]<='b0000000;dat<='b11111;endendcaseend2'b11:begincase(kbcol)4'b0001:beginseg7[6:0]<='b1000111;dat<='b01111;end4'b0010:beginseg7[6:0]<='b1001111;dat<='b01110;end4'b0100:beginseg7[6:0]<='b0111101;dat<='b01101;end4'b1000:beginseg7[6:0]<='b1001110;dat<='b01100;enddefault:beginseg7[6:0]<='b0000000;dat<='b11111;endendcaseenddefault:seg7[6:0]<='b0000000;endcaseendendalwaysbeginfn<=~(dat[0]&dat[1]&dat[2]&dat[3]&dat[4]);end//產生按鍵標志位,用于儲存按鍵信息always@(posedgefn)//按鍵信息儲存beginseg7_out[6:0]<=seg7[6:0];endendmodule致謝本論文是基于FPGA的4*4矩陣鍵盤的設計,在老師的悉心指導,同學的幫助下,以及查閱相關資料,終于完成了此次的課程設計。通過此次的課程設計學到了學多新知識,本論文從選題到完成,每一步都是在導師的指導下完成的,傾注了導師大量的心血。在此,向導師表示崇高的敬意和衷心的感謝!本論文的順利完成,離不開各位老師、同學和朋友的關心和幫助。大學生活即將結束,回首往昔,奮斗和辛勞成為絲絲的記憶,甜美與歡笑也都塵埃落定。我向所有關心、愛護、幫助我的人們表示最誠摯的感謝與最美好的祝愿?;叵胝麄€論文的寫作過程,雖有不易,卻讓我除卻浮躁,經(jīng)歷了思考和啟示,也更加深切地體會了設計的精髓和意義,因此倍感珍惜最后,再次對關心、幫助我的老師和同學表示衷心地感謝!基于C8051F單片機直流電動機反饋控制系統(tǒng)的設計與研究基于單片機的嵌入式Web服務器的研究MOTOROLA單片機MC68HC(8)05PV8/A內嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機溫度控制系統(tǒng)的研制基于MCS-51系列單片機的通用控制模塊的研究基于單片機實現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調節(jié)器單片機控制的二級倒立擺系統(tǒng)的研究基于增強型51系列單片機的TCP/IP協(xié)議棧的實現(xiàn)基于單片機的蓄電池自動監(jiān)測系統(tǒng)基于32位嵌入式單片機系統(tǒng)的圖像采集與處理技術的研究基于單片機的作物營養(yǎng)診斷專家系統(tǒng)的研究基于單片機的交流伺服電機運動控制系統(tǒng)研究與開發(fā)基于單片機的泵管內壁硬度測試儀的研制基于單片機的自動找平控制系統(tǒng)研究基于C8051F040單片機的嵌入式系統(tǒng)開發(fā)基于單片機的液壓動力系統(tǒng)狀態(tài)監(jiān)測儀開發(fā)模糊Smith智能控制方法的研究及其單片機實現(xiàn)一種基于單片機的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機的在線間歇式濁度儀的研制基于單片機的噴油泵試驗臺控制器的研制基于單片機的軟起動器的研究和設計基于單片機控制的高速快走絲電火花線切割機床短循環(huán)走絲方式研究基于單片機的機電產品控制系統(tǒng)開發(fā)基于PIC單片機的智能手機充電器基于單片機的實時內核設計及其應用研究基于單片機的遠程抄表系統(tǒng)的設計與研究基于單片機的煙氣二氧化硫濃度檢測儀的研制基于微型光譜儀的單片機系統(tǒng)單片機系統(tǒng)軟件構件開發(fā)的技術研究基于單片機的液體點滴速度自動檢測儀的研制基于單片機系統(tǒng)的多功能溫度測量儀的研制基于PIC單片機的電能采集終端的設計和應用基于單片機的光纖光柵解調儀的研制氣壓式線性摩擦焊機單片機控制系統(tǒng)的研制基于單片機的數(shù)字磁通門傳感器基于單片機的旋轉變壓器-數(shù)字轉換器的研究基于單片機的光纖Bragg光柵解調系統(tǒng)的研究單片機控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機的多生理信號檢測儀基于單片機的電機運動控制系統(tǒng)設計Pico專用單片機核的可測性設計研究基于MCS-51單片機的熱量計基于雙單片機的智能遙測微型氣象站MCS-51單片機構建機器人的實踐研究基于單片機的輪軌力檢測基于單片機的GPS定位儀的研究與實現(xiàn)基于單片機的電液伺服控制系統(tǒng)用于單片機系統(tǒng)的MMC卡文件系統(tǒng)研制基于單片機的時控和計數(shù)系統(tǒng)性能優(yōu)化的研究基于單片機和CPLD的粗光柵位移測量系統(tǒng)研究單片機控制的后備式方波UPS提升高職學生單片機應用能力的探究基于單片機控制的自動低頻減載裝置研究基于單片機控制的水下焊接電源的研究基于單片機的多通道數(shù)據(jù)采集系統(tǒng)基于uPSD3234單片機的氚表面污染測量儀的研制基于單片機的紅外測油儀的研究96系列單片機仿真器研究與設計基于單片機的單晶金剛石刀具刃磨設備的數(shù)控改造基于單片機的溫度智能控制系統(tǒng)的設計與實現(xiàn)基于MSP430單片機的電梯門機控制器的研制基于單片機的氣體測漏儀的研究基于三菱M16C/6N系列單片機的CAN/USB協(xié)議轉換器基于單片機和DSP的變壓器油色譜在線監(jiān)測技術研究基于單片機的膛壁溫度報警系統(tǒng)設計基于AVR單片機的低壓無功補償控制器的設計基于單片機船舶電力推進電機監(jiān)測系統(tǒng)基于單片機網(wǎng)絡的振動信號的采集系統(tǒng)基于單片機的大容量數(shù)據(jù)存儲技術的應用研究基于單片機的疊圖機研究與教學方法實踐基于單片機嵌入式Web服務器技術的研究及實現(xiàn)基于AT89S52單片機的通用數(shù)據(jù)采集系統(tǒng)基于單片機的多道脈沖幅度分析儀研究機器人旋轉電弧傳感角焊縫跟蹤單片機控制系統(tǒng)基于單片機的控制系統(tǒng)在PLC虛擬教學實驗中的應用研究基于單片機系統(tǒng)的網(wǎng)絡通信研究與應用基于PIC16F877單片機的莫爾斯碼自動譯碼系統(tǒng)設計與研究基于單片機的模糊控制器在工業(yè)電阻爐上的應用研究基于雙單片機沖床數(shù)控系統(tǒng)的研究與開發(fā)基于Cygnal單片機的μC/OS-Ⅱ的研究基于單片機的一體化智能差示掃描量熱儀系統(tǒng)研究HYPERLINK"/detai

溫馨提示

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

評論

0/150

提交評論