版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 基于FPGA的學(xué)校打鈴器的設(shè)計(jì)</p><p> 作 者 姓 名 </p><p> 專 業(yè) 電子信息工程 </p><p> 指導(dǎo)教師姓名 </p><p> 專業(yè)技術(shù)職務(wù) 教授
2、 </p><p><b> 目 錄</b></p><p><b> 摘 要1</b></p><p><b> 第一章 緒論3</b></p><p> 1.1 選題目的3</p><p> 1.2 課題研究內(nèi)容4<
3、/p><p> 1.2.1 FPGA的發(fā)展歷程4</p><p> 1.2.2 FPGA的優(yōu)點(diǎn)4</p><p> 1.3 器件及工具介紹5</p><p> 1.3.1 QuartusⅡ設(shè)計(jì)步驟5</p><p> 1.3.2 VHDL特點(diǎn)5</p><p> 第二章 系統(tǒng)
4、方案設(shè)計(jì)5</p><p> 2.1 設(shè)計(jì)方案分析與選擇5</p><p> 2.2 學(xué)校打鈴器總體構(gòu)成6</p><p> 2.3 分頻模塊設(shè)計(jì)7</p><p> 2.4 消抖模塊設(shè)計(jì)8</p><p> 2.5 時(shí)鐘模塊設(shè)計(jì)10</p><p> 2.5.1 秒計(jì)數(shù)
5、模塊10</p><p> 2.5.2 分計(jì)數(shù)模塊11</p><p> 2.5.3 時(shí)計(jì)數(shù)模塊12</p><p> 2.5.4 調(diào)時(shí)模塊12</p><p> 2.6 鬧鐘模塊設(shè)計(jì)13</p><p> 2.6.1 定時(shí)模塊14</p><p> 2.6.2 比較模塊
6、15</p><p> 2.7 打鈴模塊設(shè)計(jì)16</p><p> 2.8 報(bào)警模塊設(shè)計(jì)19</p><p> 2.8.1 報(bào)警時(shí)長設(shè)定模塊19</p><p> 2.8.2 蜂鳴器發(fā)聲模塊20</p><p> 2.9 顯示模塊設(shè)計(jì)21</p><p> 2.9.1 時(shí)
7、間切換模塊21</p><p> 2.9.2 動態(tài)掃描模塊23</p><p> 2.10 按鍵電路設(shè)計(jì)25</p><p> 2.11 電源電路設(shè)計(jì)26</p><p> 第三章 實(shí)驗(yàn)結(jié)果分析27</p><p> 3.1 測試過程27</p><p> 3.2 結(jié)果
8、分析29</p><p><b> 參考文獻(xiàn)31</b></p><p><b> 附 錄32</b></p><p><b> 致 謝41</b></p><p><b> 摘 要</b></p><p>
9、 打鈴器為學(xué)校上下課時(shí)間的準(zhǔn)確控制提供了很大的便利,并且在工廠、辦公室等場合也起到了提醒人們時(shí)間的作用,因此打鈴器的設(shè)計(jì)有一定的實(shí)用意義。</p><p> 本設(shè)計(jì)的學(xué)校打鈴器采用基于現(xiàn)場可編程門陣列(FPGA)的方法,底層模塊采用硬件描述語言(HDL)設(shè)計(jì),不僅能對時(shí)、分、秒正常計(jì)時(shí)和顯示,而且還可進(jìn)行鬧鈴時(shí)間的設(shè)定,上下課時(shí)間報(bào)警,報(bào)警時(shí)間可在1至15秒自由設(shè)定。系統(tǒng)主芯片采用美國Altera公司的EP3C
10、40F484I7器件,由時(shí)鐘模塊、控制模塊、鬧鐘模塊、定時(shí)模塊、數(shù)據(jù)譯碼模塊、顯示以及報(bào)時(shí)等模塊組成,由按鍵進(jìn)行時(shí)鐘的校時(shí)、清零、啟停等。本文在介紹FPGA器件的基礎(chǔ)上,著重闡述了如何使用FPGA器件進(jìn)行系統(tǒng)的開發(fā),以及如何實(shí)現(xiàn)學(xué)校打鈴系統(tǒng)。通過仿真驗(yàn)證及實(shí)際測試,打鈴器具有正常計(jì)時(shí)、定時(shí)報(bào)警、報(bào)警時(shí)長設(shè)定等功能,可為日常作息提供準(zhǔn)確、便捷的提醒。系統(tǒng)運(yùn)行穩(wěn)定,設(shè)計(jì)方法可行。</p><p> 關(guān)鍵詞:打鈴器
11、 現(xiàn)場可編程門陣列 硬件描述語言 </p><p><b> ABSTRACT</b></p><p> School Bell provides great convenience for people to control the accurate bell-time in school, and also plays an important role
12、in the work and life in factories, offices, and many other occasions. So it is of great practical significance for us. </p><p> This design is based on FPGA and the underlying module is designed by HDL. Not
13、 only can it display the right time in hour, minute and second, but the alarming time can also be setted from 1s to 15s, which rings on class time. We choose EP3C40F484I7(Altera Corp.,the USA) as the system main chip. Th
14、is system is made of five modules,including the clock module, control module, alarm clock, time decoding module, display module, data and time module,etc. You can press the keys to correct or clean the </p><p&
15、gt; Key words:alarm clock; Field Programmable Gate Array; hardware description language</p><p><b> 第一章 緒論</b></p><p><b> 1.1選題目的</b></p><p> 當(dāng)今社會,電子技術(shù)的應(yīng)
16、用無處不在,電子技術(shù)正在不斷地改變我們的生活,改變著我們的世界。在這快速發(fā)展的年代,時(shí)間對人們來說是越來越寶貴,在快節(jié)奏的生活時(shí),人們往往忘記了時(shí)間,一旦遇到重要的事情而忘記了時(shí)間,這將會帶來很大的損失。因此我們需要一個(gè)定時(shí)系統(tǒng)來提醒這些忙碌的人。數(shù)字化的時(shí)鐘給人們帶來了極大的方便。近些年,隨著科技的發(fā)展和社會的進(jìn)步,人們對時(shí)鐘的要求也越來越高,傳統(tǒng)的時(shí)鐘已不能滿足人們的需求。多功能數(shù)字鐘不管在性能還是在樣式上都發(fā)生了質(zhì)的變化,學(xué)校打鈴
17、器就是以時(shí)鐘為基礎(chǔ)的,在平時(shí)校園生活中是必不可少的工具。</p><p> 打鈴器的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地?cái)U(kuò)展了時(shí)鐘原先的報(bào)時(shí)功能。諸如定時(shí)自動報(bào)警、定時(shí)啟閉電路、定時(shí)開關(guān)烘箱、通斷動力設(shè)備,甚至各種定時(shí)電氣的自動啟用等,所有這些,都是以時(shí)鐘數(shù)字化為基礎(chǔ)的。因此,研究時(shí)鐘及擴(kuò)展應(yīng)用,有著非?,F(xiàn)實(shí)的意義。</p><p> 電鈴廣泛應(yīng)用于學(xué)校、機(jī)關(guān)及工礦企事業(yè)單
18、位,可實(shí)現(xiàn)作息時(shí)間的固定周期打鈴,提示人們工作、學(xué)習(xí)或是休息。自古以來教育就已經(jīng)成為社會生活中必不可少的一部分,隨著教育體系的逐漸完善,定時(shí)提醒上下課時(shí)間的工具也尤為重要,不僅是學(xué)校中,在工廠、辦公室等任何需要時(shí)間提醒的場合,打鈴器都擁有舉足輕重的位置,尤其是進(jìn)入現(xiàn)代化社會以后,準(zhǔn)確、方便的多功能打鈴器便具有獨(dú)特的研究意義。</p><p> 另外,打鈴器也擁有悠久的歷史,從最早的人工打鈴,到如今的電動打鈴、智
19、能打鈴,經(jīng)歷了一系列的變革,人工打鈴不僅費(fèi)時(shí)費(fèi)力,而且準(zhǔn)確性也不能保證,還可能會造成人為的誤時(shí)誤報(bào)。當(dāng)代社會飛速發(fā)展的主要標(biāo)志之一就是信息產(chǎn)品的廣泛使用,而且產(chǎn)品的性能越來越強(qiáng),復(fù)雜程度越來越高,更新步伐越來越快。支撐信息電子產(chǎn)品高速發(fā)展的基礎(chǔ)就是微電子制造工藝水平的提高和電子產(chǎn)品設(shè)計(jì)開發(fā)技術(shù)的發(fā)展。隨著技術(shù)的發(fā)展,出現(xiàn)了各種各樣的打鈴器,有些帶有音樂播放功能,可編入作息時(shí)間程序,并且能同時(shí)控制路燈、廣播等其他電器,無線音樂打鈴器無需施
20、工布線,降低了安裝成本,還可以根據(jù)使用需要隨時(shí)移動音樂電鈴的位置,無線遙控的距離可達(dá)500米,成為學(xué)校、部隊(duì)、工廠等部門的打鈴控制新寵,十分簡潔、便捷。</p><p> 如今電子產(chǎn)品正向功能多元化,體積最小化,功耗最低化的方向發(fā)展。它與傳統(tǒng)的電子產(chǎn)品在設(shè)計(jì)上的顯著區(qū)別是大量使用大規(guī)??删幊踢壿嬈骷?,使產(chǎn)品的性能提高,體積縮小,功耗降低,同時(shí)廣泛運(yùn)用現(xiàn)代計(jì)算機(jī)技術(shù),提高產(chǎn)品的自動化程度和競爭力,縮短研發(fā)周期[1
21、]。EDA技術(shù)正是為了適應(yīng)現(xiàn)代電子技術(shù)的要求,吸收眾多學(xué)科最新科技成果而形成的一門新技術(shù)。</p><p> 本設(shè)計(jì)將借助EDA技術(shù),完成基于FPGA器件的學(xué)校打鈴器的設(shè)計(jì)。EDA技術(shù)的發(fā)展經(jīng)歷了一個(gè)由淺到深的過程,先后經(jīng)歷了CAD、CAE和現(xiàn)代意義上的EDA三個(gè)階段。在可編程邏輯器件(PLD)內(nèi)部,數(shù)字電路可用硬件描述語言可以進(jìn)行方便的描述,經(jīng)過生成元件后可作為一個(gè)標(biāo)準(zhǔn)元件進(jìn)行調(diào)用。同時(shí),借助于開發(fā)設(shè)計(jì)平臺,
22、可以進(jìn)行系統(tǒng)的仿真和硬件測試等。</p><p> 對于數(shù)字電子技術(shù)實(shí)驗(yàn)和課程設(shè)計(jì)等,特別是數(shù)字系統(tǒng)性的課題,借助PLD器件和硬件描述語言等開發(fā)手段,即可設(shè)計(jì)出各種比較復(fù)雜的數(shù)字系統(tǒng),如設(shè)計(jì)頻率計(jì)、交通控制燈、秒表等,有助于實(shí)驗(yàn)質(zhì)量的提高和對學(xué)生綜合能力的鍛煉。同時(shí),作為電子信息工程專業(yè)的學(xué)生,EDA技術(shù)應(yīng)用于畢業(yè)設(shè)計(jì)中,可快速、經(jīng)濟(jì)地設(shè)計(jì)各種高性能的電子系統(tǒng),并且很容易實(shí)現(xiàn)、修改及完善。</p>
23、<p><b> 1.2課題研究內(nèi)容</b></p><p> 隨著社會的發(fā)展,科技水平的日益提高,很多高新技術(shù)都應(yīng)用于電子設(shè)計(jì)產(chǎn)品的設(shè)計(jì)中,比如,本設(shè)計(jì)中的學(xué)校打鈴器就應(yīng)用了FPGA技術(shù),不僅能夠非常準(zhǔn)確的設(shè)定響鈴時(shí)間,而且能直觀地顯示時(shí)、分、秒等信息,為人們的使用帶來了很大的方便。</p><p> 本課題是基于FPGA的學(xué)校打鈴器的設(shè)計(jì),下面簡
24、要介紹現(xiàn)場可編程門陣列(FPGA)的發(fā)展歷程及其優(yōu)點(diǎn)。</p><p> 1.2.1 FPGA的發(fā)展歷程</p><p> 作為一種可編程邏輯器件,現(xiàn)場可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)的出現(xiàn)是PLD發(fā)展變化的必然,他的出現(xiàn)推動著可編程邏輯器件的進(jìn)一步發(fā)展。因此說,了解了可編程邏輯器件的發(fā)展歷程,也就了解了FPGA的發(fā)展歷程。</
25、p><p> PLD是20世紀(jì)70年代發(fā)展起來的一種新型器。它的應(yīng)用不僅簡化了電路設(shè)計(jì),降低了成本,提高了系統(tǒng)的可靠性,而且給數(shù)字系統(tǒng)的設(shè)計(jì)方式帶來了革命性的變化,其結(jié)構(gòu)和工藝的變化經(jīng)歷了一個(gè)不斷發(fā)展的過程。20世紀(jì)70年代,早期的可編程邏輯器件只有可編程只讀存儲器(PROM)、紫外線可擦除只讀存儲器(EPROM)和電可擦除只讀存儲器(EEPROM)3種。隨后,出現(xiàn)了一類結(jié)構(gòu)稍微復(fù)雜的可編程芯片,即可編程邏輯陣列(
26、Programmable Logic Array,PLA)。PLA在結(jié)構(gòu)上由一個(gè)可編程的與陣列和可編程的或陣列構(gòu)成,陣列規(guī)模小,編程過程復(fù)雜繁瑣。PLA既有現(xiàn)場可編程的,又有掩膜可編程的[2]。</p><p> 如今,F(xiàn)PGA期間已經(jīng)成為當(dāng)前主流的可編程邏輯器件之一。經(jīng)過20年的發(fā)展,可編程邏輯器件已經(jīng)取得了長足的進(jìn)步,資源更加豐富,使用越來越方便。將來的可編程邏輯器件,密度會更高,速度會更快,功耗會更低,同
27、時(shí)還會增加更多的功能,向著繼承了可編程邏輯、CPU、存儲器等組件的可編程單片系統(tǒng)(System On Programmable Chip,SOPC)方向發(fā)展。</p><p> 1.2.2 FPGA的優(yōu)點(diǎn)</p><p> 概括地說,F(xiàn)PGA器件具有下列優(yōu)點(diǎn):高密度、高速度、系列化、標(biāo)準(zhǔn)化、小型化、多功能、低功耗、低成本,設(shè)計(jì)靈活方便,可無限次反復(fù)編程,并可現(xiàn)場模擬調(diào)試驗(yàn)證。使用FPG
28、A器件,一般可在幾天到幾周內(nèi)完成一個(gè)電子系統(tǒng)的設(shè)計(jì)和制作,可以縮短研制周期,達(dá)到快速上市和進(jìn)一步降低成本的要求。用FPGA器件實(shí)現(xiàn)數(shù)字系統(tǒng)時(shí)用的芯片數(shù)量少,從而減少芯片的使用數(shù)目,減少印刷線路板面積和印刷線路板數(shù)目,最終導(dǎo)致系統(tǒng)規(guī)模的全面縮減[3]。</p><p> 1.3器件及工具介紹</p><p> 1.3.1 QuartusⅡ設(shè)計(jì)步驟</p><p>
29、 Quartus II 是Altera公司的綜合性PLD開發(fā)軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多種設(shè)計(jì)輸入形式。內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整PLD設(shè)計(jì)流程[4]。</p><p> 其設(shè)計(jì)流程包括設(shè)計(jì)輸入、編譯、仿真與定時(shí)分析、編程與驗(yàn)證。設(shè)計(jì)輸入包括原理圖輸入、HDL 文
30、本輸入、EDIF 網(wǎng)表輸入、波形輸入等幾種方式。編譯時(shí)要根據(jù)設(shè)計(jì)要求設(shè)定編譯方式和編譯策略,然后根據(jù)設(shè)定的參數(shù)和策略對設(shè)計(jì)項(xiàng)目進(jìn)行網(wǎng)表提取、邏輯綜合、器件適配,供分析、仿真和編程使用。設(shè)計(jì)完成后需要進(jìn)行仿真,可以測試設(shè)計(jì)的邏輯功能和延時(shí)特性。最后可以用得到的編程文件通過編程電纜配置PLD,進(jìn)行在線測試。在設(shè)計(jì)過程中,如果出現(xiàn)錯(cuò)誤,則需重新回到設(shè)計(jì)輸入階段,改正錯(cuò)誤或調(diào)整電路后重新測試。</p><p> 1.3
31、.2 VHDL特點(diǎn)</p><p> 硬件描述語言HDL(HardwareDescriptionLanguage)誕生于1962年。與SDL(SoftwareDescriptionLanguage)相似,經(jīng)歷了從機(jī)器碼(晶體管和焊接)、匯編(網(wǎng)表)、到高級語言(HDL)的過程[5]。HDL是用形式化的方法描述數(shù)字電路和設(shè)計(jì)數(shù)字邏輯系統(tǒng)的語言。主要用于描述離散電子系統(tǒng)的結(jié)構(gòu)和行為。</p><
32、p> HDL和原理圖是兩種最常用的數(shù)字硬件電路描述方法,HDL 設(shè)計(jì)法具有更好的可移植性、通用性和模塊劃分與重用性的特點(diǎn),在目前的工程設(shè)計(jì)開發(fā)流程是基于 HDL 的[6]。在目前的工程設(shè)計(jì)中被廣泛使用。所以,我們在使用 FPGA 設(shè)計(jì)數(shù)字電路時(shí),其開發(fā)流程是基于HDL的。</p><p> VHDL描述數(shù)字電路系統(tǒng)設(shè)計(jì)的行為、功能、輸入和輸出。它在語法上與現(xiàn)代編程語言相似,比如C語言。應(yīng)用VHDL進(jìn)行系
33、統(tǒng)設(shè)計(jì),有以下幾方面的特點(diǎn):功能強(qiáng)大、可移植性、獨(dú)立性、可操作性、靈活性。</p><p> 第二章 系統(tǒng)方案設(shè)計(jì)</p><p> 2.1設(shè)計(jì)方案分析與選擇</p><p> 方案一:采用通用數(shù)字器件來設(shè)計(jì)。比如,打鈴器結(jié)構(gòu)組成中最基本的是數(shù)字鐘。數(shù)字鐘實(shí)際上是一個(gè)對標(biāo)準(zhǔn)頻率(1HZ)進(jìn)行計(jì)數(shù)的計(jì)數(shù)電路。由于計(jì)數(shù)的起始時(shí)間不可能與標(biāo)準(zhǔn)時(shí)間(如北京時(shí)間)一致
34、,故需要在電路上加一個(gè)校時(shí)電路,同時(shí)標(biāo)準(zhǔn)的1HZ時(shí)間信號必須做到準(zhǔn)確穩(wěn)定。采用此方法設(shè)計(jì)數(shù)字鐘通常使用石英晶體振蕩器電路構(gòu)成數(shù)字鐘?;诖嗽O(shè)計(jì)方案的數(shù)字鐘部分結(jié)構(gòu)組成如圖2-1所示。</p><p> 圖2-1 數(shù)字鐘部分結(jié)構(gòu)組成</p><p> 方案二:采用基于FPGA的EDA技術(shù)來設(shè)計(jì)。打鈴器結(jié)構(gòu)組成中的數(shù)字部分可全部在FPGA內(nèi)部完成,底層模塊可以采用HDL語言或者軟件中的庫元
35、件。這種設(shè)計(jì)方法可使得系統(tǒng)的集成度提高,抗干擾能力也相應(yīng)提高。</p><p> 綜合分析和比較方案一和二,方案二中利用EDA技術(shù)設(shè)計(jì)學(xué)校打鈴器相對設(shè)計(jì)方式靈活,系統(tǒng)連線簡單并易于校驗(yàn),修改及完善也相對便捷,可以避免方案一中所用的芯片比較多,連線過于麻煩的問題。因此,本設(shè)計(jì)總體設(shè)計(jì)方案采用基于EDA技術(shù)的方法。</p><p> 2.2學(xué)校打鈴器總體構(gòu)成</p><
36、p> 本設(shè)計(jì)內(nèi)容為基于FPGA的學(xué)校打鈴器,控制器底層模塊采用硬件描述語言設(shè)計(jì),頂層模塊設(shè)計(jì)方法采用原理圖方式;打鈴器具有計(jì)時(shí)功能,能對時(shí)、分、秒正常計(jì)時(shí)和顯示;又具有定時(shí)打鈴功能,當(dāng)設(shè)定的打鈴時(shí)間與學(xué)校上下課時(shí)間點(diǎn)相同時(shí)打鈴;并且計(jì)時(shí)時(shí)間、定時(shí)時(shí)間、打鈴時(shí)長(1S~15S內(nèi))自由設(shè)置和調(diào)整,其數(shù)據(jù)信息通過數(shù)碼管或LCD顯示。學(xué)校打鈴器總體設(shè)計(jì)框圖如圖2-2所示。</p><p> 振蕩器產(chǎn)生穩(wěn)定的高頻
37、脈沖信號,作為數(shù)字鐘的時(shí)間基準(zhǔn),然后經(jīng)過分頻器輸出標(biāo)準(zhǔn)秒脈沖。秒計(jì)數(shù)器滿60后向分計(jì)數(shù)器進(jìn)位,分計(jì)數(shù)器滿60后向小時(shí)計(jì)數(shù)器進(jìn)位,小時(shí)計(jì)數(shù)器按照“24翻1”規(guī)律計(jì)數(shù)。計(jì)滿后各計(jì)數(shù)器清零,重新計(jì)數(shù)。計(jì)數(shù)器的輸出分別經(jīng)譯碼器送數(shù)碼管顯示。在控制信號中除了一般的校時(shí)信號外,還有時(shí)鐘清零信號。時(shí)基電路可以由石英晶體振蕩電路構(gòu)成,晶振頻率為25MHz,經(jīng)過分頻可得到秒脈沖信號。譯碼顯示電路由七段譯碼器完成,顯示由數(shù)碼管構(gòu)成。</p>
38、<p> 圖2-2 學(xué)校打鈴器總體設(shè)計(jì)框圖</p><p><b> 2.3分頻模塊設(shè)計(jì)</b></p><p> 晶體振蕩器是構(gòu)成數(shù)字時(shí)鐘的核心,振蕩器的穩(wěn)定度及頻率的精度決定了數(shù)字鐘計(jì)時(shí)的準(zhǔn)確程度,它保證了時(shí)鐘的走時(shí)準(zhǔn)確及穩(wěn)定。石英晶體的選頻特性非常好,只有某一頻率點(diǎn)的信號可以通過它,其它頻率段的信號均會被它所衰減,而且振蕩信號的頻率與振蕩電路中的
39、R、C元件的數(shù)值無關(guān)[7]。因此,這種振蕩電路輸出的是準(zhǔn)確度極高的信號。本設(shè)計(jì)FPGA外部使用的是25MHz晶振,在其內(nèi)部再根據(jù)需要進(jìn)行分頻。</p><p> 如圖2-3所示為分頻模塊連接圖。分頻模塊由25k分頻、200分頻、5分頻、50k分頻、250分頻組成。其中25k分頻的輸出作為按鍵消抖模塊的輸入時(shí)鐘信號,其頻率為1kHz;200分頻的輸出作為計(jì)時(shí)模塊調(diào)分模塊的時(shí)鐘輸入,其頻率為5Hz,周期為0.2s;
40、5分頻的輸出作為計(jì)時(shí)模塊中秒計(jì)時(shí)的輸入,為1Hz頻率的1s時(shí)鐘信號;50k分頻的輸出作為動態(tài)掃描模塊的輸入時(shí)鐘,其頻率為500Hz;250分頻的輸出作為計(jì)時(shí)模塊調(diào)時(shí)模塊的輸入時(shí)鐘,其頻率為2Hz,周期為0.5s。</p><p> 圖2-3 分頻模塊連接圖</p><p> 現(xiàn)以5分頻為例進(jìn)行仿真,當(dāng)時(shí)鐘到第五個(gè)上升沿時(shí),輸出由“0”變?yōu)椤?”,下降沿時(shí)又由“1”變?yōu)椤?”,產(chǎn)生一個(gè)脈
41、沖。滿足設(shè)計(jì)要求。如圖2-4、2-5所示分別為分頻模塊仿真圖及其RTL圖。</p><p> 圖2-4 分頻模塊仿真圖</p><p> 圖2-5 分頻模塊RTL圖</p><p><b> 2.4消抖模塊設(shè)計(jì)</b></p><p> 按鍵開關(guān)電子設(shè)備實(shí)現(xiàn)人機(jī)對話的重要的器件之一[8]。由于大部分按鍵式機(jī)械觸點(diǎn)
42、,在觸點(diǎn)閉合和斷開時(shí)都會產(chǎn)生抖動,為避免抖動引起的誤動作造成系統(tǒng)的不穩(wěn)定,就要求消除按鍵的抖動,確保按鍵每按一次只做一次響應(yīng)。</p><p> 絕大多數(shù)按鍵都是機(jī)械式開關(guān)結(jié)構(gòu),由于機(jī)械式開關(guān)的核心部件為彈性金屬簧片,因而在開關(guān)切換的瞬間會在接觸點(diǎn)出現(xiàn)來回彈跳的現(xiàn)象,雖然只是進(jìn)行了一次按鍵,結(jié)果在按鍵信號穩(wěn)定的前后出現(xiàn)了多個(gè)脈沖[9]。如果將這樣的信號直接送給微處理器掃描采集的話,將可能把按鍵穩(wěn)定前后出現(xiàn)的脈沖
43、信號當(dāng)做按鍵信號,這就出現(xiàn)人為的一次按鍵但微處理器以為多次按鍵的現(xiàn)象。機(jī)械式按鍵的抖動次數(shù)、抖動時(shí)間、抖動波形都是隨機(jī)的,不同類型的按鍵其最長抖動時(shí)間也有差別,抖動時(shí)間的長短和按鍵的機(jī)械特征有關(guān),一般為5~10ms,但是,有些按鍵的抖動時(shí)間可達(dá)到20ms,甚至更長。</p><p> 在本設(shè)計(jì)初期完成后,下載程序測試時(shí),撥動按鍵或者按下按鍵時(shí)顯示出現(xiàn)異常,這就需要加入按鍵消抖模塊。按鍵消抖模塊一般有硬件和軟件兩
44、種方式,硬件就是加入去抖動電路,這樣從根本上解決了按鍵抖動問題,除了專用電路以外,還可用編程FPGA或者CPLD設(shè)計(jì)相應(yīng)的邏輯和時(shí)序電路,對按鍵信號進(jìn)行處理,同樣可以達(dá)到去抖動的目的,本次設(shè)計(jì)中采用硬件模塊消抖動方式。</p><p> 模塊的實(shí)現(xiàn)方法是先判斷是否有按鍵按下,如有按鍵按下則延時(shí)一段時(shí)間,待抖動過去之后再讀行線狀態(tài),如果仍有低電平行線,則確定有按鍵按下,然后產(chǎn)生一個(gè)有按鍵按下的信號。該模塊有一個(gè)時(shí)
45、鐘輸入端口,輸入時(shí)鐘信號是分頻出來的1kHZ的時(shí)鐘;有一個(gè)輸入端口與按鍵端相連;一個(gè)輸出端口,用于輸出有按鍵按下的信號。如圖2-6所示為消抖模塊符號圖。</p><p> 圖2-6 消抖模塊符號圖</p><p> 本設(shè)計(jì)的按鍵消抖模塊內(nèi)部電路相當(dāng)于一個(gè)D觸發(fā)器,如圖2-7所示為消抖模塊RTL圖。</p><p> 圖2-7 消抖模塊RTL圖</p>
46、;<p> 該模塊在這里實(shí)現(xiàn)的比較簡單,原理是當(dāng)有按鍵按下的時(shí)候,d會變成高電平,當(dāng)有時(shí)鐘上升沿到來且按鍵按下時(shí),q輸出高電平。由于時(shí)鐘脈沖為1kHZ,故從有按鍵按下到輸入信號產(chǎn)生大概需要1ms。而按鍵產(chǎn)生抖動的時(shí)間大約2ms到10ms,所以一旦計(jì)數(shù)完成,抖動已經(jīng)過去,不會發(fā)生重鍵現(xiàn)象了,這樣就去除了抖動。如圖2-8所示為按鍵消抖模塊波形仿真圖。</p><p> 圖2-8消抖模塊波形仿真<
47、;/p><p><b> 2.5時(shí)鐘模塊設(shè)計(jì)</b></p><p> 時(shí)鐘模塊是學(xué)校打鈴器最基本的模塊,主要實(shí)現(xiàn)基本計(jì)時(shí)、調(diào)時(shí)、調(diào)分功能,包括秒計(jì)數(shù)模塊、分計(jì)數(shù)模塊、時(shí)計(jì)數(shù)模塊和調(diào)時(shí)模塊。</p><p> 2.5.1秒計(jì)數(shù)模塊</p><p> 如圖2-9所示為秒計(jì)數(shù)模塊符號圖。輸入端口clr是秒計(jì)數(shù)模塊的清零信
48、號,也是整個(gè)數(shù)字中的使能信號,低電平有效; cp是秒脈沖輸入端口,外接分頻模塊頻率為1Hz的時(shí)鐘信號;輸出端口sqmsl[3..0]是秒時(shí)鐘的低位,sqmsh[3..0]是高位;co端口是進(jìn)位輸出端口,當(dāng)秒計(jì)數(shù)到59時(shí)輸出高電平,其它時(shí)候輸出低電平。</p><p> 圖2-9 秒計(jì)數(shù)模塊符號圖</p><p> 如圖2-10、2-11所示分別為秒計(jì)數(shù)模塊RTL圖及波形仿真圖。由圖可以
49、看出,隨著1s時(shí)鐘脈沖上升沿的到來,每來一次秒計(jì)數(shù)的低位就產(chǎn)生一個(gè)脈沖,當(dāng)計(jì)到9時(shí)變?yōu)?,秒計(jì)數(shù)的高位變?yōu)?,當(dāng)?shù)臀粸?,高位為5時(shí),也就是計(jì)到59時(shí),高、低位都變?yōu)?,且輸出co產(chǎn)生一個(gè)脈沖信號,由仿真圖可知滿足設(shè)計(jì)的要求。</p><p> 圖2-10 秒計(jì)數(shù)模塊RTL圖</p><p> 圖2-11 秒計(jì)數(shù)模塊波形仿真圖</p><p> 2.5.2分計(jì)
50、數(shù)模塊</p><p> 如圖2-12、2-13所示為分計(jì)數(shù)模塊符號圖及RTL圖。輸入端口clr是分計(jì)數(shù)模塊的清零信號,也是整個(gè)數(shù)字中的使能信號,低電平有效; clk是秒脈沖輸入端口輸出端口;min0[3..0]是分計(jì)時(shí)的低位,min1[3..0]是分計(jì)時(shí)的高位;co端口是進(jìn)位輸出端口,接時(shí)計(jì)數(shù)的clk作為時(shí)鐘輸入,當(dāng)秒計(jì)數(shù)到59時(shí)輸出高電平,其它時(shí)候輸出低電平。</p><p> 圖
51、2-12 分計(jì)數(shù)模塊符號圖</p><p> 圖2-13 分計(jì)數(shù)模塊RTL圖</p><p> 如圖2-14所示為分計(jì)數(shù)模塊波形仿真圖。給clk一定時(shí)鐘信號之后,clr高電平清零無效,每次達(dá)到時(shí)鐘脈沖上升沿時(shí),分計(jì)數(shù)低位min0計(jì)一個(gè)數(shù),計(jì)到9時(shí)向高位進(jìn)位,當(dāng)計(jì)到59時(shí),模塊進(jìn)位輸出co產(chǎn)生一個(gè)脈沖信號,由仿真圖可知此模塊設(shè)計(jì)滿足設(shè)計(jì)要求。</p><p>
52、圖2-14 分計(jì)數(shù)模塊波形仿真圖</p><p> 2.5.3時(shí)計(jì)數(shù)模塊</p><p> 圖2-15 時(shí)計(jì)數(shù)模塊符號圖</p><p> 如圖2-15所示為時(shí)計(jì)數(shù)模塊符號圖。輸入端口clr是時(shí)計(jì)數(shù)模塊的清零信號,也是整個(gè)數(shù)字中的使能信號,低電平有效; clk是秒脈沖輸入端口輸出端口;sl[3..0]是分計(jì)時(shí)的低位,sh[3..0]是分計(jì)時(shí)的高位。</p
53、><p> 圖2-16 時(shí)計(jì)數(shù)模塊波形仿真圖</p><p> 時(shí)計(jì)數(shù)模塊波形仿真圖如圖2-16所示。clk接分計(jì)時(shí)模塊的僅為輸出,給定時(shí)鐘信號,clr高電平清零無效,每次達(dá)到時(shí)鐘脈沖上升沿時(shí),時(shí)計(jì)數(shù)低位sl計(jì)一個(gè)數(shù),計(jì)到9時(shí)向高位進(jìn)位,當(dāng)計(jì)到24時(shí),高、低都變?yōu)榱悖?jì)數(shù)重新開始,由仿真圖可知此模塊設(shè)計(jì)滿足設(shè)計(jì)要求。</p><p><b> 2.5.4
54、調(diào)時(shí)模塊</b></p><p> 圖2-17 調(diào)時(shí)模塊符號圖</p><p> 如圖2-17所示為調(diào)時(shí)模塊符號圖。本設(shè)計(jì)的調(diào)時(shí)模塊類似于二選一數(shù)據(jù)選擇器,輸入端口key是調(diào)時(shí)模塊的調(diào)時(shí)開關(guān),當(dāng)為高電平是輸出a的數(shù)據(jù),當(dāng)為低電平時(shí)輸出b的數(shù)據(jù);a端接上一個(gè)計(jì)時(shí)模塊的進(jìn)位輸出;b端接分頻器的輸出時(shí)鐘脈沖;c為模塊的輸出,作為計(jì)時(shí)模塊的輸入時(shí)鐘。由此可知當(dāng)key為低電平時(shí)可進(jìn)行
55、調(diào)時(shí)、調(diào)分。</p><p> 圖2-18 調(diào)時(shí)模塊波形仿真圖</p><p> 如圖2-18所示為調(diào)時(shí)模塊波形仿真圖。當(dāng)key為低電平時(shí),調(diào)時(shí)模塊輸出b的脈沖;當(dāng)key為高電平時(shí),輸出a的脈沖。由此可知,本模塊滿足設(shè)計(jì)要求。</p><p><b> 2.6鬧鐘模塊設(shè)計(jì)</b></p><p> 圖2-19 鬧
56、鐘模塊總體設(shè)計(jì)框圖</p><p> 如圖2-19所示為鬧鐘模塊總體設(shè)計(jì)框圖。本模塊主要由定時(shí)模塊、比較模塊組成,另外還有正常計(jì)時(shí)時(shí)間和定時(shí)時(shí)間輸出選擇切換模塊,連接基本數(shù)字鐘模塊的時(shí)、分、秒輸出,以及定時(shí)時(shí)間的時(shí)、分輸出,另一端連接動態(tài)顯示模塊,通過外部按鍵來選擇基本時(shí)鐘或者是鬧鐘時(shí)間設(shè)定的顯示。定時(shí)控制模塊有復(fù)位鍵、調(diào)時(shí)調(diào)分切換鍵、累加鍵,來設(shè)定鬧鐘時(shí)間。</p><p><b
57、> 2.6.1定時(shí)模塊</b></p><p> 如圖2-20、2-21所示分別為定時(shí)模塊符號圖及RTL圖。輸入端口reset是定時(shí)模塊的復(fù)位信號,也是整個(gè)打鈴器的使能信號,低電平有效; k1是鬧鐘時(shí)間設(shè)定時(shí)、分切換按鍵,高電平時(shí)對時(shí)進(jìn)行調(diào)節(jié),低電平時(shí)對分進(jìn)行調(diào)節(jié);up_key是調(diào)整鬧鐘時(shí)間的累加按鍵,另一端接按鍵消抖模塊,每按一次計(jì)數(shù)加一;Q_tmpma、Q_tmpmb、Q_tmpha、Q
58、_tmphb分別為鬧鐘時(shí)間的分低位、分高位、時(shí)低位時(shí)高位。</p><p> 圖2-20 定時(shí)模塊符號圖</p><p> 圖2-21 定時(shí)模塊RTL圖</p><p> 如圖2-22所示為定時(shí)模塊波形仿真圖。當(dāng)復(fù)位鍵為高電平、k1為低電平時(shí),每按下一次up_key鬧鐘分低位就計(jì)一個(gè)數(shù),計(jì)到9時(shí)向高位進(jìn)一,當(dāng)計(jì)到59時(shí)重新從0開始計(jì)數(shù);當(dāng)復(fù)位鍵為高電平、k1為
59、高電平時(shí),開始對時(shí)計(jì)數(shù),up_key每來一個(gè)脈沖時(shí)低位就計(jì)一個(gè)數(shù),計(jì)到9時(shí)變?yōu)?,高位進(jìn)位,計(jì)到23時(shí)重新計(jì)數(shù),由波形仿真克制此模塊滿足設(shè)計(jì)要求。</p><p> 圖2-22 定時(shí)模塊波形仿真圖</p><p><b> 2.6.2比較模塊</b></p><p> 如圖2-23所示為比較模塊設(shè)計(jì)框圖。設(shè)計(jì)思路為:將鬧鐘設(shè)定的時(shí)間與及時(shí)
60、模塊的時(shí)間分別比較,即時(shí)高位、時(shí)低位、分高位、分低位分別進(jìn)行比較,若時(shí)間相等,則輸出高電平,輸出信號與1Hz時(shí)鐘信號相與,獲得的信號接蜂鳴器,可實(shí)現(xiàn)時(shí)隔一秒報(bào)警一次,報(bào)警時(shí)長為一秒。</p><p> 圖2-23 比較模塊設(shè)計(jì)框圖</p><p> 如圖2-24所示為比較模塊符號圖。Clk0為比較模塊的時(shí)鐘,接200分頻器輸出的1Hz時(shí)鐘信號;QH_B[3..0]為時(shí)鐘的時(shí)高位,QH_
61、A[3..0]為時(shí)鐘的時(shí)低位,QMB[3..0]為時(shí)鐘的分高位,QM_A[3..0]為時(shí)鐘的分低位;HARM_B[3..0]為鬧鐘時(shí)間的時(shí)高位,HARM_A[3..0]為鬧鐘時(shí)間的時(shí)低位,MARM_B[3..0]為鬧鐘時(shí)間的分高位,MARM_A[3..0]為鬧鐘時(shí)間的分低位;SPEAK為比較模塊的輸出,接報(bào)警時(shí)長設(shè)定模塊的輸入。</p><p> 圖2-24 比較模塊符號圖</p><p&g
62、t; 如圖2-25所示為比較模塊波形仿真圖。給clk0一定時(shí)鐘,設(shè)定鬧鐘時(shí)間時(shí)高位為1,時(shí)低位為2,分高位、分低位都為0,即鬧鐘時(shí)間為十二點(diǎn)整,;首先設(shè)定時(shí)鐘模塊的時(shí)高位設(shè)定為1,時(shí)低位為1,分高位為5,分低位為9,即十一點(diǎn)五十九分,再設(shè)定為十二點(diǎn)整;由波形仿真圖可知,當(dāng)時(shí)鐘時(shí)間由十一點(diǎn)五十九分變?yōu)槭c(diǎn)整時(shí),speak輸出時(shí)鐘波形,可知比較模塊的設(shè)計(jì)滿足要求。</p><p> 圖2-25 比較模塊波形仿真
63、圖</p><p><b> 2.7打鈴模塊設(shè)計(jì)</b></p><p> 如表2-1所示為學(xué)校作息時(shí)間。學(xué)校作息時(shí)間分為春季和夏季之分,上課下課時(shí)間共包括46個(gè)時(shí)間點(diǎn),將此寫入程序中,當(dāng)時(shí)鐘時(shí)間與這些時(shí)間相同時(shí),輸出高電平,與時(shí)鐘信號相與,作為報(bào)警模塊的輸入。</p><p> 表2-1 學(xué)校作息時(shí)間</p><p&
64、gt; 圖2-26 打鈴模塊設(shè)計(jì)框圖</p><p> 如圖2-26所示為打鈴模塊設(shè)計(jì)框圖。模塊包括作息選擇和時(shí)間比較部分,其設(shè)計(jì)思路為:通過k3進(jìn)行春夏作息時(shí)間選擇,將時(shí)鐘的時(shí)高位、時(shí)低位、分高位、分低位分別于表2.1中的打鈴時(shí)間數(shù)據(jù)進(jìn)行比較,若相等,則Q_Y輸出高電平,否則輸出低電平。</p><p> 圖2-27 打鈴模塊符號圖</p><p> 如圖
65、2-27所示為打鈴模塊符號圖。K3為切換春夏作息時(shí)間的按鍵,當(dāng)K3為高電平時(shí)選擇春季作息時(shí)間,方為低電平時(shí)選擇夏季作息時(shí)間;Q_HB[3..0]接時(shí)鐘時(shí)間的時(shí)高位,Q_HA[3..0]接時(shí)鐘時(shí)間的時(shí)低位,Q_MB[3..0]接時(shí)鐘時(shí)間的分高位,Q_MA[3..0]接時(shí)鐘時(shí)間的時(shí)低位;Q_Y為打鈴模塊的輸出,接報(bào)警模塊的輸入。</p><p> 圖2-28 打鈴模塊波形仿真圖</p><p&g
66、t; 如圖2-28所示為打鈴模塊波形仿真圖。可以看出:當(dāng)K3為高電平時(shí),選擇春季作息時(shí)間,當(dāng)時(shí)鐘時(shí)間由八點(diǎn)二十九分跳變?yōu)榘它c(diǎn)三十分時(shí),Q_Y由低電平變?yōu)楦唠娖剑藶榇杭咀飨r(shí)間上午的的八點(diǎn)三十分;當(dāng)K3為低電平時(shí),選擇夏季作息時(shí)間,當(dāng)時(shí)鐘時(shí)間由八點(diǎn)二十九分跳變?yōu)榘它c(diǎn)三十分時(shí),Q_Y由低電平變?yōu)楦唠娖?,此為夏季作息時(shí)間上午的八點(diǎn)三十分;當(dāng)K3為高電平時(shí),選擇春季作息時(shí)間,當(dāng)時(shí)鐘時(shí)間由十三點(diǎn)二十九分跳變?yōu)槭c(diǎn)三十分時(shí),Q_Y由低電平變?yōu)?/p>
67、高電平,此為春季作息時(shí)間下午的十三點(diǎn)三十分;當(dāng)K3為低電平時(shí),選擇夏季作息時(shí)間,當(dāng)時(shí)鐘時(shí)間由十三點(diǎn)五十九分跳變?yōu)槭狞c(diǎn)整時(shí),Q_Y由低電平變?yōu)楦唠娖?,此為夏季作息時(shí)間下午的十四點(diǎn)整。由此可知打鈴模塊滿足設(shè)計(jì)要求。</p><p><b> 2.8報(bào)警模塊設(shè)計(jì)</b></p><p> 報(bào)警模塊主要包括報(bào)警時(shí)長設(shè)定模塊和蜂鳴器發(fā)生模塊,實(shí)現(xiàn)學(xué)校作息時(shí)間報(bào)時(shí)和鬧鐘報(bào)警
68、的功能。</p><p> 2.8.1報(bào)警時(shí)長設(shè)定模塊</p><p> 如圖2-29、2-30所示分別為報(bào)警時(shí)長設(shè)定模塊符號圖和RTL圖。其中Reset為復(fù)位端,低電平有效;up_key為調(diào)節(jié)報(bào)警時(shí)間的按鍵,時(shí)長可從一秒調(diào)至十五秒,連接按鍵模塊;speaktime[3..0]為報(bào)警時(shí)長的輸出,連接蜂鳴器發(fā)生模塊的輸入端。</p><p> 圖2-29 報(bào)警時(shí)
69、長設(shè)定模塊符號圖</p><p> 圖2-30 報(bào)警時(shí)長設(shè)定模塊RTL圖</p><p> 如圖2-31所示為報(bào)警時(shí)長設(shè)定模塊波形仿真圖。復(fù)位按鍵reset設(shè)為高電平,給up_key一定脈沖時(shí)鐘,沒到達(dá)一次脈沖上升沿,speaktime就加一,當(dāng)計(jì)到15時(shí)重新從0開始,實(shí)現(xiàn)了報(bào)警時(shí)長在1至15秒內(nèi)自由設(shè)定的要求。</p><p> 圖2-31 報(bào)警時(shí)長設(shè)定模塊
70、波形仿真圖</p><p> 2.8.2蜂鳴器發(fā)聲模塊</p><p> 如圖2-32所示為蜂鳴器電路。本設(shè)計(jì)需用兩個(gè)蜂鳴器,一個(gè)蜂鳴器用于學(xué)校作息時(shí)間報(bào)時(shí),另外一個(gè)蜂鳴器用于鬧鐘報(bào)警。</p><p> 圖2-32 蜂鳴器電路</p><p> 如圖2-33,2-34所示為蜂鳴器發(fā)聲模塊符號圖和RTL圖。QY接比較模塊的輸出,相當(dāng)于
71、蜂鳴器發(fā)生模塊的使能信號;CLK接1Hz的時(shí)鐘模塊,報(bào)警可實(shí)現(xiàn)每一秒響一下;speaktime[3..0]接報(bào)警時(shí)長設(shè)定模塊的輸出,為報(bào)警持續(xù)的時(shí)間長度,范圍在一秒至十五秒以內(nèi);q_20s為蜂鳴器發(fā)聲模塊的輸出,接蜂鳴器的負(fù)極。</p><p> 圖2-33 蜂鳴器發(fā)聲模塊符號圖</p><p> 圖2-34 蜂鳴器發(fā)聲模塊RTL圖</p><p> 如圖2-
72、35所示為蜂鳴器發(fā)聲模塊波形仿真圖。給clk接入一定脈沖,speaktime為一秒,當(dāng)Q_Y為高電平時(shí),伴隨時(shí)鐘脈沖下一個(gè)周期的到來,q_20s由低電平變?yōu)楦唠娖?,高電平持續(xù)時(shí)間與時(shí)鐘脈沖的一個(gè)周期相等,實(shí)際測試時(shí),時(shí)鐘脈沖為1Hz的秒信號,所以報(bào)警時(shí)長為1s;當(dāng)設(shè)定speaktime為15秒時(shí),q_20s伴隨時(shí)鐘脈沖下一個(gè)周期的到來,由低電平變?yōu)楦唠娖?,持續(xù)時(shí)間與時(shí)鐘脈沖的15個(gè)周期相等,可實(shí)現(xiàn)15s的報(bào)警時(shí)長。由此可知,蜂鳴器發(fā)生模
73、塊滿足設(shè)計(jì)要求,可實(shí)現(xiàn)1-15秒自由調(diào)節(jié)。</p><p> 圖2-35 蜂鳴器發(fā)聲模塊波形仿真圖</p><p><b> 2.9顯示模塊設(shè)計(jì)</b></p><p> 對于本學(xué)校打鈴器的設(shè)計(jì),必不可少的就是顯示模塊的設(shè)計(jì),因?yàn)楦鶕?jù)設(shè)計(jì)要求,時(shí)鐘的計(jì)時(shí)顯示、鬧鐘的時(shí)間設(shè)定、蜂鳴器報(bào)警時(shí)長的設(shè)定,都需要數(shù)碼管來顯示,實(shí)際應(yīng)用的時(shí)候,數(shù)碼管
74、的顯示是最直觀的表現(xiàn)。</p><p> 2.9.1時(shí)間切換模塊</p><p> 如圖2-36所示為時(shí)間切換模塊設(shè)計(jì)框圖。設(shè)計(jì)思路為:通過K2來進(jìn)行時(shí)間切換,當(dāng)K2為高電平時(shí),輸出正常計(jì)時(shí)時(shí)間;當(dāng)K2為低電平時(shí),輸出定時(shí)時(shí)間。</p><p> 圖2-36 時(shí)間切換模塊設(shè)計(jì)框圖</p><p> 圖2-37 時(shí)間切換模塊符號圖<
75、;/p><p> 如圖2-37所示為時(shí)間切換模塊符號圖。K2為切換按鍵輸入,用于切換時(shí)間輸出;QSAI[3..0]為時(shí)鐘時(shí)間秒低位,QSBI[3..0]為時(shí)鐘時(shí)間秒高位,QMAI[3..0]為時(shí)鐘時(shí)間分低位,QMBI[3..0]為時(shí)鐘時(shí)間分高位,QHAI[3..0]為時(shí)鐘時(shí)間時(shí)低位,QHBI[3..0]為時(shí)鐘時(shí)間時(shí)高位;QH_ARM_A[3..0]為定時(shí)時(shí)間時(shí)低位,QH_ARM_B[3..0]為定時(shí)時(shí)間時(shí)高位,QM
76、_ARM_A[3..0]為定時(shí)時(shí)間分低位,QM_ARM_B[3..0]為定時(shí)時(shí)間分高位;Q_HAO[3..0]為時(shí)間切換模塊的時(shí)低位,Q_HBO[3..0]為時(shí)間切換模塊的時(shí)高位,Q_MAO[3..0]為時(shí)間切換模塊的分低位,Q_MBO[3..0]為時(shí)間切換模塊的分高位,Q_SAO[3..0]為時(shí)間切換模塊的秒低位,Q_SBO[3..0]為時(shí)間切換模塊的秒高位。</p><p> 圖2-38 時(shí)間切換模塊波形仿
77、真圖</p><p> 如圖2-38所示為時(shí)間切換模塊波形仿真圖。設(shè)定時(shí)鐘時(shí)間為21點(diǎn)34分52秒,定時(shí)時(shí)間為12點(diǎn)整;當(dāng)K2為高電平時(shí),模塊輸出為時(shí)鐘時(shí)間21點(diǎn)34分52秒;當(dāng)K2為低電平時(shí),模塊輸出為定時(shí)時(shí)間十二點(diǎn)整。由此可知,本模塊滿足設(shè)計(jì)要求。</p><p> 2.9.2動態(tài)掃描模塊</p><p> 所謂動態(tài)顯示就是一位一位地輪流點(diǎn)亮各位顯示器(掃
78、描),對于顯示器的每一位而言,每隔一段時(shí)間點(diǎn)亮一次。雖然在同一時(shí)刻只有一位顯示器在工作(點(diǎn)亮),但利用人眼的視覺暫留效應(yīng)和發(fā)光二極管熄滅時(shí)的余輝效應(yīng),看到的卻是多個(gè)字符“同時(shí)”顯示。顯示器的亮度既與點(diǎn)亮?xí)r的導(dǎo)通電流有關(guān),也與點(diǎn)亮?xí)r間和間隔時(shí)間的比例有關(guān)[10]。若顯示器的位數(shù)不大于8位,則控制顯示器公共極電位只需一個(gè)8位I/O口(稱為掃描口或字位口),控制各位LED顯示器所顯示的字形也需要一個(gè)8位口(稱為數(shù)據(jù)口或字形口)。調(diào)整電流和時(shí)間
79、參烽,可實(shí)現(xiàn)亮度較高較穩(wěn)定的顯示[11]。</p><p> 7段數(shù)碼管一般由8個(gè)發(fā)光二極管組成,其中由7個(gè)細(xì)長的發(fā)光二極管組成數(shù)字顯示,另外一個(gè)圓形的發(fā)光二極管顯示小數(shù)點(diǎn)。當(dāng)發(fā)光二極管導(dǎo)通時(shí),相應(yīng)的一個(gè)點(diǎn)或一個(gè)筆畫發(fā)光。控制相應(yīng)的二極管導(dǎo)通,就能顯示出各種字符,盡管顯示的字符形狀有些失真,能顯示的數(shù)符數(shù)量也有限,但其控制簡單,使有也方便。發(fā)光二極管的陽極連在一起的稱為共陽極數(shù)碼管,陰極連在一起的稱為共陰極數(shù)碼
80、管,本設(shè)計(jì)使用共陰數(shù)碼管,如圖2-39所示為七段共陰數(shù)碼管結(jié)構(gòu)圖。</p><p> 圖2-39 七段數(shù)碼管結(jié)構(gòu)</p><p> 如圖2-40所示為數(shù)碼管顯示連接圖。動態(tài)掃描電路將計(jì)數(shù)器輸出的8421BCD碼轉(zhuǎn)換為數(shù)碼管需要的邏輯狀態(tài),并且輸出數(shù)碼管的片選信號和位選信號[12]。所謂動態(tài)掃描顯示方式是在顯示某一位LED顯示塊的數(shù)據(jù)的時(shí)候,讓其它位不顯示,然后在顯示下一位的數(shù)據(jù),同時(shí)關(guān)
81、閉其他顯示塊。這樣做可以使每一個(gè)顯示塊顯示與自己相對應(yīng)的數(shù)據(jù)。只要保證每一位顯示的時(shí)間間隔不要太大,利用人眼的視覺暫留的現(xiàn)象,就可以造成各位數(shù)據(jù)同時(shí)顯示的假象[13]。一般每一位的顯示時(shí)間為1~10ms。</p><p> 圖2-40 數(shù)碼管顯示連接圖</p><p> 如圖2-41所示為動態(tài)掃描模塊符號圖。該模塊的輸入端口clk是頻率為5kHZ的掃描時(shí)鐘,故每一位顯示的時(shí)間為0.2m
82、s,需要掃描8個(gè)數(shù)碼管,故顯示間隔為1.6ms。由分頻模塊提供,數(shù)碼管顯示時(shí)、分和秒,以及報(bào)警時(shí)間。其它輸入端口接計(jì)數(shù)模塊輸出的數(shù)據(jù);輸出端口segout[7..0]動態(tài)輸出掃描的數(shù)據(jù);端口selout[7..0]輸出數(shù)碼管的片選信號。</p><p> 圖2-41 動態(tài)掃描模塊符號圖</p><p> 如圖2-42所示為動態(tài)掃描模塊波形仿真圖。給定一定時(shí)鐘脈沖,設(shè)定時(shí)鐘時(shí)間為21點(diǎn)0
83、1分25秒,隨著脈沖上升沿的到來,數(shù)碼管的片選信號逐一變?yōu)榈碗娖?,分別輸出時(shí)鐘時(shí)間或定時(shí)時(shí)間,以及報(bào)警時(shí)長,有波形仿真圖可知此模塊滿足設(shè)計(jì)要求。</p><p> 圖2-42 動態(tài)掃描模塊波形仿真圖</p><p> 2.10按鍵電路設(shè)計(jì)</p><p> 本設(shè)計(jì)需要對計(jì)時(shí)時(shí)間和鬧鐘時(shí)間進(jìn)行調(diào)整,調(diào)整的過程需要用到按鍵電路,用到兩種按鍵,一種是機(jī)械式開關(guān),另外
84、一種是撥碼開關(guān)。由于按鍵電路比較簡單,在此主要介紹按鍵各自完成的功能。本設(shè)計(jì)由8個(gè)獨(dú)立按鍵組成,包括兩個(gè)撥碼開關(guān),六個(gè)機(jī)械式開關(guān)。其中2個(gè)撥碼開關(guān)分別用于調(diào)節(jié)報(bào)警時(shí)長以及鬧鐘定時(shí)時(shí)間的調(diào)節(jié);另外6個(gè)機(jī)械式開關(guān)分別用于復(fù)位,數(shù)碼管顯示切換,鬧鐘定時(shí)時(shí)、分切換,作息時(shí)間切換,時(shí)鐘時(shí)間時(shí)、分調(diào)節(jié)。如圖2-43所示為按鍵介紹圖。</p><p> 圖2-43 按鍵介紹</p><p> 2.1
85、1電源電路設(shè)計(jì)</p><p> 設(shè)計(jì)電源的目地是給FPGA、數(shù)碼管、蜂鳴器、按鍵提供工作電壓,所以電路設(shè)計(jì)極其重要,穩(wěn)定性必須好,否則會影響各種器件的正常工作,進(jìn)而影響到打鈴器的準(zhǔn)確性,在電子電路及設(shè)備中,一般都需要穩(wěn)定的直流電源供電。單相交流電經(jīng)過電源變壓器、整流電路、濾波電路和穩(wěn)壓電路轉(zhuǎn)換成穩(wěn)定的直流電壓。</p><p> 圖2-44 直流穩(wěn)壓電源電路圖</p>
86、<p> 如圖2-44所示為直流穩(wěn)壓電源電路圖。220V交流市電通過電源變壓器變換成交流低壓,再經(jīng)過橋式整流電路D1~D4和濾波電容C1的整流和濾波,在固定式三端穩(wěn)壓器LM7805的Vin和GND兩端形成一個(gè)并不十分穩(wěn)定的直流電壓(該電壓常常會因?yàn)槭须婋妷旱牟▌踊蜇?fù)載的變化等原因而發(fā)生變化)。此直流電壓經(jīng)過LM7805的穩(wěn)壓和C3的濾波便在穩(wěn)壓電源的輸出端產(chǎn)生了精度高、穩(wěn)定度好的直流輸出電壓。LM317作為輸出電壓可變的集成
87、三端穩(wěn)壓塊,是一種使用方便、應(yīng)用廣泛的集成穩(wěn)壓塊,改變R2阻值即可調(diào)整穩(wěn)壓電壓值。D1,D2用于保護(hù)LM317,最大輸出電流為2.2A,輸出電壓范圍為1.25~37V。三端穩(wěn)壓器是一種標(biāo)準(zhǔn)化、系列化的通用線性穩(wěn)壓電源集成電路,以其體積小、成本低、性能好、工作可靠性高、使用簡捷方便等特點(diǎn),成為目前穩(wěn)壓電源中應(yīng)用最為廣泛的一種單片式集成穩(wěn)壓器件[14]。</p><p> 第三章 實(shí)驗(yàn)結(jié)果分析</p>
88、<p><b> 3.1測試過程</b></p><p> 將設(shè)計(jì)程序下載到實(shí)驗(yàn)箱上進(jìn)行實(shí)際測試,以下為實(shí)際測試過程:</p><p> 如圖3-1所示為實(shí)際測試圖一。當(dāng)前狀態(tài)為正常計(jì)時(shí)狀態(tài),將復(fù)位按鍵設(shè)為高電平,計(jì)時(shí)開始,時(shí)鐘、鬧鐘顯示切換按鍵為高電平時(shí)顯示時(shí)鐘時(shí)間,可通過時(shí)鐘調(diào)時(shí)、調(diào)分鍵對時(shí)鐘時(shí)間進(jìn)行調(diào)整,數(shù)碼管顯示從左到右依次為:報(bào)警時(shí)長十位
89、、個(gè)位,時(shí)鐘時(shí)間時(shí)高位、時(shí)低位,分高位、分低位,秒高位、秒低位,顯示時(shí)間為十二點(diǎn)十九分十八秒,報(bào)警時(shí)長為十五秒。</p><p> 圖3-1 實(shí)際測試圖一</p><p> 如圖3-2所示為實(shí)際測試圖二。此圖為鬧鐘設(shè)定時(shí)間的顯示,通過時(shí)鐘、鬧鐘顯示切換按鍵來進(jìn)行切換,當(dāng)為低電平時(shí)顯示鬧鐘時(shí)間,可通過定時(shí)調(diào)時(shí)調(diào)分切換按鍵來選擇調(diào)整時(shí)或分,按下鬧鐘時(shí)間調(diào)節(jié)的撥碼開關(guān)進(jìn)行鬧鐘時(shí)間設(shè)定,圖中數(shù)
90、碼管顯示從左到右依次為:報(bào)警時(shí)長高位、低位,定時(shí)時(shí)間時(shí)高位、時(shí)低位,分高位、分地位,秒高位、秒低位,當(dāng)前顯示鬧鐘設(shè)定時(shí)間為十二點(diǎn)十三分,報(bào)警時(shí)長為十五秒,當(dāng)時(shí)鐘時(shí)間為十二點(diǎn)十三分時(shí),蜂鳴器報(bào)警,時(shí)長為十五秒。</p><p> 圖3-2 實(shí)際測試圖二</p><p> 如圖3-3所示為實(shí)際測試圖三。通過按下報(bào)警時(shí)長調(diào)節(jié)鍵來改變報(bào)警時(shí)長,圖中報(bào)警時(shí)長更改為1秒,左為報(bào)警時(shí)長顯示,右為時(shí)鐘
91、時(shí)間顯示,顯示時(shí)間為十二點(diǎn)十一分二十九秒。時(shí)鐘時(shí)間計(jì)到設(shè)定的學(xué)校作息時(shí)間時(shí),蜂鳴器報(bào)警,持續(xù)時(shí)間為當(dāng)前設(shè)定的報(bào)警時(shí)長。</p><p> 測試說明,最終結(jié)果與預(yù)期效果基本一致,時(shí)、分、秒能夠正常計(jì)數(shù)并可調(diào)節(jié)時(shí)間,學(xué)校上下課時(shí)間打鈴功能正常,并且可以通過按鍵調(diào)整作息時(shí)間以及報(bào)警時(shí)長。</p><p> 在學(xué)校打鈴器設(shè)計(jì)過程中,更加熟悉了利用QuartusII軟件進(jìn)行原理圖繪制的方法,硬件
92、描述語言VHDL的編寫模塊的技巧等,并能根據(jù)仿真結(jié)果分析設(shè)計(jì)的存在的問題和缺陷,從而進(jìn)行程序的修改和完善。</p><p> 在設(shè)計(jì)電路中,往往是先仿真后連接實(shí)物圖,但有時(shí)候仿真和電路連接并不是完全一致的,例如在對具體模塊的仿真的過程中,往往沒有考慮到整體設(shè)計(jì)的層面以及與上下模塊接口的設(shè)計(jì)。再加上器件對信號的延時(shí)等問題,實(shí)際下載到實(shí)驗(yàn)箱上后會出現(xiàn)一系列的問題,因此仿真圖和電路連接圖還是有一定區(qū)別的。</p
93、><p> 圖3-3 實(shí)際測試圖三</p><p> 學(xué)校打鈴器的設(shè)計(jì)重點(diǎn)在于按鍵的控制和各個(gè)模塊代碼的編寫,雖然能把鍵盤接口和各個(gè)模塊的代碼編寫出來,并能正常顯示,但對于各個(gè)模塊的優(yōu)化設(shè)計(jì)還有一定的缺陷和不足??偟膩碚f,通過這次的設(shè)計(jì)實(shí)驗(yàn)更進(jìn)一步地增強(qiáng)了實(shí)驗(yàn)的動手能力,對打鈴器的工作原理也有了更加透徹的理解。在本設(shè)計(jì)調(diào)試過程中遇到了一些難點(diǎn)問題,經(jīng)過努力加以解決:</p>
94、<p> 1、當(dāng)程序下載到實(shí)驗(yàn)箱上后,數(shù)碼管顯示全部為零,計(jì)數(shù)器不工作,經(jīng)分析得知程序中的總的清零信號保持有效狀態(tài),改動程序后計(jì)數(shù)器開始計(jì)數(shù)。</p><p> 2、當(dāng)秒時(shí)鐘計(jì)數(shù)到59時(shí)變0時(shí),分計(jì)數(shù)模塊滯后計(jì)數(shù),考慮的器件的延時(shí),將程序中秒的進(jìn)位信號提前1秒。</p><p> 3、在對學(xué)校打零時(shí)間設(shè)置及更改的問題上,一開始想通過ROM實(shí)現(xiàn),但思考之后還是采用了通過程序?qū)?/p>
95、現(xiàn)的方法,因?yàn)镽OM只能讀不能寫。</p><p> 4、在檢測按鍵時(shí),由于有些按鍵控制是秒時(shí)鐘同步的,所以控制起來顯得稍微慢些,但是工作正常,能滿足實(shí)際的需要。</p><p><b> 3.2結(jié)果分析</b></p><p> 從實(shí)際系統(tǒng)測試可知,學(xué)校打鈴器滿足設(shè)計(jì)要求,通過復(fù)位按鍵可對系統(tǒng)進(jìn)行復(fù)位,可實(shí)現(xiàn)基本時(shí)鐘的顯示及調(diào)時(shí)調(diào)分,具
96、有鬧鐘功能,作息時(shí)間有春夏之分,當(dāng)前時(shí)鐘時(shí)間與學(xué)校上下課時(shí)間點(diǎn)相同時(shí)打鈴,且計(jì)時(shí)時(shí)間、定時(shí)時(shí)間、打鈴時(shí)長可自由設(shè)置和調(diào)整,報(bào)警時(shí)長可在1至15秒內(nèi)進(jìn)行調(diào)節(jié),其數(shù)據(jù)信息都可以通過數(shù)碼管顯示,鬧鐘報(bào)警和作息報(bào)時(shí)通過蜂鳴器來實(shí)現(xiàn)。</p><p> 本設(shè)計(jì)是采用硬件描述語言和FPGA芯片相結(jié)合進(jìn)行的學(xué)校打鈴器的研究,從中可以看出EDA技術(shù)的發(fā)展在一定程度上實(shí)現(xiàn)了硬件設(shè)計(jì)的軟件化,設(shè)計(jì)的過程相對簡單,容易修改。<
97、/p><p> 本設(shè)計(jì)中仍存在一定不足,用來控制學(xué)校打鈴器的按鍵為八個(gè),數(shù)量較多,在實(shí)際應(yīng)用中會帶來不便,以后可以考慮進(jìn)一步優(yōu)化,如,可通過加入位選控制按鍵來實(shí)現(xiàn)節(jié)省按鍵資源,一鍵多用,便可以減少按鍵,實(shí)現(xiàn)同樣的控制功能。</p><p> 另外,在本設(shè)計(jì)的基礎(chǔ)上還可以進(jìn)行一系列的創(chuàng)新,比如增加音樂報(bào)警的功能,取代稍有刺耳的蜂鳴聲,會使用戶在實(shí)際應(yīng)用中多一份樂趣,還可以加入遙控功能、語音識
98、別等等,相信隨著電子技術(shù)的發(fā)展,打鈴器的功能會更加多樣化,滿足人們的各種需要,為人們以后的工作和生活提供更多的方便。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 劉皖,何道君,譚明編著.FPGA設(shè)計(jì)與應(yīng)用[M].北京:清華大學(xué)出版社,2006.6:12-16</p><p> [2] 廖日坤.CPLD/FPG
99、A嵌入式應(yīng)用開發(fā)技術(shù)白金手冊[M].北京:中國電力出版社,2003:212-218</p><p> [3] J.Bhasker著,徐振林等譯.Verilog HDL硬件描述語言[M].北京:機(jī)械工業(yè)出版社,2000:36-42</p><p> [4] 侯伯亨,顧新.VHDL硬件描述語言與數(shù)字電路邏輯設(shè)計(jì)[M].西安:西安電子科技大學(xué)出版社,2001:12-16</p>
100、;<p> [5] 高吉祥.電子技術(shù)基礎(chǔ)實(shí)驗(yàn)與課程設(shè)計(jì)[M].北京:電子工業(yè)出版社,2002:67-73</p><p> [6] 李國洪,沈明山.可編程器件EDA技術(shù)與實(shí)踐[M].北京:機(jī)械工業(yè)出版社,2000:56-57</p><p> [7] 張慶雙.電子元器件的選用與檢測[M].北京:機(jī)械工業(yè)出版社,2003:23-25</p><p
101、> [8] 李婷.基于FPGA的按鍵彈跳消除模塊的研究與應(yīng)用[J].科技創(chuàng)新導(dǎo)報(bào),2008,(2):82-83</p><p> [9] 邢遠(yuǎn)秀,陳姚節(jié).鍵盤消抖電路的研究與分析[J].中國科技信息,2008,(1):20-22</p><p> [10] Zainalabedin Navabi.Vhdl: Analysis and Modeling of Digital
102、 Systems[M].New York:McGraw-Hill Professional,1998,(2):342-346</p><p> [11] 王開軍,姜宇柏.面向CPLD/FPGA的VHDL設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2006:28-65</p><p> [12] 劉君,常明,秦娟.基于硬件描述語言(VHDL)的數(shù)字時(shí)鐘設(shè)計(jì)[J].天津理工大學(xué)學(xué)報(bào),2007,2
103、3(4):40-41</p><p> [13] 譚會生,張昌凡.EDA技術(shù)及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2002:89-92 </p><p> [14] 李可.數(shù)字鐘電路及應(yīng)用[M].北京:電子工業(yè)出版社,1996:72-76</p><p><b> 附 錄</b></p><p><
104、;b> 一、程序清單</b></p><p><b> 1.分頻模塊</b></p><p> ?。?)library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> entity fenpin25k is</p><
105、p> port( clk :in std_logic;</p><p> co:out std_logic);</p><p> end entity;</p><p> Architecture art of fenpin25k is</p><p> signal cqi : integer range 1 to 2500
106、0;</p><p><b> begin</b></p><p> co<='1' when cqi=25000 and clk='0'else '0'; </p><p> process (clk) is</p><p><b> begin&
107、lt;/b></p><p> if clk'event and clk='1'then </p><p> if cqi=25000 then </p><p><b> cqi<=1;</b></p><p> else cqi<=cqi+1;</p>
108、<p><b> end if;</b></p><p><b> end if;</b></p><p> end process;</p><p> end architecture art;</p><p> ?。?)library ieee;</p><
109、;p> use ieee.std_logic_1164.all;</p><p> entity cnt5 is</p><p> port( clk :in std_logic;</p><p> co:out std_logic);</p><p> end entity;</p><p> Ar
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 利用單片機(jī)打鈴器畢業(yè)論文設(shè)計(jì)
- 基于fpga的回波抵消器設(shè)計(jì)【畢業(yè)論文】
- 利用單片機(jī)打鈴器畢業(yè)論文
- 基于fpga的紅外遙控器設(shè)計(jì)【畢業(yè)論文】
- 基于fpga電梯控制器設(shè)計(jì)畢業(yè)論文
- 畢業(yè)論文-基于fpga的電梯控制器設(shè)計(jì)
- 基于fpga的曼徹斯特編碼器設(shè)計(jì)【畢業(yè)論文】
- 畢業(yè)論文 基于fpga的信號發(fā)生器設(shè)計(jì)
- 畢業(yè)論文--基于單片機(jī)的打鈴系統(tǒng)
- 基于fpga電梯控制器的設(shè)計(jì)畢業(yè)論文
- 畢業(yè)論文----基于fpga的多路信號采器設(shè)計(jì)
- 自動打鈴系統(tǒng)畢業(yè)論文
- 畢業(yè)論文--基于fpga的信號發(fā)生器設(shè)計(jì)
- 畢業(yè)論文--基于單片機(jī)的打鈴系統(tǒng)
- 基于fpga的曼徹斯特編碼器的設(shè)計(jì)畢業(yè)論文
- 基于fpga的dds信號發(fā)生器設(shè)計(jì)【畢業(yè)論文】
- 基于fpga的曼徹斯特編碼器的設(shè)計(jì)-畢業(yè)論文
- 基于fpga的函數(shù)信號發(fā)生器設(shè)計(jì)畢業(yè)論文
- 基于單片機(jī)的定時(shí)打鈴設(shè)計(jì)-本科畢業(yè)論文
- 基于fpga的正交信號發(fā)生器設(shè)計(jì)【畢業(yè)論文】
評論
0/150
提交評論