




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基于fpga的自動打鈴器的設(shè)計 學(xué) 院 電 子 工 程 學(xué) 院 學(xué) 號 11111010103 班 級 a1121班 專 業(yè) 電 子 信 息 工 程 姓 名 何樹良 指 導(dǎo) 教 師 羅靜 目 錄第一章 緒論41.1選題目的41.2 fpga的發(fā)展歷程41.2.1 fpga的優(yōu)點51.3器件及工具介紹51.3.1 quartus設(shè)計步驟5第二章 系統(tǒng)方案設(shè)計52.1設(shè)計方案分析與選擇52.2自動打鈴器總體構(gòu)成62.3分頻模塊設(shè)計72.4消抖模塊設(shè)計82.5時鐘模塊設(shè)計82.5.1秒計數(shù)模塊92.5.2分計數(shù)模塊92.5.3時計數(shù)模塊102.5.4調(diào)時模塊112.6鬧鐘模塊設(shè)計122.6.1定時模
2、塊122.6.2比較模塊132.7打鈴模塊設(shè)計152.8報警模塊設(shè)計172.8.1報警時長設(shè)定模塊172.8.2蜂鳴器發(fā)聲模塊172.9顯示模塊設(shè)計182.9.1時間切換模塊182.9.2動態(tài)掃描模塊202.10按鍵電路設(shè)計22第三章 實驗結(jié)果分析223.1測試過程223.2結(jié)果分析23參考文獻25附 錄26 摘 要自動打鈴器為學(xué)校上下課時間的準確控制提供了很大的便利,并且在工廠、辦公室等場合也起到了提醒人們時間的作用,因此打鈴器的設(shè)計有一定的實用意義。本設(shè)計的學(xué)校打鈴器采用基于現(xiàn)場可編程門陣列(fpga)的方法,底層模塊采用硬件描述語言(hdl)設(shè)計,不僅能對時、分、秒正常計時和顯示,而且還
3、可進行鬧鈴時間的設(shè)定,上下課時間報警,報警時間1-15秒設(shè)置。系統(tǒng)主芯片采用美國altera公司的ep3c40f484i7器件,由時鐘模塊、控制模塊、鬧鐘模塊、定時模塊、數(shù)據(jù)譯碼模塊、顯示以及報時等模塊組成,由按鍵進行時鐘的校時、清零、啟停等。本文在介紹fpga器件的基礎(chǔ)上,著重闡述了如何使用fpga器件進行系統(tǒng)的開發(fā),以及如何實現(xiàn)學(xué)校打鈴系統(tǒng)。通過仿真驗證及實際測試,打鈴器具有正常計時、定時報警、報警時長設(shè)定等功能,可為日常作息提供準確、便捷的提醒。系統(tǒng)運行穩(wěn)定,設(shè)計方法可行。關(guān)鍵詞:打鈴器 現(xiàn)場可編程門陣列 硬件描述語言 第一章 緒論1.1選題目的當(dāng)今社會,電子技術(shù)的應(yīng)用無處不在,電子技術(shù)
4、正在不斷地改變我們的生活,改變著我們的世界。在這快速發(fā)展的年代,時間對人們來說是越來越寶貴,在快節(jié)奏的生活時,人們往往忘記了時間,一旦遇到重要的事情而忘記了時間,這將會帶來很大的損失。因此我們需要一個定時系統(tǒng)來提醒這些忙碌的人。數(shù)字化的時鐘給人們帶來了極大的方便。近些年,隨著科技的發(fā)展和社會的進步,人們對時鐘的要求也越來越高,傳統(tǒng)的時鐘已不能滿足人們的需求。多功能數(shù)字鐘不管在性能還是在樣式上都發(fā)生了質(zhì)的變化,自動打鈴器就是以時鐘為基礎(chǔ)的,在平時校園生活中是必不可少的工具。自動打鈴器的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地擴展了時鐘原先的報時功能。諸如定時自動報警、定時啟閉電路、定時開
5、關(guān)烘箱、通斷動力設(shè)備,甚至各種定時電氣的自動啟用等,所有這些,都是以時鐘數(shù)字化為基礎(chǔ)的。因此,研究時鐘及擴展應(yīng)用,有著非?,F(xiàn)實的意義。本設(shè)計將借助eda技術(shù),完成基于fpga器件的學(xué)校打鈴器的設(shè)計。eda技術(shù)的發(fā)展經(jīng)歷了一個由淺到深的過程,先后經(jīng)歷了cad、cae和現(xiàn)代意義上的eda三個階段。在可編程邏輯器件(pld)內(nèi)部,數(shù)字電路可用硬件描述語言可以進行方便的描述,經(jīng)過生成元件后可作為一個標準元件進行調(diào)用。同時,借助于開發(fā)設(shè)計平臺,可以進行系統(tǒng)的仿真和硬件測試等。對于數(shù)字電子技術(shù)實驗和課程設(shè)計等,特別是數(shù)字系統(tǒng)性的課題,借助pld器件和硬件描述語言等開發(fā)手段,即可設(shè)計出各種比較復(fù)雜的數(shù)字系統(tǒng)
6、,如設(shè)計頻率計、交通控制燈、秒表等,有助于實驗質(zhì)量的提高和對學(xué)生綜合能力的鍛煉。同時,作為電子信息工程專業(yè)的學(xué)生,eda技術(shù)應(yīng)用于畢業(yè)設(shè)計中,可快速、經(jīng)濟地設(shè)計各種高性能的電子系統(tǒng),并且很容易實現(xiàn)、修改及完善。1.2 fpga的發(fā)展歷程作為一種可編程邏輯器件,現(xiàn)場可編程門陣列(field programmable gate array,fpga)的出現(xiàn)是pld發(fā)展變化的必然,他的出現(xiàn)推動著可編程邏輯器件的進一步發(fā)展。因此說,了解了可編程邏輯器件的發(fā)展歷程,也就了解了fpga的發(fā)展歷程。pld是20世紀70年代發(fā)展起來的一種新型器。它的應(yīng)用不僅簡化了電路設(shè)計,降低了成本,提高了系統(tǒng)的可靠性,而且
7、給數(shù)字系統(tǒng)的設(shè)計方式帶來了革命性的變化,其結(jié)構(gòu)和工藝的變化經(jīng)歷了一個不斷發(fā)展的過程。20世紀70年代,早期的可編程邏輯器件只有可編程只讀存儲器(prom)、紫外線可擦除只讀存儲器(eprom)和電可擦除只讀存儲器(eeprom)3種。隨后,出現(xiàn)了一類結(jié)構(gòu)稍微復(fù)雜的可編程芯片,即可編程邏輯陣列(programmable logic array,pla)。pla在結(jié)構(gòu)上由一個可編程的與陣列和可編程的或陣列構(gòu)成,陣列規(guī)模小,編程過程復(fù)雜繁瑣。pla既有現(xiàn)場可編程的,又有掩膜可編程的2。1.2.1 fpga的優(yōu)點概括地說,fpga器件具有下列優(yōu)點:高密度、高速度、系列化、標準化、小型化、多功能、低功耗
8、、低成本,設(shè)計靈活方便,可無限次反復(fù)編程,并可現(xiàn)場模擬調(diào)試驗證。使用fpga器件,一般可在幾天到幾周內(nèi)完成一個電子系統(tǒng)的設(shè)計和制作,可以縮短研制周期,達到快速上市和進一步降低成本的要求。用fpga器件實現(xiàn)數(shù)字系統(tǒng)時用的芯片數(shù)量少,從而減少芯片的使用數(shù)目,減少印刷線路板面積和印刷線路板數(shù)目,最終導(dǎo)致系統(tǒng)規(guī)模的全面縮減3。1.3器件及工具介紹1.3.1 quartus設(shè)計步驟quartus ii 是altera公司的綜合性pld開發(fā)軟件,支持原理圖、vhdl、veriloghdl以及ahdl(altera hardware description language)等多種設(shè)計輸入形式。內(nèi)嵌自有的綜
9、合器以及仿真器,可以完成從設(shè)計輸入到硬件配置的完整pld設(shè)計流程4。其設(shè)計流程包括設(shè)計輸入、編譯、仿真與定時分析、編程與驗證。設(shè)計輸入包括原理圖輸入、hdl 文本輸入、edif 網(wǎng)表輸入、波形輸入等幾種方式。編譯時要根據(jù)設(shè)計要求設(shè)定編譯方式和編譯策略,然后根據(jù)設(shè)定的參數(shù)和策略對設(shè)計項目進行網(wǎng)表提取、邏輯綜合、器件適配,供分析、仿真和編程使用。設(shè)計完成后需要進行仿真,可以測試設(shè)計的邏輯功能和延時特性。最后可以用得到的編程文件通過編程電纜配置pld,進行在線測試。在設(shè)計過程中,如果出現(xiàn)錯誤,則需重新回到設(shè)計輸入階段,改正錯誤或調(diào)整電路后重新測試。第二章 系統(tǒng)方案設(shè)計2.1設(shè)計方案分析與選擇方案一:
10、采用通用數(shù)字器件來設(shè)計。比如,打鈴器結(jié)構(gòu)組成中最基本的是數(shù)字鐘。數(shù)字鐘實際上是一個對標準頻率(1hz)進行計數(shù)的計數(shù)電路。由于計數(shù)的起始時間不可能與標準時間(如北京時間)一致,故需要在電路上加一個校時電路,同時標準的1hz時間信號必須做到準確穩(wěn)定。采用此方法設(shè)計數(shù)字鐘通常使用石英晶體振蕩器電路構(gòu)成數(shù)字鐘?;诖嗽O(shè)計方案的數(shù)字鐘部分結(jié)構(gòu)組成如圖2-1所示。圖2-1 數(shù)字鐘部分結(jié)構(gòu)組成2.2自動打鈴器總體構(gòu)成本設(shè)計內(nèi)容為基于fpga的學(xué)校打鈴器,控制器底層模塊采用硬件描述語言設(shè)計,頂層模塊設(shè)計方法采用原理圖方式;打鈴器具有計時功能,能對時、分、秒正常計時和顯示;又具有定時打鈴功能,當(dāng)設(shè)定的打鈴時間
11、與學(xué)校上下課時間點相同時打鈴;并且計時時間、定時時間、打鈴時長(1s15s內(nèi))自由設(shè)置和調(diào)整,其數(shù)據(jù)信息通過數(shù)碼管或lcd顯示。學(xué)校打鈴器總體設(shè)計框圖如圖2-2所示。振蕩器產(chǎn)生穩(wěn)定的高頻脈沖信號,作為數(shù)字鐘的時間基準,然后經(jīng)過分頻器輸出標準秒脈沖。秒計數(shù)器滿60后向分計數(shù)器進位,分計數(shù)器滿60后向小時計數(shù)器進位,小時計數(shù)器按照“24翻1”規(guī)律計數(shù)。計滿后各計數(shù)器清零,重新計數(shù)。計數(shù)器的輸出分別經(jīng)譯碼器送數(shù)碼管顯示。在控制信號中除了一般的校時信號外,還有時鐘清零信號。時基電路可以由石英晶體振蕩電路構(gòu)成,晶振頻率為25mhz,經(jīng)過分頻可得到秒脈沖信號。譯碼顯示電路由七段譯碼器完成,顯示由數(shù)碼管構(gòu)成
12、。圖2-2 學(xué)校打鈴器總體設(shè)計框圖2.3分頻模塊設(shè)計本設(shè)計fpga外部使用的是25mhz晶振,在其內(nèi)部再根據(jù)需要進行分頻。如圖2-3所示為分頻模塊連接圖。分頻模塊由25k分頻、200分頻、5分頻、50k分頻、250分頻組成。其中25k分頻的輸出作為按鍵消抖模塊的輸入時鐘信號,其頻率為1khz;200分頻的輸出作為計時模塊調(diào)分模塊的時鐘輸入,其頻率為5hz,周期為0.2s;5分頻的輸出作為計時模塊中秒計時的輸入,為1hz頻率的1s時鐘信號;50k分頻的輸出作為動態(tài)掃描模塊的輸入時鐘,其頻率為500hz;250分頻的輸出作為計時模塊調(diào)時模塊的輸入時鐘,其頻率為2hz,周期為0.5s。圖2-3 分頻
13、模塊連接圖現(xiàn)以5分頻為例進行仿真,當(dāng)時鐘到第五個上升沿時,輸出由“0”變?yōu)椤?”,下降沿時又由“1”變?yōu)椤?”,產(chǎn)生一個脈沖。滿足設(shè)計要求。2.4消抖模塊設(shè)計在本設(shè)計初期完成后,下載程序測試時,撥動按鍵或者按下按鍵時顯示出現(xiàn)異常,這就需要加入按鍵消抖模塊。按鍵消抖模塊一般有硬件和軟件兩種方式,硬件就是加入去抖動電路,這樣從根本上解決了按鍵抖動問題,除了專用電路以外,還可用編程fpga或者cpld設(shè)計相應(yīng)的邏輯和時序電路,對按鍵信號進行處理,同樣可以達到去抖動的目的,本次設(shè)計中采用硬件模塊消抖動方式。模塊的實現(xiàn)方法是先判斷是否有按鍵按下,如有按鍵按下則延時一段時間,待抖動過去之后再讀行線狀態(tài),如
14、果仍有低電平行線,則確定有按鍵按下,然后產(chǎn)生一個有按鍵按下的信號。該模塊有一個時鐘輸入端口,輸入時鐘信號是分頻出來的1khz的時鐘;有一個輸入端口與按鍵端相連;一個輸出端口,用于輸出有按鍵按下的信號。如圖2-4所示為消抖模塊符號圖。圖2-4 消抖模塊符號圖本設(shè)計的按鍵消抖模塊內(nèi)部電路相當(dāng)于一個d觸發(fā)器,該模塊在這里實現(xiàn)的比較簡單,原理是當(dāng)有按鍵按下的時候,d會變成高電平,當(dāng)有時鐘上升沿到來且按鍵按下時,q輸出高電平。由于時鐘脈沖為1khz,故從有按鍵按下到輸入信號產(chǎn)生大概需要1ms。而按鍵產(chǎn)生抖動的時間大約2ms到10ms,所以一旦計數(shù)完成,抖動已經(jīng)過去,不會發(fā)生重鍵現(xiàn)象了,這樣就去除了抖動。
15、如圖2-5所示為按鍵消抖模塊波形仿真圖。圖2-5消抖模塊波形仿真2.5時鐘模塊設(shè)計時鐘模塊是學(xué)校打鈴器最基本的模塊,主要實現(xiàn)基本計時、調(diào)時、調(diào)分功能,包括秒計數(shù)模塊、分計數(shù)模塊、時計數(shù)模塊和調(diào)時模塊。2.5.1秒計數(shù)模塊如圖2-9所示為秒計數(shù)模塊符號圖。輸入端口clr是秒計數(shù)模塊的清零信號,也是整個數(shù)字中的使能信號,低電平有效; cp是秒脈沖輸入端口,外接分頻模塊頻率為1hz的時鐘信號;輸出端口sqmsl3.0是秒時鐘的低位,sqmsh3.0是高位;co端口是進位輸出端口,當(dāng)秒計數(shù)到59時輸出高電平,其它時候輸出低電平。圖2-9 秒計數(shù)模塊符號圖如圖2-6所示波形仿真圖。由圖可以看出,隨著1s
16、時鐘脈沖上升沿的到來,每來一次秒計數(shù)的低位就產(chǎn)生一個脈沖,當(dāng)計到9時變?yōu)?,秒計數(shù)的高位變?yōu)?,當(dāng)?shù)臀粸?,高位為5時,也就是計到59時,高、低位都變?yōu)?,且輸出co產(chǎn)生一個脈沖信號,由仿真圖可知滿足設(shè)計的要求。圖2-6 秒計數(shù)模塊波形仿真圖2.5.2分計數(shù)模塊如圖2-7所示為分計數(shù)模塊符號圖。輸入端口clr是分計數(shù)模塊的清零信號,也是整個數(shù)字中的使能信號,低電平有效; clk是秒脈沖輸入端口輸出端口;min03.0是分計時的低位,min13.0是分計時的高位;co端口是進位輸出端口,接時計數(shù)的clk作為時鐘輸入,當(dāng)秒計數(shù)到59時輸出高電平,其它時候輸出低電平。圖2-7 分計數(shù)模塊符號圖如圖2
17、-8所示為分計數(shù)模塊波形仿真圖。給clk一定時鐘信號之后,clr高電平清零無效,每次達到時鐘脈沖上升沿時,分計數(shù)低位min0計一個數(shù),計到9時向高位進位,當(dāng)計到59時,模塊進位輸出co產(chǎn)生一個脈沖信號,由仿真圖可知此模塊設(shè)計滿足設(shè)計要求。圖2-8 分計數(shù)模塊波形仿真圖2.5.3時計數(shù)模塊圖2-9 時計數(shù)模塊符號圖如圖2-9所示為時計數(shù)模塊符號圖。輸入端口clr是時計數(shù)模塊的清零信號,也是整個數(shù)字中的使能信號,低電平有效; clk是秒脈沖輸入端口輸出端口;sl3.0是分計時的低位,sh3.0是分計時的高位。圖2-10時計數(shù)模塊波形仿真圖時計數(shù)模塊波形仿真圖如圖2-10所示。clk接分計時模塊的僅
18、為輸出,給定時鐘信號,clr高電平清零無效,每次達到時鐘脈沖上升沿時,時計數(shù)低位sl計一個數(shù),計到9時向高位進位,當(dāng)計到24時,高、低都變?yōu)榱悖嫈?shù)重新開始,由仿真圖可知此模塊設(shè)計滿足設(shè)計要求。2.5.4調(diào)時模塊圖2-11調(diào)時模塊符號圖如圖2-11所示為調(diào)時模塊符號圖。本設(shè)計的調(diào)時模塊類似于二選一數(shù)據(jù)選擇器,輸入端口key是調(diào)時模塊的調(diào)時開關(guān),當(dāng)為高電平是輸出a的數(shù)據(jù),當(dāng)為低電平時輸出b的數(shù)據(jù);a端接上一個計時模塊的進位輸出;b端接分頻器的輸出時鐘脈沖;c為模塊的輸出,作為計時模塊的輸入時鐘。由此可知當(dāng)key為低電平時可進行調(diào)時、調(diào)分。圖2-12調(diào)時模塊波形仿真圖 如圖2-12所示為調(diào)時模塊波
19、形仿真圖。當(dāng)key為低電平時,調(diào)時模塊輸出b的脈沖;當(dāng)key為高電平時,輸出a的脈沖。由此可知,本模塊滿足設(shè)計要求。2.6鬧鐘模塊設(shè)計圖2-13 鬧鐘模塊總體設(shè)計框圖如圖2-13所示為鬧鐘模塊總體設(shè)計框圖。本模塊主要由定時模塊、比較模塊組成,另外還有正常計時時間和定時時間輸出選擇切換模塊,連接基本數(shù)字鐘模塊的時、分、秒輸出,以及定時時間的時、分輸出,另一端連接動態(tài)顯示模塊,通過外部按鍵來選擇基本時鐘或者是鬧鐘時間設(shè)定的顯示。定時控制模塊有復(fù)位鍵、調(diào)時調(diào)分切換鍵、累加鍵,來設(shè)定鬧鐘時間。2.6.1定時模塊如圖2-14所示分別為定時模塊符號圖。輸入端口reset是定時模塊的復(fù)位信號,也是整個打鈴器
20、的使能信號,低電平有效; k1是鬧鐘時間設(shè)定時、分切換按鍵,高電平時對時進行調(diào)節(jié),低電平時對分進行調(diào)節(jié);up_key是調(diào)整鬧鐘時間的累加按鍵,另一端接按鍵消抖模塊,每按一次計數(shù)加一;q_tmpma、q_tmpmb、q_tmpha、q_tmphb分別為鬧鐘時間的分低位、分高位、時低位時高位。圖2-14 定時模塊符號圖如圖2-15所示為定時模塊波形仿真圖。當(dāng)復(fù)位鍵為高電平、k1為低電平時,每按下一次up_key鬧鐘分低位就計一個數(shù),計到9時向高位進一,當(dāng)計到59時重新從0開始計數(shù);當(dāng)復(fù)位鍵為高電平、k1為高電平時,開始對時計數(shù),up_key每來一個脈沖時低位就計一個數(shù),計到9時變?yōu)?,高位進位,計
21、到23時重新計數(shù),由波形仿真克制此模塊滿足設(shè)計要求。圖2-15 定時模塊波形仿真圖2.6.2比較模塊如圖2-16所示為比較模塊設(shè)計框圖。設(shè)計思路為:將鬧鐘設(shè)定的時間與及時模塊的時間分別比較,即時高位、時低位、分高位、分低位分別進行比較,若時間相等,則輸出高電平,輸出信號與1hz時鐘信號相與,獲得的信號接蜂鳴器,可實現(xiàn)時隔一秒報警一次,報警時長為一秒。圖2-16 比較模塊設(shè)計框圖如圖2-17所示為比較模塊符號圖。clk0為比較模塊的時鐘,接200分頻器輸出的1hz時鐘信號;qh_b3.0為時鐘的時高位,qh_a3.0為時鐘的時低位,qmb3.0為時鐘的分高位,qm_a3.0為時鐘的分低位;har
22、m_b3.0為鬧鐘時間的時高位,harm_a3.0為鬧鐘時間的時低位,marm_b3.0為鬧鐘時間的分高位,marm_a3.0為鬧鐘時間的分低位;speak為比較模塊的輸出,接報警時長設(shè)定模塊的輸入。圖2-17 比較模塊符號圖如圖2-18所示為比較模塊波形仿真圖。給clk0一定時鐘,設(shè)定鬧鐘時間時高位為1,時低位為2,分高位、分低位都為0,即鬧鐘時間為十二點整,;首先設(shè)定時鐘模塊的時高位設(shè)定為1,時低位為1,分高位為5,分低位為9,即十一點五十九分,再設(shè)定為十二點整;由波形仿真圖可知,當(dāng)時鐘時間由十一點五十九分變?yōu)槭c整時,speak輸出時鐘波形,可知比較模塊的設(shè)計滿足要求。圖2-18 比較
23、模塊波形仿真圖2.7打鈴模塊設(shè)計圖2-19打鈴模塊設(shè)計框圖 如圖2-19所示為打鈴模塊設(shè)計框圖。模塊包括作息選擇和時間比較部分,其設(shè)計思路為:通過k3進行春夏作息時間選擇,將時鐘的時高位、時低位、分高位、分低位分別于打鈴時間數(shù)據(jù)進行比較,若相等,則q_y輸出高電平,否則輸出低電平。圖2-20打鈴模塊符號圖如圖2-20所示為打鈴模塊符號圖。k3為切換春夏作息時間的按鍵,當(dāng)k3為高電平時選擇春季作息時間,方為低電平時選擇夏季作息時間;q_hb3.0接時鐘時間的時高位,q_ha3.0接時鐘時間的時低位,q_mb3.0接時鐘時間的分高位,q_ma3.0接時鐘時間的時低位;q_y為打鈴模塊的輸出,接報警
24、模塊的輸入。圖2-21打鈴模塊波形仿真圖如圖2-21所示為打鈴模塊波形仿真圖??梢钥闯觯寒?dāng)k3為高電平時,選擇春季作息時間,當(dāng)時鐘時間由八點二十九分跳變?yōu)榘它c三十分時,q_y由低電平變?yōu)楦唠娖?,此為春季作息時間上午的的八點三十分;當(dāng)k3為低電平時,選擇夏季作息時間,當(dāng)時鐘時間由八點二十九分跳變?yōu)榘它c三十分時,q_y由低電平變?yōu)楦唠娖剑藶橄募咀飨r間上午的八點三十分;當(dāng)k3為高電平時,選擇春季作息時間,當(dāng)時鐘時間由十三點二十九分跳變?yōu)槭c三十分時,q_y由低電平變?yōu)楦唠娖剑藶榇杭咀飨r間下午的十三點三十分;當(dāng)k3為低電平時,選擇夏季作息時間,當(dāng)時鐘時間由十三點五十九分跳變?yōu)槭狞c整時,q_
25、y由低電平變?yōu)楦唠娖?,此為夏季作息時間下午的十四點整。由此可知打鈴模塊滿足設(shè)計要求。2.8報警模塊設(shè)計報警模塊主要包括報警時長設(shè)定模塊和蜂鳴器發(fā)生模塊,實現(xiàn)學(xué)校作息時間報時和鬧鐘報警的功能。2.8.1報警時長設(shè)定模塊如圖2-22所示分別為報警時長設(shè)定模塊符號圖和rtl圖。其中reset為復(fù)位端,低電平有效;up_key為調(diào)節(jié)報警時間的按鍵,時長可從一秒調(diào)至十五秒,連接按鍵模塊;speaktime3.0為報警時長的輸出,連接蜂鳴器發(fā)生模塊的輸入端。圖2-22 報警時長設(shè)定模塊符號圖如圖2-23所示為報警時長設(shè)定模塊波形仿真圖。復(fù)位按鍵reset設(shè)為高電平,給up_key一定脈沖時鐘,沒到達一次脈
26、沖上升沿,speaktime就加一,當(dāng)計到15時重新從0開始,實現(xiàn)了報警時長在1至15秒內(nèi)自由設(shè)定的要求。圖2-23 報警時長設(shè)定模塊波形仿真圖2.8.2蜂鳴器發(fā)聲模塊本設(shè)計需用兩個蜂鳴器,一個蜂鳴器用于學(xué)校作息時間報時,另外一個蜂鳴器用于鬧鐘報警。如圖2-24所示為蜂鳴器發(fā)聲模塊符號圖和rtl圖。qy接比較模塊的輸出,相當(dāng)于蜂鳴器發(fā)生模塊的使能信號;clk接1hz的時鐘模塊,報警可實現(xiàn)每一秒響一下;speaktime3.0接報警時長設(shè)定模塊的輸出,為報警持續(xù)的時間長度,范圍在一秒至十五秒以內(nèi);q_20s為蜂鳴器發(fā)聲模塊的輸出,接蜂鳴器的負極。 圖2-24 蜂鳴器發(fā)聲模塊符號圖如圖2-25所示
27、為蜂鳴器發(fā)聲模塊波形仿真圖。給clk接入一定脈沖,speaktime為一秒,當(dāng)q_y為高電平時,伴隨時鐘脈沖下一個周期的到來,q_20s由低電平變?yōu)楦唠娖剑唠娖匠掷m(xù)時間與時鐘脈沖的一個周期相等,實際測試時,時鐘脈沖為1hz的秒信號,所以報警時長為1s;當(dāng)設(shè)定speaktime為15秒時,q_20s伴隨時鐘脈沖下一個周期的到來,由低電平變?yōu)楦唠娖?,持續(xù)時間與時鐘脈沖的15個周期相等,可實現(xiàn)15s的報警時長。由此可知,蜂鳴器發(fā)生模塊滿足設(shè)計要求,可實現(xiàn)1-15秒自由調(diào)節(jié)。 圖2-25蜂鳴器發(fā)聲模塊2.9顯示模塊設(shè)計對于本學(xué)校打鈴器的設(shè)計,必不可少的就是顯示模塊的設(shè)計,因為根據(jù)設(shè)計要求,時鐘的計時
28、顯示、鬧鐘的時間設(shè)定、蜂鳴器報警時長的設(shè)定,都需要數(shù)碼管來顯示,實際應(yīng)用的時候,數(shù)碼管的顯示是最直觀的表現(xiàn)。2.9.1時間切換模塊如圖2-26所示為時間切換模塊設(shè)計框圖。設(shè)計思路為:通過k2來進行時間切換,當(dāng)k2為高電平時,輸出正常計時時間;當(dāng)k2為低電平時,輸出定時時間。圖2-26 時間切換模塊設(shè)計框圖 圖2-27 時間切換模塊符號圖如圖2-27所示為時間切換模塊符號圖。k2為切換按鍵輸入,用于切換時間輸出;qsai3.0為時鐘時間秒低位,qsbi3.0為時鐘時間秒高位,qmai3.0為時鐘時間分低位,qmbi3.0為時鐘時間分高位,qhai3.0為時鐘時間時低位,qhbi3.0為時鐘時間時
29、高位;qh_arm_a3.0為定時時間時低位,qh_arm_b3.0為定時時間時高位,qm_arm_a3.0為定時時間分低位,qm_arm_b3.0為定時時間分高位;q_hao3.0為時間切換模塊的時低位,q_hbo3.0為時間切換模塊的時高位,q_mao3.0為時間切換模塊的分低位,q_mbo3.0為時間切換模塊的分高位,q_sao3.0為時間切換模塊的秒低位,q_sbo3.0為時間切換模塊的秒高位。 設(shè)定時鐘時間為21點34分52秒,定時時間為12點整;當(dāng)k2為高電平時,模塊輸出為時鐘時間21點34分52秒;當(dāng)k2為低電平時,模塊輸出為定時時間十二點整。由此可知,本模塊滿足設(shè)計要求。2.9
30、.2動態(tài)掃描模塊所謂動態(tài)顯示就是一位一位地輪流點亮各位顯示器(掃描),對于顯示器的每一位而言,每隔一段時間點亮一次。雖然在同一時刻只有一位顯示器在工作(點亮),但利用人眼的視覺暫留效應(yīng)和發(fā)光二極管熄滅時的余輝效應(yīng),看到的卻是多個字符“同時”顯示。顯示器的亮度既與點亮?xí)r的導(dǎo)通電流有關(guān),也與點亮?xí)r間和間隔時間的比例有關(guān)10。若顯示器的位數(shù)不大于8位,則控制顯示器公共極電位只需一個8位i/o口(稱為掃描口或字位口),控制各位led顯示器所顯示的字形也需要一個8位口(稱為數(shù)據(jù)口或字形口)。調(diào)整電流和時間參烽,可實現(xiàn)亮度較高較穩(wěn)定的顯示11。7段數(shù)碼管一般由8個發(fā)光二極管組成,其中由7個細長的發(fā)光二極管
31、組成數(shù)字顯示,另外一個圓形的發(fā)光二極管顯示小數(shù)點。當(dāng)發(fā)光二極管導(dǎo)通時,相應(yīng)的一個點或一個筆畫發(fā)光。控制相應(yīng)的二極管導(dǎo)通,就能顯示出各種字符,盡管顯示的字符形狀有些失真,能顯示的數(shù)符數(shù)量也有限,但其控制簡單,使有也方便。發(fā)光二極管的陽極連在一起的稱為共陽極數(shù)碼管,陰極連在一起的稱為共陰極數(shù)碼管,本設(shè)計使用共陰數(shù)碼管,如圖2-28所示為七段共陰數(shù)碼管結(jié)構(gòu)圖。圖2-28 七段數(shù)碼管結(jié)構(gòu)如圖2-29所示為數(shù)碼管顯示連接圖。動態(tài)掃描電路將計數(shù)器輸出的8421bcd碼轉(zhuǎn)換為數(shù)碼管需要的邏輯狀態(tài),并且輸出數(shù)碼管的片選信號和位選信號12。所謂動態(tài)掃描顯示方式是在顯示某一位led顯示塊的數(shù)據(jù)的時候,讓其它位不顯
32、示,然后在顯示下一位的數(shù)據(jù),同時關(guān)閉其他顯示塊。這樣做可以使每一個顯示塊顯示與自己相對應(yīng)的數(shù)據(jù)。只要保證每一位顯示的時間間隔不要太大,利用人眼的視覺暫留的現(xiàn)象,就可以造成各位數(shù)據(jù)同時顯示的假象13。一般每一位的顯示時間為110ms。圖2-29 數(shù)碼管顯示連接圖如圖2-30所示為動態(tài)掃描模塊符號圖。該模塊的輸入端口clk是頻率為5khz的掃描時鐘,故每一位顯示的時間為0.2ms,需要掃描8個數(shù)碼管,故顯示間隔為1.6ms。由分頻模塊提供,數(shù)碼管顯示時、分和秒,以及報警時間。其它輸入端口接計數(shù)模塊輸出的數(shù)據(jù);輸出端口segout7.0動態(tài)輸出掃描的數(shù)據(jù);端口selout7.0輸出數(shù)碼管的片選信號。
33、圖2-30 動態(tài)掃描模塊符號圖如圖2-31所示為動態(tài)掃描模塊波形仿真圖。給定一定時鐘脈沖,設(shè)定時鐘時間為21點01分25秒,隨著脈沖上升沿的到來,數(shù)碼管的片選信號逐一變?yōu)榈碗娖剑謩e輸出時鐘時間或定時時間,以及報警時長,有波形仿真圖可知此模塊滿足設(shè)計要求。圖2-31 動態(tài)掃描模塊波形仿真圖2.10按鍵電路設(shè)計本設(shè)計需要對計時時間和鬧鐘時間進行調(diào)整,調(diào)整的過程需要用到按鍵電路,用到兩種按鍵,一種是機械式開關(guān),另外一種是撥碼開關(guān)。由于按鍵電路比較簡單,在此主要介紹按鍵各自完成的功能。本設(shè)計由8個獨立按鍵組成,包括兩個撥碼開關(guān),六個機械式開關(guān)。其中2個撥碼開關(guān)分別用于調(diào)節(jié)報警時長以及鬧鐘定時時間的調(diào)
34、節(jié);另外6個機械式開關(guān)分別用于復(fù)位,數(shù)碼管顯示切換,鬧鐘定時時、分切換,作息時間切換,時鐘時間時、分調(diào)節(jié)。 第三章 實驗結(jié)果分析3.1測試過程將設(shè)計程序下載到實驗箱上進行實際測試,以下為實際測試過程:當(dāng)前狀態(tài)為正常計時狀態(tài),將復(fù)位按鍵設(shè)為高電平,計時開始,時鐘、鬧鐘顯示切換按鍵為高電平時顯示時鐘時間,可通過時鐘調(diào)時、調(diào)分鍵對時鐘時間進行調(diào)整,數(shù)碼管顯示從左到右依次為:報警時長十位、個位,時鐘時間時高位、時低位,分高位、分低位,秒高位、秒低位,顯示時間為十二點十九分十八秒,報警時長為十五秒。為鬧鐘設(shè)定時間的顯示,通過時鐘、鬧鐘顯示切換按鍵來進行切換,當(dāng)為低電平時顯示鬧鐘時間,可通過定時調(diào)時調(diào)分切
35、換按鍵來選擇調(diào)整時或分,按下鬧鐘時間調(diào)節(jié)的撥碼開關(guān)進行鬧鐘時間設(shè)定,圖中數(shù)碼管顯示從左到右依次為:報警時長高位、低位,定時時間時高位、時低位,分高位、分地位,秒高位、秒低位,當(dāng)前顯示鬧鐘設(shè)定時間為十二點十三分,報警時長為五秒,當(dāng)時鐘時間為十二點十三分時,蜂鳴器報警,時長為五秒。 測試說明,最終結(jié)果與預(yù)期效果基本一致,時、分、秒能夠正常計數(shù)并可調(diào)節(jié)時間,學(xué)校上下課時間打鈴功能正常,并且可以通過按鍵調(diào)整作息時間以及報警時長。 自動打鈴器的設(shè)計重點在于按鍵的控制和各個模塊代碼的編寫,雖然能把鍵盤接口和各個模塊的代碼編寫出來,并能正常顯示,但對于各個模塊的優(yōu)化設(shè)計還有一定的缺陷和不足??偟膩碚f,通過這
36、次的設(shè)計實驗更進一步地增強了實驗的動手能力,對打鈴器的工作原理也有了更加透徹的理解。在本設(shè)計調(diào)試過程中遇到了一些難點問題,經(jīng)過努力加以解決:1、當(dāng)程序下載到實驗箱上后,數(shù)碼管顯示全部為零,計數(shù)器不工作,經(jīng)分析得知程序中的總的清零信號保持有效狀態(tài),改動程序后計數(shù)器開始計數(shù)。2、當(dāng)秒時鐘計數(shù)到59時變0時,分計數(shù)模塊滯后計數(shù),考慮的器件的延時,將程序中秒的進位信號提前1秒。3、在對學(xué)校打零時間設(shè)置及更改的問題上,一開始想通過rom實現(xiàn),但思考之后還是采用了通過程序?qū)崿F(xiàn)的方法,因為rom只能讀不能寫。4、在檢測按鍵時,由于有些按鍵控制是秒時鐘同步的,所以控制起來顯得稍微慢些,但是工作正常,能滿足實際
37、的需要。3.2結(jié)果分析 本設(shè)計是采用硬件描述語言和fpga芯片相結(jié)合進行的學(xué)校打鈴器的研究,從中可以看出eda技術(shù)的發(fā)展在一定程度上實現(xiàn)了硬件設(shè)計的軟件化,設(shè)計的過程相對簡單,容易修改。本設(shè)計中仍存在一定不足,用來控制學(xué)校打鈴器的按鍵為八個,數(shù)量較多,在實際應(yīng)用中會帶來不便,以后可以考慮進一步優(yōu)化,如,可通過加入位選控制按鍵來實現(xiàn)節(jié)省按鍵資源,一鍵多用,便可以減少按鍵,實現(xiàn)同樣的控制功能。另外,在本設(shè)計的基礎(chǔ)上還可以進行一系列的創(chuàng)新,比如增加音樂報警的功能,取代稍有刺耳的蜂鳴聲,會使用戶在實際應(yīng)用中多一份樂趣,還可以加入遙控功能、語音識別等等,相信隨著電子技術(shù)的發(fā)展,打鈴器的功能會更加多樣化,
38、滿足人們的各種需要,為人們以后的工作和生活提供更多的方便。 第四章 小結(jié)與體會經(jīng)過課外學(xué)分的設(shè)計,過程曲折可謂一語難盡。在此期間我也失落過,也曾一度熱情高漲。從開始時的激情高漲到最后汗水背后的復(fù)雜心情,點點滴滴無不令我回味無長。 通過這次課外學(xué)分設(shè)計,加強了我的動手、思考和解決問題的能力。考驗了我的耐心和直面挫折的精神。我深知以后要走的路將會更長更曲折,不過不要緊,我有信心和毅力走下去,摔倒了再爬起來,沒有什么,因為我們年輕,我們有激情和熱血。我會用百折不撓的決心,去越過每一道溝溝坎坎。對我而言,知識上的收獲重要,精神上的豐收更加可喜。挫折是一份財富,經(jīng)歷是一份擁有。這次經(jīng)歷讓我受益匪淺。必將
39、成為我人生旅途上一個非常美好的回憶!參考文獻1 劉皖,何道君,譚明編著.fpga設(shè)計與應(yīng)用m.北京:清華大學(xué)出版社,2006.6:12-162 廖日坤.cpld/fpga嵌入式應(yīng)用開發(fā)技術(shù)白金手冊m.北京:中國電力出版社,2003:212-2183 j.bhasker著,徐振林等譯.verilog hdl硬件描述語言m.北京:機械工業(yè)出版社,2000:36-424 侯伯亨,顧新.vhdl硬件描述語言與數(shù)字電路邏輯設(shè)計m.西安:西安電子科技大學(xué)出版社,2001:12-165 高吉祥.電子技術(shù)基礎(chǔ)實驗與課程設(shè)計m.北京:電子工業(yè)出版社,2002:67-736 李國洪,沈明山.可編程器件eda技術(shù)與
40、實踐m.北京:機械工業(yè)出版社,2000:56-577 張慶雙.電子元器件的選用與檢測m.北京:機械工業(yè)出版社,2003:23-258 李婷.基于fpga的按鍵彈跳消除模塊的研究與應(yīng)用j.科技創(chuàng)新導(dǎo)報,2008,(2):82-839 邢遠秀,陳姚節(jié).鍵盤消抖電路的研究與分析j.中國科技信息,2008,(1):20-2210 王開軍,姜宇柏.面向cpld/fpga的vhdl設(shè)計m.北京:機械工業(yè)出版社,2006:28-6511 劉君,常明,秦娟.基于硬件描述語言(vhdl)的數(shù)字時鐘設(shè)計j.天津理工大學(xué)學(xué)報,2007,23(4):40-4112 譚會生,張昌凡.eda技術(shù)及應(yīng)用m.西安:西安電子科
41、技大學(xué)出版社,2002:89-92 13 李可.數(shù)字鐘電路及應(yīng)用m.北京:電子工業(yè)出版社,1996:72-76附 錄一、程序清單1.分頻模塊(1)library ieee;use ieee.std_logic_1164.all;entity fenpin25k is port( clk :in std_logic; co:out std_logic);end entity;architecture art of fenpin25k issignal cqi : integer range 1 to 25000;beginco=1 when cqi=25000 and clk=0else 0;
42、process (clk) is beginif clkevent and clk=1then if cqi=25000 then cqi=1; else cqi=cqi+1; end if; end if; end process; end architecture art;(2)library ieee;use ieee.std_logic_1164.all;entity cnt5 is port( clk :in std_logic; co:out std_logic);end entity;architecture art of cnt5 issignal cqi : integer
43、range 1 to 5;beginco=1 when cqi=5 and clk=0else 0; process (clk) is beginif clkevent and clk=1then if cqi=5 then cqi=1; else cqi=cqi+1; end if; end if; end process; end architecture art;(3)library ieee;use ieee.std_logic_1164.all;entity cnt200 is port( clk :in std_logic; co:out std_logic);end entity
44、;architecture art of cnt200 issignal cqi : integer range 1 to 200;beginco=1 when cqi=200 and clk=0else 0; process (clk) is beginif clkevent and clk=1then if cqi=200 then cqi=1; else cqi=cqi+1; end if; end if; end process; end architecture art;(4)library ieee;use ieee.std_logic_1164.all;entity cnt50e
45、 is port( clk :in std_logic; co:out std_logic);end entity;architecture art of cnt50e issignal cqi : integer range 1 to 50e3;beginco=1 when cqi=50e3 and clk=0else 0; process (clk) is beginif clkevent and clk=1then if cqi=50e3 then cqi=1; else cqi=cqi+1; end if; end if; end process; end architecture a
46、rt;(5)library ieee;use ieee.std_logic_1164.all;entity cnt250 is port( clk :in std_logic; co:out std_logic);end entity;architecture art of cnt250 issignal cqi : integer range 1 to 250;beginco=1 when cqi=250 and clk=0else 0; process (clk) is beginif clkevent and clk=1then if cqi=250 then cqi=1; else c
47、qi=cqi+1; end if; end if; end process; end architecture art;2.消抖模塊library ieee;use ieee.std_logic_1164.all;entity dcfq isport(d,clk:in std_logic;q:out std_logic);end entity dcfq;architecture art of dcfq isbegin process(clk)isbeginif(clkevent and clk=1) thenq=d;end if;end process;end architecture art
48、;3.時鐘模塊(1)秒計數(shù)模塊library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity second isport(cp,clr:in std_logic; sqmsl,sqmsh:out std_logic_vector(3 downto 0); co:out std_logic);end second;architecture sec of second isbeginprocess(cp,clr)variable cnt1,cnt0:std_logic_vector(3 downto 0
49、);beginif clr=0 thencnt1:=0000;cnt0:=0000;elsif cpevent and cp=1 thenif cnt1=0101 and cnt0=1000 thenco=1;cnt0:=1001;elsif cnt01001 thencnt0:=cnt0+1;elsecnt0:=0000;if cnt10101 thencnt1:=cnt1+1;elsecnt1:=0000;co=0;end if;end if;end if;sqmsh=cnt1;sqmsl=cnt0;end process;end sec;(2)分計數(shù)模塊library ieee;use
50、ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity minute isport(clk,clr:in std_logic; co:out std_logic; min1,min0:out std_logic_vector(3 downto 0) );end minute;architecture min of minute isbeginprocess(clk,clr)variable cnt1,cnt0:std_logic_vector(3 downto 0);beginif clkevent and clk=1 th
51、enif clr=1 thenif cnt1=0101 and cnt0=1000 thenco=1;cnt0:=1001;elsif cnt01001 thencnt0:=cnt0+1;elsecnt0:=0000;if cnt10101 thencnt1:=cnt1+1;elsecnt1:=0000;co=0;end if;end if;end if;end if;min1=cnt1;min0=cnt0;end process;end min;(3)時計數(shù)模塊library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsign
52、ed.all;entity sh24 isport(clk:in std_logic;clr:in std_logic;sh:buffer std_logic_vector(3 downto 0);sl:buffer std_logic_vector(3 downto 0);end sh24;architecture bhv of sh24 isbeginprocess(clk,clr)beginif (clr=0)thensh=0000;sl=0000;elsif(clkevent and clk=1) thenif(sh=0010and sl=0011)thensh=0000;sl=0000;else sl=sl+1;if(sl9)then sl=sl+1;else sl=0000;if(sh2)then sh=sh+1;else sh=0000;end if;end if;end if;end if;end process;end bhv;(4)調(diào)時模塊library ieee;use ieee.std_logic_1164.all;use ieee
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年交通設(shè)備制造業(yè)數(shù)字化轉(zhuǎn)型升級政策環(huán)境分析報告
- 2025年工業(yè)互聯(lián)網(wǎng)平臺傳感器網(wǎng)絡(luò)自組網(wǎng)技術(shù)在航空航天領(lǐng)域的應(yīng)用分析
- 2025年分布式能源系統(tǒng)生物質(zhì)能源應(yīng)用中的能源互聯(lián)網(wǎng)發(fā)展優(yōu)化報告
- 2025年鄉(xiāng)村振興背景下職業(yè)技能培訓(xùn)的可持續(xù)發(fā)展策略報告
- 2025年CCS項目在能源領(lǐng)域應(yīng)用的經(jīng)濟效益與投資決策支持研究報告
- 2025年醫(yī)療美容消費者心理特點與服務(wù)質(zhì)量優(yōu)化路徑報告
- 輕工行業(yè)25W22:關(guān)稅博弈繼續(xù)漿價震蕩分化
- 施工凈化車間管理制度
- 固體廢物收集點管理制度
- 所屬分公司財務(wù)管理制度
- 2025年河北省中考麒麟卷生物(三)及答案
- 2025年河北省萬唯中考定心卷地理(二)
- 2025年高考全國二卷英語高考真題含解析
- 《植物生理學(xué)》課件第三章+植物的光合作用
- 游泳館網(wǎng)架翻新施工組織方案設(shè)計
- 有機化學(xué)所有的命名--超全.
- 引水罐的設(shè)計計算
- 三年級譯林版英語下學(xué)期按要求寫句子專項強化練習(xí)題
- 電纜接線工藝設(shè)計規(guī)范流程
- 中醫(yī)經(jīng)絡(luò)減肥課件
- 5WHY分析法培訓(xùn)
評論
0/150
提交評論