基于fpga的數(shù)字鐘設計(vhdl語言實現(xiàn))_第1頁
基于fpga的數(shù)字鐘設計(vhdl語言實現(xiàn))_第2頁
基于fpga的數(shù)字鐘設計(vhdl語言實現(xiàn))_第3頁
基于fpga的數(shù)字鐘設計(vhdl語言實現(xiàn))_第4頁
基于fpga的數(shù)字鐘設計(vhdl語言實現(xiàn))_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

大學畢業(yè)論文基于FPGA的數(shù)字鐘設計(VHDL語言實現(xiàn))摘要本設計為一個多功能的數(shù)字鐘,具有年、月、日、時、分、秒計數(shù)顯示功能,以24小時循環(huán)計數(shù);具有校對功能以及整點報時功能。本設計采用EDA技術,以硬件描述語言VHDL為系統(tǒng)邏輯描述手段設計文件,在MAXPLUSII工具軟件環(huán)境下,采用自頂向下的設計方法,由各個基本模塊共同構建了一個基于FPGA的數(shù)字鐘。系統(tǒng)主芯片采用EP1K100QC2083,由時鐘模塊、控制模塊、計時模塊、數(shù)據(jù)譯碼模塊、顯示以及報時模塊組成。經(jīng)編譯和仿真所設計的程序,在可編程邏輯器件上下載驗證,本系統(tǒng)能夠完成年、月、日和時、分、秒的分別顯示,由按鍵輸入進行數(shù)字鐘的校時、清零、啟停功能。關鍵詞數(shù)字鐘;硬件描述語言;VHDL;FPGA;鍵盤接口ABSTRACTTHEDESIGNFORAMULTIFUNCTIONALDIGITALCLOCK,WITHAYEAR,MONTH,DAY,HOURS,MINUTESANDSECONDSCOUNTDISPLAYTOA24HOURCYCLECOUNTHAVEPROOFFUNCTIONSANDTHEWHOLEPOINTTIMEKEEPINGFUNCTIONTHEUSEOFEDADESIGNTECHNOLOGY,HARDWAREDESCRIPTIONLANGUAGEVHDLDESCRIPTIONLOGICMEANSFORTHESYSTEMDESIGNDOCUMENTS,INMAXPLUSIITOOLSENVIRONMENT,ATOPDOWNDESIGN,BYTHEVARIOUSMODULESTOGETHERBUILDAFPGABASEDDIGITALCLOCKTHEMAINSYSTEMCHIPSUSEDEP1K100QC2083,MAKEUPOFTHECLOCKMODULE,CONTROLMODULE,TIMEMODULE,DATADECODINGMODULE,DISPLAYANDBROADCASTMODULEAFTERCOMPILINGTHEDESIGNANDSIMULATIONPROCEDURES,THEPROGRAMMABLELOGICDEVICETODOWNLOADVERIFICATION,THESYSTEMCANCOMPLETETHEYEAR,MONTH,DAYANDTHEHOURS,MINUTESANDSECONDSRESPECTIVELY,USINGKEYSTOMODIFY,CLEARED,STARTANDSTOPTHEDIGITALCLOCKKEYWORDSDIGITALCLOCKHARDWAREDESCRIPTIONLANGUAGEVHDLFPGAKEYBOARDINTERFACE目錄1緒論111選題背景1111課題相關技術的發(fā)展2112課題研究的必要性212課題研究的內容32FPGA簡介421FPGA概述422FPGA基本結構423FPGA系統(tǒng)設計流程724FPGA開發(fā)編程原理83數(shù)字鐘總體設計方案1031數(shù)字鐘的構成1032數(shù)字鐘的工作原理114單元電路設計1341分頻模塊電路設計與實現(xiàn)1342校時控制模塊電路設計與實現(xiàn)14421鍵盤接口電路原理14422鍵盤接口的VHDL描述1543計數(shù)模塊設計與實現(xiàn)23431秒計數(shù)模塊23432日計數(shù)模塊25433月計數(shù)和年計數(shù)模塊2844動態(tài)掃描及顯示電路設計與實現(xiàn)30441動態(tài)掃描模塊30442顯示模塊315實驗結論與研究展望3251實驗結論3252研究展望33致謝34附錄35參考文獻41基于FPGA的數(shù)字鐘設計1緒論現(xiàn)代社會的標志之一就是信息產(chǎn)品的廣泛使用,而且是產(chǎn)品的性能越來越強,復雜程度越來越高,更新步伐越來越快。支撐信息電子產(chǎn)品高速發(fā)展的基礎就是微電子制造工藝水平的提高和電子產(chǎn)品設計開發(fā)技術的發(fā)展。前者以微細加工技術為代表,而后者的代表就是電子設計自動化(ELECTRONICDESIGNAUTOMATIC,EDA)技術。本設計采用的VHDL是一種全方位的硬件描述語言,具有極強的描述能力,能支持系統(tǒng)行為級、寄存器傳輸級和邏輯門級三個不同層次的設計;支持結構、數(shù)據(jù)流、行為三種描述形式的混合描述、覆蓋面廣、抽象能力強,因此在實際應用中越來越廣泛。ASIC是專用的系統(tǒng)集成電路,是一種帶有邏輯處理的加速處理器。而FPGA是特殊的ASIC芯片,與其他的ASIC芯片相比,它具有設計開發(fā)周期短、設計制造成本低、開發(fā)工具先進、標準產(chǎn)品無需測試、質量穩(wěn)定以及可實時在線檢測等優(yōu)點。在控制系統(tǒng)中,鍵盤是常用的人機交換接口,當所設置的功能鍵或數(shù)字鍵按下的時候,系統(tǒng)應該完成該鍵所設置的功能。因此,鍵信息輸入是與軟件結構密切相關的過程。根據(jù)鍵盤的結構不同,采用不同的編碼方法。但無論有無編碼以及采用什么樣的編碼,最后都要轉換成為相應的鍵值,以實現(xiàn)按鍵功能程序的轉移。鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地擴展了鐘表原先的報時功能。諸如定時自動報警、定時啟閉電路、定時開關烘箱、通斷動力設備,甚至各種定時電氣的自動啟用等,所有這些,都是以鐘表數(shù)字化為基礎的。因此,研究數(shù)字鐘及擴大其應用,有著非?,F(xiàn)實的意義。11選題背景本節(jié)將從FPGA嵌入式應用開發(fā)技術與數(shù)字鐘技術發(fā)展的客觀實際出發(fā),通過對該技術發(fā)展狀況的了解,以及課題本身的需要,指出研究基于FPGA的芯片系統(tǒng)與設計數(shù)字鐘的設計與實現(xiàn)的必要性。111課題相關技術的發(fā)展當今電子產(chǎn)品正向功能多元化,體積最小化,功耗最低化的方向發(fā)展。它與傳統(tǒng)的電子產(chǎn)品在設計上的顯著區(qū)別師大量使用大規(guī)??删幊踢壿嬈骷巩a(chǎn)品的性能提高,體積縮小,功耗降低同時廣泛運用現(xiàn)代計算機技術,提高產(chǎn)品的自動化程度和競爭力,縮短研發(fā)周期。EDA技術正是為了適應現(xiàn)代電子技術的要求,吸收眾多學科最新科技成果而形成的一門新技術。美國ALTERA公司的可編程邏輯器件采用全新的結構和先進的技術,加上MAXPLUSII或最新的QUARTUS開發(fā)環(huán)境,更具有高性能,開發(fā)周期短等特點,十分方便進行電子產(chǎn)品的開發(fā)和設計。EDA技術,技術以大規(guī)??删幊踢壿嬈骷樵O計載體,以硬件描述語言為系統(tǒng)邏輯描述主要表達方式,以計算機、大規(guī)??删幊踢壿嬈骷拈_發(fā)軟件及實驗開發(fā)系統(tǒng)為設計工具,通過有關的開發(fā)軟件,自動完成用軟件的方式設計的電子系統(tǒng)到硬件系統(tǒng)的邏輯編譯,邏輯化簡,邏輯分割,邏輯映射,編程下載等工作。最終形成集成電子系統(tǒng)或專用集成芯片的一門新技術。本設計利用VHDL硬件描述語言結合可編程邏輯器件進行的,并通過數(shù)碼管動態(tài)顯示計時結果。數(shù)字鐘可以由各種技術實現(xiàn),如單片機等利用可編程邏輯器件具有其他方式?jīng)]有的特點,它具有易學,方便,新穎,有趣,直觀,設計與實驗項目成功率高,理論與實踐結合緊密,體積小,容量大,I/O口豐富,易編程和加密等特點,并且它還具有開放的界面,豐富的設計庫,模塊化的工具以及LPM定制等優(yōu)良性能,應用非常方便。因此,本設計采用可編程邏輯器件實現(xiàn)。112課題研究的必要性現(xiàn)在是一個知識爆炸的新時代。新產(chǎn)品、新技術層出不窮,電子技術的發(fā)展更是日新月異??梢院敛豢鋸埖恼f,電子技術的應用無處不在,電子技術正在不斷地改變我們的生活,改變著我們的世界。在這快速發(fā)展的年代,時間對人們來說是越來越寶貴,在快節(jié)奏的生活時,人們往往忘記了時間,一旦遇到重要的事情而忘記了時間,這將會帶來很大的損失。因此我們需要一個定時系統(tǒng)來提醒這些忙碌的人。數(shù)字化的鐘表給人們帶來了極大的方便。近些年,隨著科技的發(fā)展和社會的進步,人們對數(shù)字鐘的要求也越來越高,傳統(tǒng)的時鐘已不能滿足人們的需求。多功能數(shù)字鐘不管在性能還是在樣式上都發(fā)生了質的變化,有電子鬧鐘、數(shù)字鬧鐘等等。12課題研究的內容本設計主要研究基于FPGA的數(shù)字鐘,要求時間以24小時為一個周期,顯示年、月、日、時、分、秒。具有校時以及報時功能,可以對年、月、日、時、分及秒進行單獨校對,使其校正到標準時間。校對時間由44矩形鍵盤進行控制,為了保證計時的穩(wěn)定及準確須由晶體振蕩器提供時間基準信號。本設計小組成員共有三人其他兩人分別采用原理圖設計和VERILOGHDL語言設計。2FPGA簡介21FPGA概述FPGA是現(xiàn)場可編程門陣列(FIELDPROGRAMMABLEGATEARRAY)的簡稱,與之相應的CPLD是復雜可編程邏輯器件(COMPLEXPROGRAMMABLELOGICDEVICE)的簡稱,兩者的功能基本相同,只是實現(xiàn)原理略有不同,所以有時可以忽略這兩者的區(qū)別,統(tǒng)稱為可編程邏輯器件或CPLD/PGFA。CPLD/PGFA幾乎能完成任何數(shù)字器件的功能,上至高性能CPU,下至簡單的74電路。它如同一張白紙或是一堆積木,工程師可以通過傳統(tǒng)的原理圖輸入或硬件描述語言自由的設計一個數(shù)字系統(tǒng)。通過軟件仿真可以事先驗證設計的正確性,在PCB完成以后,利用CPLD/FPGA的在線修改功能,隨時修改設計而不必改動硬件電路。使用CPLA/FPGA開發(fā)數(shù)字電路,可以大大縮短設計時間,減少PCB面積,提高系統(tǒng)的可靠性。這些優(yōu)點使得CPLA/FPGA技術在20世紀90年代以后得到飛速的發(fā)展,同時也大大推動了EDA軟件和硬件描述語言HDL的進步。22FPGA基本結構FPGA具有掩膜可編程門陣列的通用結構,它由邏輯功能塊排成陣列,并由可編程的互連資源連接這些邏輯功能塊來實現(xiàn)不同的設計。FPGA一般由3種可編程電路和一個用于存放編程數(shù)據(jù)的靜態(tài)存儲器SRAM組成。這3種可編程電路是可編程邏輯模塊(CLBCONFIGURABLELOGICBLOCK)、輸入/輸出模塊(IOBI/OBLOCK)和互連資源(IRINTERCONNECTRESOURCE)??删幊踢壿嬆KCLB是實現(xiàn)邏輯功能的基本單元,它們通常規(guī)則的排列成一個陣列,散布于整個芯片;可編程輸入/輸出模塊(IOB)主要完成芯片上的邏輯與外部封裝腳的接口,它通常排列在芯片的四周;可編程互連資源包括各種長度的連接線段和一些可編程連接開關,它們將各個CLB之間或CLB、IOB之間以及IOB之間連接起來,構成特定功能的電路。1CLB是FPGA的主要組成部分。圖21是CLB基本結構框圖,它主要由邏輯函數(shù)發(fā)生器、觸發(fā)器、數(shù)據(jù)選擇器等電路組成。CLB中3個邏輯函數(shù)發(fā)生器分別是G、F和H,相應的輸出是G、F和H。G有4個輸入變量G1、G2、G3和G4;F也有4個輸入變量F1、F2、F3和F4。這兩個函數(shù)發(fā)生器是完全獨立的,均可以實現(xiàn)4輸入變量的任意組合邏輯函數(shù)。邏輯函數(shù)發(fā)生器H有3個輸入信號;前兩個是函數(shù)發(fā)生器的輸出G和F,而另一個輸入信號是來自信號變換電路的輸出H1。這個函數(shù)發(fā)生器能實現(xiàn)3輸入變量的各種組合函數(shù)。這3個函數(shù)發(fā)生器結合起來,可實現(xiàn)多達9變量的邏輯函數(shù)。CLB中有許多不同規(guī)格的數(shù)據(jù)選擇器(四選一、二選一等),通過對CLB內部數(shù)據(jù)選擇器的編程,邏輯函數(shù)發(fā)生器G、F和H的輸出可以連接到CLB輸出端X或Y,并用來選擇觸發(fā)器的激勵輸入信號、時鐘有效邊沿、時鐘使能信號以及輸出信號。這些數(shù)據(jù)選擇器的地址控制信號均由編程信息提供,從而實現(xiàn)所需的電路結構。CLB中的邏輯函數(shù)發(fā)生器F和G均為查找表結構,其工作原理類似于ROM。F和G的輸入等效于ROM的地址碼,通過查找ROM中的地址表可以得到相應的組合邏輯函數(shù)輸出。另一方面,邏輯函數(shù)發(fā)生器F和G還可以作為器件內高速RAM或小的可讀寫存儲器使用,它由信號變換電路控制。2輸入/輸出模塊IOB。IOB提供了器件引腳和內部邏輯陣列之間的連接。它主要由輸入觸發(fā)器、輸入緩沖器和輸出觸發(fā)/鎖存器、輸出緩沖器組成。每個IOB控制一個引腳,它們可被配置為輸入、輸出或雙向I/O功能。當IOB控制的引腳被定義為輸入時,通過該引腳的輸入信號先送入輸入緩沖器。緩沖器的輸出分成兩路一路可以直接送到MUX,另一路經(jīng)延CLBCLBCLBCLBCLBCLBBCLBCLBCLBCLBCLBCLBCLBCLBCLBBCLBCLBCLB可編程開關矩輸入輸出模塊互連資源圖21CLB基本結構時幾納秒(或者不延時)送到輸入通路D觸發(fā)器,再送到數(shù)據(jù)選擇器。通過編程給數(shù)據(jù)選擇器不同的控制信息,確定送至CLB陣列的I1和I2是來自輸入緩沖器,還是來自觸發(fā)器。當IOB控制的引腳被定義為輸出時,CLB陣列的輸出信號OUT也可以有兩條傳輸途徑一條是直接經(jīng)MUX送至輸出緩沖器,另一條是先存入輸出通路D觸發(fā)器,再送至輸出緩沖器。IOB輸出端配有兩只MOS管,它們的柵極均可編程,使MOS管導通或截止,分別經(jīng)上拉電阻接通VCC、地線或者不接通,用以改善輸出波形和負載能力。3可編程互連資源IR??删幊袒ミB資源IR可以將FPGA內部的CLB和CLB之間、CLB和IOB之間連接起來,構成各種具有復雜功能的系統(tǒng)。IR主要由許多金屬線段構成,這些金屬線段帶有可編程開關,通過自動布線實現(xiàn)各種電路的連接。23FPGA系統(tǒng)設計流程一般說來,一個比較大的完整的項目應該采用層次化的描述方法分為幾個較大的模塊,定義好各功能模塊之間的接口,然后各個模塊再細分去具體實現(xiàn),這就是TOPDOWN(自頂向下)的設計方法。目前這種高層次的設計方法已被廣泛采用。高層次設計只是定義系統(tǒng)的行為特征,可以不涉及實現(xiàn)工藝,因此還可以在廠家綜合庫的支持下,利用綜合優(yōu)化工具將高層次描述轉換成針對某種工藝優(yōu)化的網(wǎng)絡表,使工藝轉化變得輕而易舉。CPLD/FPGA系統(tǒng)設計的工作流程如圖22所示。系統(tǒng)劃分編譯器代碼級功能仿真綜合器適配前時序仿真適配器CPLD/FPGA實現(xiàn)適配后仿真模型適配后時序仿真適配報告ASIC實現(xiàn)VHDL代碼或圖形方式輸入仿真綜合庫器件編程文件圖22CPLD/FPGA系統(tǒng)設計流程流程說明1工程師按照“自頂向下”的設計方法進行系統(tǒng)劃分。2輸入VHDL代碼,這是設計中最為普遍的輸入方式。此外,還可以采用圖形輸入方式(框圖、狀態(tài)圖等),這種輸入方式具有直觀、容易理解的優(yōu)點。3將以上的設計輸入編譯成標準的VHDL文件。4進行代碼級的功能仿真,主要是檢驗系統(tǒng)功能設計的正確性。這一步驟適用于大型設計,因為對于大型設計來說,在綜合前對源代碼仿真,就可以大大減少設計重復的次數(shù)和時間。一般情況下,這一仿真步驟可略去。5利用綜合器對VHDL源代碼進行綜合優(yōu)化處理,生成門級描述的網(wǎng)絡表文件,這是將高層次描述轉化為硬件電路的關鍵步驟。綜合優(yōu)化是針對ASIC芯片供應商的某一產(chǎn)品系列進行的,所以綜合的過程要在相應的廠家綜合庫的支持下才能完成。6利用產(chǎn)生的網(wǎng)絡表文件進行適配前的時序仿真,仿真過程不涉及具體器件的硬件特性,是較為粗略的。一般的設計,也可略去這一步驟。7利用適配器將綜合后的網(wǎng)絡表文件針對某一具體的目標器件進行邏輯映射操作,包括底層器件配置、邏輯分割、邏輯優(yōu)化和布局布線。8在適配完成后,產(chǎn)生多項設計結果(A)適配報告,包括芯片內部資源利用情況,設計的布爾方程描述情況等;(B)適配后的仿真模型;(C)器件編程文件。根據(jù)適配后的仿真模型,可以進行適配后時序仿真,因為已經(jīng)得到器件的實際硬件特性(如時延特性),所以仿真結果能比較精確的預期未來芯片的實際性能。如果仿真結果達不到設計要求,就修改VHDL源代碼或選擇不同速度和品質的器件,直至滿足設計要求。最后將適配器產(chǎn)生的器件編程文件通過編程器或下載電纜載入到目標芯片CPLD/FPGA中。24FPGA開發(fā)編程原理硬件設計需要根據(jù)各種性能指標、成本、開發(fā)周期等因素,確定最佳的實現(xiàn)方案,畫出系統(tǒng)框圖,選擇芯片,設計PCB并最終形成樣機。CPLD/FPGA軟件設計可分為兩大塊編程語言和編程工具。編程語言主要有VHDL和VERILOG兩種硬件描述語言;編程工具主要是兩大廠家ALTERA和XILINX的集成綜合EDA軟件(如MAXPLUSII、QUARTUSII、FOUNDATION、ISE)以及第三方工具(如FPGAEXPRESS、MODELSIM、SYNPOSYSSVS等)。具體的設計輸入方式有以下幾種1HDL語言方式。HDL既可以描述底層設計,也可以描述頂層的設計,但它不容易做到較高的工作速度和芯片利用率。用這種方式描述的項目最后所能達到的性能與設計人員的水平、經(jīng)驗以及綜合軟件有很大的關系。2圖形方式??梢苑譃殡娐吩韴D描述,狀態(tài)機描述和波形描述3種形式。有的軟件3種輸入方法都支持,如ACTIVEHDL。MAXPLUSII圖形輸入方式只支持電路原理圖描述和波形描述兩種。電路原理圖方式描述比較直觀和高效,對綜合軟件的要求不高。一般大都使用成熟的IP核和中小規(guī)模集成電路所搭成的現(xiàn)成電路,整體放到一片可編程邏輯器件的內部去,所以硬件工作速度和芯片利用率很高,但是但項目很大的時候,該方法就顯得有些繁瑣;狀態(tài)機描述主要用來設計基于狀態(tài)機思想的時序電路。在圖形的方式下定義好各個工作狀態(tài),然后在各個狀態(tài)上輸入轉換條件以及相應的輸入輸出,最后生成HDL語言描述,送去綜合軟件綜合到可編程邏輯器件的內部。由于狀態(tài)機到HDL語言有一種標準的對應描述方式,所以這種輸入方式最后所能達到的工作速度和芯片利用率主要取決于綜合軟件;波形描述方式是基于真值表的一種圖形輸入方式,直接描述輸入與輸出的波形關系。這種輸入方式最后所能達到的工作速度和芯片利用率也是主要取決于綜合軟件。3數(shù)字鐘總體設計方案31數(shù)字鐘的構成數(shù)字鐘實際上是一個對標準頻率(1HZ)進行計數(shù)的計數(shù)電路。由于計數(shù)的起始時間不可能與標準時間(如北京時間)一致,故需要在電路上加一個校時電路,同時標準的1HZ時間信號必須做到準確穩(wěn)定。通常使用石英晶體振蕩器電路構成數(shù)字鐘。圖31所示為數(shù)字鐘的一般構成框圖。主要包括時間基準電路、計數(shù)器電路、控制電路、譯碼和顯示電路。其中的控制邏輯電路是比較靈活多樣的,不斷完善它可以增強數(shù)字鐘的功能。譯碼驅動譯碼驅動譯碼驅動譯碼驅動譯碼驅動譯碼驅動時十位計數(shù)時個位計數(shù)分十位計數(shù)分個位計數(shù)秒十位計數(shù)秒個位計數(shù)校時控制電路校分控制電路分頻器電路分頻器電路晶體振蕩器電路1HZ圖31數(shù)字鐘的一般組成框圖本設計在上面數(shù)字鐘結構的基礎上還加入了顯示年、月、日的功能,其顯示范圍為2000年1月1日至2099年12月31日。其總體框架如圖32。圖32總體框架32數(shù)字鐘的工作原理振蕩器產(chǎn)生穩(wěn)定的高頻脈沖信號,作為數(shù)字鐘的時間基準,然后經(jīng)過分頻器輸出標準秒脈沖。秒計數(shù)器滿60后向分計數(shù)器進位,分計數(shù)器滿60后向小時計數(shù)器進位,小時計數(shù)器按照“24翻1”規(guī)律計數(shù)。計滿后各計數(shù)器清零,重新計數(shù)。日期部分由于日有28天、29天、30天、31天4種情況,故日由年和月共同判斷其天數(shù),日計滿后向月進位,月滿后向年進位。計數(shù)器的輸出分別經(jīng)譯碼器送數(shù)碼管顯示。計時出現(xiàn)誤差時,可以用校時電路校時、校分、校秒和校年、校月和校日。在控制信號中除了一般的校時信號外,還有時鐘使能信號、時鐘清零信號。控制信號由44矩形鍵盤輸入。時基電路可以由石英晶體振蕩電路構成,如果晶振頻率為1MHZ,經(jīng)過6次十分頻就可以得到秒脈沖信號。譯碼顯示電路由七段譯碼器完成,顯示由數(shù)碼管構成。4單元電路設計41分頻模塊電路設計與實現(xiàn)晶體振蕩器是構成數(shù)字式時鐘的核心,振蕩器的穩(wěn)定度及頻率的精度決定了數(shù)字鐘計時的準確程度,它保證了時鐘的走時準確及穩(wěn)定。石英晶體的選頻特性非常好,只有某一頻率點的信號可以通過它,其它頻率段的信號均會被它所衰減,而且,振蕩信號的頻率與振蕩電路中的R、C元件的數(shù)值無關。因此,這種振蕩電路輸出的是準確度極高的信號。然后再利用分頻電路,將其輸出信號轉變?yōu)槊胄盘枺浣M成框圖如圖41。圖41秒信號產(chǎn)生電路框圖本系統(tǒng)使用的晶體振蕩器電路給數(shù)字鐘提供一個頻率穩(wěn)定準確的40MHZ的方波信號,其輸出至分頻電路。分頻電路的邏輯框圖如圖42所示。圖42分頻電路模塊分頻電路石英晶體振蕩電路秒信號圖43分頻模塊電路設計其內部結構圖見圖43。電路中采用MAXPLUSII元器件庫中的計數(shù)器7490進行硬件分頻。經(jīng)分頻后輸出1HZ的標準秒信號CLK1、4MHZ的按鍵掃描信號、1KHZ的按鍵去抖信號和500HZ用于報時模塊的輸入信號。該模塊的時序仿真圖如圖44所示,滿足設計要求。圖44分頻模塊仿真圖42校時控制模塊電路設計與實現(xiàn)421鍵盤接口電路原理校時控制模塊在本系統(tǒng)中也就是鍵盤接口電路部分。下面先介紹鍵盤接口電路的工作原理,如圖45。本系統(tǒng)采用的就是這種行列式鍵盤接口,相對個按鍵的鍵盤接口來說節(jié)省了I/O接口。如圖所示,行線通過一個電阻被上拉到5V電壓。行線與按鍵的一個引腳相連,列線與按鍵的另一個引腳相連。平時列線被置成低電平,沒有按鍵被按下的時候,行線保持高電平,而有按鍵被按下的時候,行線被拉成低電平,這時候控制器就知道有按鍵被按下,但只能判斷出在哪一行,不能判斷出在哪一列,因此接下來就要進行鍵盤掃描,以確定具體是哪個按鍵被按下。鍵盤掃描的過程事將列線逐列置成低電平,然后讀取行線狀態(tài),直到行線中出現(xiàn)低電平,可知這時哪一列是低電平,然后將行線與列線的狀態(tài)裝入鍵碼寄存器,進行按鍵譯碼,得到按下的按鍵的相應編碼,這樣就完成了按鍵掃描的過程。當然,一個完整的按鍵掃描過程還需要配合相應的鍵盤去抖手段才能正確的識別按鍵,不會發(fā)生重鍵和錯誤判斷等情況。圖45鍵盤接口電路422鍵盤接口的VHDL描述1按鍵消抖本模塊用于當有按鍵按下時,采用軟件消抖的辦法去除按鍵抖動。模塊的實現(xiàn)方法是先判斷是否有按鍵按下,如有按鍵按下則延時一段時間,待抖動過去之后再讀行線狀態(tài),如果仍有低電平行線,則確定有按鍵按下,然后產(chǎn)生一個有按鍵按下的信號。該模塊有一個時鐘輸入端口,輸入時鐘信號是分頻出來的1KHZ的時鐘;有一個輸入端口與行線相連,用于輸入行線狀態(tài);一個輸出端口,用于輸出有按鍵按下的信號。該模塊的邏輯框圖如圖46所示。圖46去抖邏輯框圖該電路的VHDL程序如下LIBRARYIEEEUSEIEEESTD_LOGIC_1164ALLUSEIEEESTD_LOGIC_ARITHALLUSEIEEESTD_LOGIC_UNSIGNEDALLENTITYQUDOUISPORTCLK1INSTD_LOGICROWINSTD_LOGIC_VECTOR3DOWNTO0KEY_PREOUTSTD_LOGICENDQUDOUARCHITECTUREBEHAVOFQUDOUISSIGNALSIG1,COUNTERSTD_LOGIC_VECTOR3DOWNTO0SIGNALTMP1,SIG2STD_LOGICBEGINSIG1KEY_CODEKEY_CODEKEY_CODEKEY_CODEKEY_CODEKEY_CODEKEY_CODEKEY_CODEKEY_CODEKEY_CODEKEY_CODEKEY_CODEKEY_CODEKEY_CODEKEY_CODEKEY_CODE“0101“THENM0“0000“M1“0000“CA“0000“THENM0M01ELSEM0“1001“M1M11ENDIFENDIFENDIFA“0000“THENR0R01ELSER0“1001“R1R11ENDIFENDIFENDIFA“0000“THENY0Y01ELSEY0“1001“Y1Y11ENDIFENDIFENDIFIFY0“0100“ORY0“0110“ORY0“1001“ANDY1“0000“ORY0“0000“ANDY1“0001“THENYSEL“0000“THENN0N01ELSIFN0“0000“ANDN1“0000“ANDN2“0000“ANDN3“0000“THENN0“1001“N1“1001“N2“1001“N3“1001“ELSIFN

溫馨提示

  • 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

提交評論