版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 摘 要</b></p><p> 本論文介紹了應(yīng)用FPGA芯片和硬件描述語言(VHDL)設(shè)計微波爐控制器系統(tǒng)的方法。系統(tǒng)使用VHDL編程實現(xiàn)各底層模塊的功能,頂層的設(shè)計采用圖形輸入完成。論文主要闡述模塊化設(shè)計的思想和狀態(tài)圖的描述方法,以及他們在硬件描述語言中的應(yīng)用,并展示了其在Quartus II 開發(fā)系統(tǒng)下的仿真結(jié)果。</p><p>
2、; 微波爐控制器系統(tǒng)是一個實用型的系統(tǒng),系統(tǒng)不僅具有操作簡單的功能,而且烹調(diào)效果好,你可以按照固定程序烹調(diào)一些家常菜,可以采取分時、分不同級別火力加熱,既能節(jié)約時間又能節(jié)約能源。主要有以下幾個模塊:輸入模塊、控制模塊和顯示模塊。輸入模塊實現(xiàn)按鍵掃描和鍵盤譯碼、控制模塊包括狀態(tài)轉(zhuǎn)換控制、數(shù)據(jù)裝載、烹飪計時、溫度控制、音效提示等等、顯示模塊涉及到顯示譯碼和指示燈的閃爍。</p><p> 經(jīng)過對系統(tǒng)做需求分析,詳
3、細功能設(shè)計、編碼,模塊連接,并利用FPGA實現(xiàn)相應(yīng)的功能,經(jīng)過波形仿真、下載調(diào)試,驗證了設(shè)計方案的可行性及實現(xiàn)方法的有效性,基本實現(xiàn)了系統(tǒng)的要求。</p><p> 關(guān)鍵詞:FPGA;VHDL;微波爐;狀態(tài)圖;定時器</p><p><b> Abstract</b></p><p> This paper introduces the
4、method that applying FPGA chip and VHDL to design the control system of microwave ovens. The system uses VHDL to fulfill the function of each bottom module and the design of the top layer is completed via graphic enterin
5、g. This paper mainly illustrates the idea of module design and description method of state chart and that their application in VHDL and simulation results in the develop system of Quartus II.</p><p> Microw
6、ave controller system is a utility-type system that includes not only the function of simple operation, but also good effect of cook. According to fixed routine, you can cook some homely dish via taking different time an
7、d different level firepower to heat, and this can not only save time, but also save energy. It mainly includes a couple of modules as follows: input module, control module and display module. Input module fulfills key-pr
8、ess scanning and keyboard decoding, control module inc</p><p> Through the analysis of requirement, detailed function design, coding, module connection, using FPGA to fulfill relevant function. Through wave
9、form simulation, download debugging, it verifies the feasibility of the design and the effectiveness of realization method and basically fulfill the requirement of the system. </p><p> Keywords: FPGA, VHDL,
10、 Microwave oven, Status chart, timer目 錄</p><p><b> 1.緒論1</b></p><p> 1.1.任務(wù)的提出1</p><p> 1.2.課題的內(nèi)容和要求1</p><p> 1.3.設(shè)計的目的和意義2</p><p>
11、 2.關(guān)鍵技術(shù)簡介3</p><p> 2.1.FPGA簡介3</p><p> 2.2.VHDL語言概述3</p><p> 2.3.Quartus II 開發(fā)系統(tǒng)簡介5</p><p> 3.系統(tǒng)總體設(shè)計7</p><p> 3.1.系統(tǒng)總體設(shè)計方案7</p>&l
12、t;p> 3.2.系統(tǒng)功能模塊描述9</p><p> 3.2.1.輸入模塊10</p><p> 3.2.2.控制模塊10</p><p> 3.2.3.顯示模塊11</p><p> 3.3.系統(tǒng)的工作流程11</p><p> 4.系統(tǒng)詳細設(shè)計13</p>
13、<p> 4.1.輸入模塊設(shè)計13</p><p> 4.1.1.鍵盤掃描13</p><p> 4.1.2.鍵盤譯碼16</p><p> 4.1.3.輸入模塊的實現(xiàn)17</p><p> 4.2.控制模塊設(shè)計18</p><p> 4.2.1.狀態(tài)轉(zhuǎn)換控制19</
14、p><p> 4.2.2.數(shù)據(jù)裝載22</p><p> 4.2.3.烹飪計時23</p><p> 4.2.4.溫度控制26</p><p> 4.2.5.控制模塊的實現(xiàn)29</p><p> 4.3.顯示模塊設(shè)計31</p><p> 5.系統(tǒng)仿真35<
15、/p><p> 5.1.輸入模塊仿真35</p><p> 5.2.狀態(tài)轉(zhuǎn)換控制器仿真35</p><p> 5.3.數(shù)據(jù)裝載器仿真36</p><p> 5.4.烹飪計時器仿真37</p><p> 5.5.顯示譯碼器仿真39</p><p><b> 6
16、.結(jié)論41</b></p><p><b> 致 謝42</b></p><p><b> 參考文獻43</b></p><p><b> 附 錄44</b></p><p><b> 緒論</b></p>&l
17、t;p> 隨著人民生活水平的提高,微波爐開始進人越來越多的家庭,它給人們的生活帶來了極大的方便。微波爐由2450MHz的超高頻來加熱食物。它省時、省電、方便和衛(wèi)生。作為現(xiàn)代的烹飪工具,微波爐的控制器體現(xiàn)著它的重要性能指標。目前大部分微波爐控制器采用單片機進行設(shè)計,電路比較復雜,性能不夠靈活。本文采用先進的EDA技術(shù),利用Quartus II工作平臺和VHDL設(shè)計語言,設(shè)計了一種新型的微波爐控制器系統(tǒng)。該系統(tǒng)具有系統(tǒng)復位、時間設(shè)定
18、、烹飪計時、溫度控制和音效提示等功能,在FPGA上實現(xiàn)。</p><p><b> 任務(wù)的提出</b></p><p> 在現(xiàn)代人快節(jié)奏生活中,微波爐已成為便捷生活的一部分。隨著控制技術(shù)和智能技術(shù)的發(fā)展,微波爐也向著智能化、信息化發(fā)展。而現(xiàn)有市售的微波爐其主要弊端為:不能按既有程序進行烹調(diào),需要使用者根據(jù)食物的類型、數(shù)量、溫度等因素去設(shè)定微波爐的工作時間,若設(shè)定的
19、工作時間過長,含水分較多的食物可能會產(chǎn)生過熱碳化的現(xiàn)象,若時間過短則達不到預期的烹調(diào)效果。不僅在節(jié)能方面未做過多考慮,使用者還需要經(jīng)常翻看使用說明書才能完成操作過程。針對這些問題,筆者認為有必要研制一種操作簡單且烹調(diào)效果好的微波爐,根據(jù)一些家常菜按固定程序烹調(diào)的現(xiàn)象,可采取分時、分檔火力加熱,節(jié)時又節(jié)能。</p><p><b> 課題的內(nèi)容和要求</b></p><p
20、> 本課題是基于FPGA的微波爐控制器設(shè)計,即設(shè)計一個具備定時、溫控、信息顯示和音響效應(yīng)提示功能的微波爐控制器,實現(xiàn)一些功能:</p><p> 該微波爐控制器能夠在任意時刻取消當前工作,復位為初始狀態(tài)。</p><p> 可以根據(jù)需要設(shè)置烹調(diào)時間的長短,系統(tǒng)最長的烹調(diào)時間為59分59秒;開始烹調(diào)后,能夠顯示剩余時間的多少。</p><p> 可以根據(jù)
21、需要設(shè)置烹調(diào)最高溫度值,系統(tǒng)最高的烹調(diào)溫度為999℃;開始烹調(diào)后,能夠顯示系統(tǒng)當前溫度值。</p><p> 可以控制火力大小,供選擇的火力檔位有高、中、低三個火力檔位。</p><p> 音響效應(yīng)提示直接外接一個蜂鳴器,同時用一個指示燈提示。</p><p> 顯示微波爐控制器的烹調(diào)狀態(tài)。</p><p><b> 設(shè)計的
22、目的和意義</b></p><p> 目前大部分微波爐控制器采用單片機進行設(shè)計,電路比較復雜,性能不夠靈活。本設(shè)計采用先進的EDA 技術(shù),利用VHDL 設(shè)計語言,設(shè)計一種新型的微波爐控制器。該控制器具有系統(tǒng)復位、狀態(tài)控制、時間設(shè)定、火力檔位選擇、烹飪計時、溫度控制、顯示譯碼和音效提示等功能,基于FPGA 芯片實現(xiàn)。</p><p> 該微波爐控制系統(tǒng),除實現(xiàn)常規(guī)的解凍、烹調(diào)
23、、烘烤的基本功能外,還進行了創(chuàng)新設(shè)計,實現(xiàn)了微波爐的自定義設(shè)置。</p><p> 本系統(tǒng)控制部分以FPGA芯片為核心,通過功能按鍵設(shè)置和手動數(shù)據(jù)輸入,完成不同功能時自動以預置方案或者自定義方案加熱。其中,預制方案提供烹調(diào)、烘烤、解凍等系統(tǒng)烹調(diào)流程,僅供用戶選擇,無需設(shè)置;而自定義方案,用戶根據(jù)食物含量、重量等手動設(shè)置時間、溫度和選擇火力等操作。在烹飪過程中,能通過數(shù)碼管顯示或者指示燈提示知道食物的成熟度,可以
24、智能控制。</p><p> 該系統(tǒng)在功能執(zhí)行時,能實現(xiàn)門開關(guān)檢測、鍵盤輸入掃描、溫度控制、LED顯示、工作狀態(tài)指示、蜂鳴等。</p><p><b> 關(guān)鍵技術(shù)簡介</b></p><p><b> FPGA簡介</b></p><p> FPGA(Field-Programmable G
25、ate Array),即現(xiàn)場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點。</p><p> 目前以硬件描述語言(Verilog 或 VHDL)所完成的電路設(shè)計,可以經(jīng)過簡單的綜合與布局,快速的燒錄至 FPGA 上進行測試,是現(xiàn)代 IC 設(shè)計驗證的
26、技術(shù)主流。這些可編輯元件可以被用來實現(xiàn)一些基本的邏輯門電路(比如AND、OR、XOR、NOT)或者更復雜一些的組合功能比如解碼器或數(shù)學方程式。在大多數(shù)的FPGA里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器(Flip-flop)或者其他更加完整的記憶塊。</p><p> 系統(tǒng)設(shè)計師可以根據(jù)需要通過可編輯的連接把FPGA內(nèi)部的邏輯塊連接起來,就好像一個電路試驗板被放在了一個芯片里。一個出廠后的成品FPGA的邏
27、輯塊和連接可以按照設(shè)計者而改變,所以FPGA可以完成所需要的邏輯功能。</p><p> FPGA一般來說比ASIC(專用集成芯片)的速度要慢,無法完成復雜的設(shè)計,而且消耗更多的電能。但是他們也有很多的優(yōu)點比如可以快速成品,可以被修改來改正程序中的錯誤和更便宜的造價。廠商也可能會提供便宜的但是編輯能力差的FPGA。因為這些芯片有比較差的可編輯能力,所以這些設(shè)計的開發(fā)是在普通的FPGA上完成的,然后將設(shè)計轉(zhuǎn)移到一
28、個類似于ASIC的芯片上。</p><p><b> VHDL語言概述</b></p><p> VHDL 的英文全名是 Very-High-Speed Integrated Circuit Hardware Description Language,誕生于 1982 年。1987 年底,VHDL被 IEEE 和美國國防部確認為標準硬件描述語言。</p>
29、;<p> VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式和描述風格與句法是十分類似于一般的計算機高級語言。VHDL的程序結(jié)構(gòu)特點是將一項工程設(shè)計,或稱設(shè)計實體(可以是一個元件,一個電路模塊或一個系統(tǒng))分成外部(或稱可視部分,及端口)和內(nèi)部(或稱不可視部分),既涉及實體的內(nèi)部功能和算法完成部分。在對一個設(shè)計實體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計就
30、可以直接調(diào)用這個實體。這種將設(shè)計實體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計的基本點。</p><p> VHDL 語言能夠成為標準化的硬件描述語言并獲得廣泛應(yīng)用,它自身必然具有很多其他硬件描述語言所不具備的優(yōu)點。歸納起來,VHDL 語言主要具有以下優(yōu)點:</p><p> (1) VHDL 語言功能強大,設(shè)計方式多樣 </p><p> VHDL 語言具有強大的
31、語言結(jié)構(gòu), 只需采用簡單明確的VHDL語言程序就可以述十分復雜的硬件電路。同時, 它還具有多層次的電路設(shè)計描述功能。此外,VHDL 語言能夠同時支持同步電路、異步電路和隨機電路的設(shè)計實現(xiàn),這是其他硬件描述語言所不能比擬的。VHDL 語言設(shè)計方法靈活多樣,既支持自頂向下的設(shè)計方式,也支持自底向上的設(shè)計方法;既支持模塊化設(shè)計方法,也支持層次化設(shè)計方法。 </p><p> (2) VHDL 語言具有強大的硬件描述能
32、力 </p><p> VHDL 語言具有多層次的電路設(shè)計描述功能,既可描述系統(tǒng)級電路,也可以描述門級電路;描述方式既可以采用行為描述、寄存器傳輸描述或者結(jié)構(gòu)描述,也可以采用三者的混合描述方式。同時,VHDL 語言也支持慣性延遲和傳輸延遲,這樣可以準確地建立硬件電路的模型。VHDL 語言的強大描述能力還體現(xiàn)在它具有豐富的數(shù)據(jù)類型。VHDL 語言既支持標準定義的數(shù)據(jù)類型,也支持用戶定義的數(shù)據(jù)類型,這樣便會給硬件描
33、述帶來較大的自由度。 </p><p> (3) VHDL 語言具有很強的移植能力 </p><p> VHDL 語言很強的移植能力主要體現(xiàn)在:對于同一個硬件電路的 VHDL 語言描述,它可以從一個模擬器移植到另一個模擬器上,從一個綜合器移植到另一個綜合器上,或者從一個工作平臺移植到另一個工作平臺上去執(zhí)行。 </p><p> (4) VHDL 語言的設(shè)計描述
34、與器件無關(guān) </p><p> 采用 VHDL 語言描述硬件電路時,設(shè)計人員并不需要首先考慮選擇進行設(shè)計的器件。這樣做的好處是可以使設(shè)計人員集中精力進行電路設(shè)計的優(yōu)化,而不需要考慮其他的問題。當硬件電路的設(shè)計描述完成以后,VHDL 語言允許采用多種不同的器件結(jié)構(gòu)來實現(xiàn)。 </p><p> (5) VHDL 語言程序易于共享和復用 </p><p> VHDL
35、 語言采用基于庫 ( library) 的設(shè)計方法。在設(shè)計過程中,設(shè)計人員可以建立各種可再次利用的模塊,一個大規(guī)模的硬件電路的設(shè)計不可能從門級電路開始一步步地進行設(shè)計,而是一些模塊的累加。這些模塊可以預先設(shè)計或者使用以前設(shè)計中的存檔模塊,將這些模塊存放在庫中,就可以在以后的設(shè)計中進行復用。 </p><p> 由于 VHDL 語言是一種描述、模擬、綜合、優(yōu)化和布線的標準硬件描述語言,因此它可以使設(shè)計成果在設(shè)計人
36、員之間方便地進行交流和共享,從而減小硬件電路設(shè)計的工作量,縮短開發(fā)周期。</p><p> Quartus II 開發(fā)系統(tǒng)簡介</p><p> Altera公司的Quartus II 開發(fā)系統(tǒng)以其獨特的設(shè)計理念,為用戶提供了一種全新的可編程邏輯器件開發(fā)系統(tǒng)。它集合了Altera的全部CPLD/FPGA器件的硬件開發(fā)功能,同時也可以實現(xiàn)系統(tǒng)級設(shè)計、綜合、仿真、約束等功能,還具有在線測試
37、功能。</p><p> Quartus II 7.0軟件具有以下特性:</p><p> 1、提供的集成物理綜合技術(shù)</p><p> Quartus II軟件包括唯一的FPGA供應(yīng)商提供的集成物理綜合優(yōu)化技術(shù)。Quartus II物理綜合選項應(yīng)用在編譯的布局布線階段,而與采用何種綜合工具無關(guān)。</p><p><b>
38、2、更快的時序逼近</b></p><p> Quartus II軟件用戶能夠利用強大的時序逼近流程特性來優(yōu)化設(shè)計,使其超過按鍵式編譯結(jié)果的性能。Quartus II軟件的時序逼近流程由于其包含了內(nèi)置物理綜合工具以及豐富的圖形分析和編輯工具,提供了強大的交互探測能力,具有極大的吸引力。</p><p> 3、最易使用的設(shè)計優(yōu)化技術(shù)</p><p>
39、 Quartus II軟件采用按鍵式設(shè)計流程,滿足了大部分設(shè)計的時序要求。當設(shè)計人員進一步需要更好的編譯結(jié)果時,Quartus II軟件提供了一些高級工具,可以輕松地實現(xiàn)優(yōu)化設(shè)計。用戶可以使用設(shè)計空間搜索器(DSE)采用自動技術(shù),是寄存器到寄存器設(shè)計性能平均提高21%。時序優(yōu)化顧問工具在Quartus II軟件內(nèi)給設(shè)計人員提供了一個虛擬的現(xiàn)場應(yīng)用工程師。這個工具基于當前設(shè)計工程設(shè)置和約束,提供詳細的優(yōu)化設(shè)計時序性能的建議。</p&
40、gt;<p> 4、實現(xiàn)后期設(shè)計更改的同時保持性能</p><p> 可編程邏輯設(shè)計軟件的一個傳統(tǒng)困難是;當引入后期設(shè)計更改的時候,如何保持設(shè)計的性能。然而,Quartus II軟件能夠輕松地實現(xiàn)后期設(shè)計更改。最新的增量式設(shè)計編輯器和編譯技術(shù)給設(shè)計人員提供了布局布線后設(shè)計更改的最佳支持。這些技術(shù)包括:</p><p> Quartus II芯片編輯器;</p>
41、;<p> 在LogicLock(tm)區(qū)域中實現(xiàn)布局布線鎖定的能力;</p><p> 使用漸進式編譯,僅實現(xiàn)對部分改動的設(shè)計進行修改。</p><p> 5、提供并行開發(fā)FPGA和結(jié)構(gòu)化ASIC</p><p> Quartus II軟件能夠提供FPGA設(shè)計和結(jié)構(gòu)化ASIC設(shè)計之間的無縫移植。Quartus II軟件能夠編譯HardCopy
42、 Stratix器件,從而提供了高性能低成本器件的解決方法。HardCopy Stratix結(jié)構(gòu)化ASIC提供了比Stratix FPGA平均高50%的性能,進步一步加強了Stratix III器件系列65nm性能的領(lǐng)先性。</p><p> Altera 公司的Quartus II設(shè)計軟件提供完整的多平臺設(shè)計環(huán)境,能夠直接滿足特定設(shè)計需要,為可編程芯片系統(tǒng)(SOPC)提供全面的設(shè)計環(huán)境。Quartus II軟
43、件含有FPGA核CPLD設(shè)計所有階段的解決方案,其設(shè)計流程包含設(shè)計輸入、綜合、布局布線、時序分析、仿真、編程和配置等步驟,其中的布局布線還包括功耗分析、調(diào)試、工程更改管理幾個部分。這些操作都可以利用Quartus II軟件實現(xiàn)。</p><p> 此外,Quartus II軟件為設(shè)計流程的每個階段提供了Quartus II圖形用戶界面、EDA工具界面以及命令行界面。可以在整個流程中只使用這些界面中的一個,也可以
44、在設(shè)計流程的不同階段使用不同的界面。</p><p><b> 系統(tǒng)總體設(shè)計</b></p><p><b> 系統(tǒng)總體設(shè)計方案</b></p><p> 根據(jù)題目要求,該系統(tǒng)控制部分以FPGA芯片為核心,實現(xiàn)時間設(shè)置、溫度設(shè)定、火力選擇、音效響應(yīng)提示、LED數(shù)碼管顯示等,在硬件組成上,涉及到電源供電、按鍵輸入、LE
45、D數(shù)碼管顯示、指示燈提示等。</p><p> 以下是該系統(tǒng)總體框圖,如圖3.1所示:</p><p> 圖3.1 微波爐控制器系統(tǒng)總體框圖</p><p> 該控制器系統(tǒng)在EDA實驗箱上實現(xiàn)的外觀布局如圖3.2所示。采用Cyclone II芯片EP2C35F672C8作為控制芯片,16個按鍵組成的4*4矩陣鍵盤,每個按鍵代表的功能如圖3.2所示,8個LED
46、作為8個狀態(tài)提示指示燈, 4位LED數(shù)碼管顯示加熱倒計時,3位LED數(shù)碼管顯示當前溫度值,1位LED數(shù)碼管顯示當前火力檔位。</p><p> 在圖3.2中,各按鍵功能如下:</p><p> 復位:按下此鍵,系統(tǒng)進入初始狀態(tài),8個數(shù)碼管上會顯示“88888888”的信息,所有LED指示燈亮。</p><p> 測試 :在待機狀態(tài)下按下此鍵,則數(shù)碼管和發(fā)光二極
47、管全亮、全滅交替閃爍。</p><p> 10Min 1Min/100℃/High 10Sec/10℃/Middle 1Sec/1℃/Low:四個鍵用于設(shè)定加熱時間、最高溫度或者選擇火力檔位。當按下時間設(shè)置按鍵時,四個按鍵分別表示設(shè)置定時時間的分、秒的十位和個位的數(shù)字;當按下溫度設(shè)定 按鍵時,后面三個按鍵分別表示設(shè)定最高溫度的百位、十位、個位;當按下火力設(shè)定按鍵時,后面三個按鍵分別表示火力檔位的高、中、
48、低三個檔位。由于在時間設(shè)置和溫度設(shè)定時,四個按鍵初始值均為0,因此需要借助▲/+1 ▼/-1 兩個按鍵共同實現(xiàn)時間、溫度的設(shè)定操作。比如設(shè)定烹飪時間為12分59秒,只需要選擇10Min 鍵,然后按▲/+1鍵“1”次;選擇1Min/100℃/High鍵,然后按▲/+1鍵“2”次;選擇10Sec/10℃/Middle鍵,然后按▲/+1鍵“5”次;選擇1Sec/1℃/Low鍵,然后按▲/+1鍵“9”次。同理,溫度設(shè)定操作如上。</p&
49、gt;<p> 3.2 系統(tǒng)外觀布局</p><p> 暫停/取消:用于暫停食物烹飪過程或者取消食物烹飪前的參數(shù)設(shè)置過程。在食物烹飪過程中,若按下該鍵,則停止食物烹飪,進入待機狀態(tài);在參數(shù)設(shè)置時,若按下此鍵,可取消設(shè)置的參數(shù)。</p><p> 火力設(shè)定 :用于設(shè)定系統(tǒng)火力檔位。按下該鍵,進入選擇1Min/100℃/High 10Sec/10℃/Middle 1S
50、ec/1℃/Low按鍵狀態(tài)。</p><p> 溫度設(shè)定 :設(shè)置加熱的溫度最高值。當按下該鍵時,進入調(diào)整1Min/100℃/High 10Sec/10℃/Middle 1Sec/1℃/Low按鍵狀態(tài)。</p><p> 時間設(shè)置 :設(shè)置系統(tǒng)工作時間。按下該鍵,進入調(diào)整10Min 1Min/100℃/High 10Sec/10℃/Middle 1Sec/1℃/Low ▲/+1
51、 ▼/-1 按鍵狀態(tài)。</p><p> 烹調(diào) :快速設(shè)定當前烹飪時間和火力到適合烹調(diào)的值。</p><p> 烘烤 :快速設(shè)定當前烹飪時間和火力到適合烘烤的值。</p><p> 解凍 :快速設(shè)定當前烹飪時間和火力到適合解凍的值。</p><p> 開始/確認 :在選擇烹調(diào)、烘烤、解凍或者設(shè)置時間、設(shè)定溫度、選擇火力等烹飪參數(shù)后,
52、按下此鍵,開始進行烹飪。</p><p><b> 指示燈功能如下:</b></p><p> 完成提示:提示微波爐工作完成。該燈亮時,表示烹飪完成;</p><p> 意外報警:提示意外情況發(fā)生。該燈亮時,表示出現(xiàn)意外,微波爐暫停工作;</p><p> 解凍:該燈亮時,表示工作在解凍模式下;</p>
53、;<p> 烘烤:該燈亮時,表示工作在烘烤模式下;</p><p> 烹調(diào):該燈亮時,表示工作在烹調(diào)模式下;</p><p> 測試:該燈亮時,表示微波爐處于測試狀態(tài);</p><p> 開門指示:指示微波爐的門的狀態(tài),門開時燈亮,門關(guān)時燈滅;</p><p> 工作狀態(tài):指示微波爐處于工作狀態(tài),工作時燈亮,不工作時燈
54、滅;</p><p><b> 系統(tǒng)功能模塊描述</b></p><p> 本系統(tǒng)主要由輸入、控制和顯示部分組成。輸入部分主要完成用戶對控制功能的設(shè)置,采用按鍵作為輸入設(shè)備??刂撇糠质潜鞠到y(tǒng)的核心,它接收用戶的輸入,完成相應(yīng)的控制邏輯功能,并將當前的工作狀態(tài)等信息送到顯示部分。顯示部分主要監(jiān)視系統(tǒng)工作狀態(tài)并提示用戶進行控制操作。</p><p&
55、gt; 以下是該系統(tǒng)功能模塊圖,如圖3.3所示</p><p> 圖3.3 系統(tǒng)功能模塊圖</p><p><b> 輸入模塊</b></p><p> 輸入部分一般采用鍵盤或旋鈕作為輸入,由于實驗室已有設(shè)備限制,本系統(tǒng)采用鍵盤進行輸入設(shè)置,即由一個4*4矩陣鍵盤實現(xiàn)數(shù)據(jù)輸入控制。該矩陣鍵盤上16個按鍵分別是:10Min 1Min/
56、100℃/High 10Sec/10℃/Middle 1Sec/1℃/Low ▲/+1 復位 暫停/取消 測試 ▼/-1 火力設(shè)定 溫度設(shè)定 時間設(shè)置 烹調(diào) 烘烤 解凍 開始/確認。輸入模塊包括時鐘脈沖電路、鍵盤掃描電路、消枓同步電路和鍵盤譯碼電路,通過該模塊將掃描得到的按鍵值送到控制模塊。</p><p><b> 控制模塊</b></p>
57、<p> 控制部分作為整個微波爐控制器系統(tǒng)的核心,它采用FPGA芯片作為主控核心,完成許多復雜的控制和數(shù)據(jù)處理任務(wù)。它通過輸入模塊提供的按鍵輸入實現(xiàn)數(shù)據(jù)信息裝載處理,并將處理結(jié)果通過顯示模塊顯示出來。其涉及到數(shù)據(jù)的裝載、狀態(tài)轉(zhuǎn)換控制、烹飪計時、溫度控制、火力控制、音響效應(yīng)提示等。</p><p><b> 顯示模塊</b></p><p> 顯示部分采
58、用七段數(shù)碼管和發(fā)光二極管來實現(xiàn)。由于數(shù)碼管顯示信息較少,一些信息用數(shù)碼管顯示不夠直觀,因此本系統(tǒng)在采用數(shù)碼管顯示的同時,還用發(fā)光二極管作為輔助顯示。其中,用七段數(shù)碼管作為時間、溫度、火力大小顯示,用發(fā)光二極管作為狀態(tài)提示顯示。具體設(shè)計時,采用4位LED數(shù)碼管顯示加熱倒計時,3位LED數(shù)碼管顯示當前溫度值,1位LED數(shù)碼管顯示當前火力檔位。8個狀態(tài)提示指示燈分別表示:工作狀態(tài)、開門指示、測試、烹調(diào)、烘烤、解凍、意外報警、完成提示。<
59、/p><p><b> 系統(tǒng)的工作流程</b></p><p> 微波爐控制器系統(tǒng)的工作流程為:上電后,系統(tǒng)首先處于一種復位狀態(tài),其各電路模塊均處于初始狀態(tài)。此時,8個數(shù)碼管上會顯示“88888888”的信息,所有指示燈亮。按TEST鍵,數(shù)碼管和發(fā)光二極管全亮、全滅交替閃爍,可以測試數(shù)碼管和指示燈工作是否正常。系統(tǒng)工作時,首先通過鍵盤輸入數(shù)據(jù),比如,按烹調(diào)、烘烤、解凍
60、鍵選擇系統(tǒng)預置方案,或者按時間設(shè)置鍵設(shè)置時間,按溫度設(shè)定鍵設(shè)置溫度,按火力選擇鍵選擇火力,結(jié)合10Min、1Min/100℃/High、10Sec/10℃/Middle、1Sec/1℃/Low按鍵進行自定義方案設(shè)置,設(shè)置結(jié)束以后,表示數(shù)據(jù)裝載完成,按START鍵后系統(tǒng)進入烹調(diào)狀態(tài)。在烹飪過程中,可以按暫停/取消鍵暫停烹飪,或者重新設(shè)置時間、溫度、火力。烹飪結(jié)束后,系統(tǒng)會發(fā)出音效提示,同時,系統(tǒng)自動進入復位狀態(tài)。</p>&
61、lt;p> 根據(jù)系統(tǒng)工作流程,繪制主程序流程圖,如圖3.4所示:</p><p> 圖3.4 系統(tǒng)工作流程圖</p><p><b> 系統(tǒng)詳細設(shè)計</b></p><p><b> 輸入模塊設(shè)計</b></p><p> 輸入模塊采用4*4矩陣鍵盤作為輸入設(shè)備,實現(xiàn)數(shù)據(jù)輸入控制。
62、矩陣鍵盤是一種常見的輸入裝置,在日常生活中,矩陣鍵盤在計算機、電話、手機、微波爐等格式電子產(chǎn)品上已經(jīng)被廣泛應(yīng)用,計算機鍵盤通常采用行列掃描法來確定所按下鍵的行列位置。由于鍵盤按鍵是一種機械開關(guān),所以設(shè)計其控制電路時,需要涉及到鍵盤掃描、鍵盤譯碼,光靠矩陣鍵盤是無法完成按鍵輸入工作的。其中鍵盤掃描又涉及到時序產(chǎn)生、按鍵掃描和消除抖動。</p><p><b> 鍵盤掃描</b></p&
63、gt;<p> 鍵盤處理的重要環(huán)節(jié)是時序產(chǎn)生、鍵盤掃描和按鍵消抖,以下分別針對所涉及到的電路進行描述。</p><p><b> 1、時序產(chǎn)生電路</b></p><p> 本時序產(chǎn)生電路中使用了三種不同頻率的工作脈沖波形:系統(tǒng)時鐘脈沖、掃描鍵盤時鐘、鍵盤消抖動時鐘。分別定義如下:</p><p> CLK: IN STD
64、_LOGIC; --系統(tǒng)時鐘脈沖</p><p> CLK_SCAN : OUT STD_LOGIC; --掃描鍵盤時鐘 </p><p> CLK_DEB : OUT STD_LOGIC --鍵盤消抖動時鐘</p><p> 一般消抖動信號時鐘頻率必須比其它的電路使用的脈沖信號頻率更高,一般消抖動頻率是鍵盤掃描或LED頻率的4倍或更高。這里系統(tǒng)
65、時鐘頻率取50MHZ,掃描時鐘頻率取100KHZ,消抖時鐘頻率取200KHZ。</p><p> 生成的電路符號如下,圖4.1所示:</p><p> 圖4.1 時序產(chǎn)生電路符號</p><p><b> 2、按鍵掃描電路</b></p><p> 所謂行列式鍵盤掃描,即用帶有I/O口的線組成行列式結(jié)構(gòu),按鍵設(shè)
66、置在行列的交點上。行列式矩陣鍵盤原理:按鍵設(shè)置在行列線的交叉點,行列線分別連接到按鍵的兩端。列線通過上拉電阻截止+5V電壓,即列線的輸出被定位到高電平狀態(tài);判斷有無按鍵按下時通過行線送出掃描信號,然后列線讀取狀態(tài)得到。其方法是依次給行線送低電平,檢查列線的輸入。若列線全為高電平,則代表所在行無按鍵按下,若列線出現(xiàn)低電平,則低電平所在的行和出現(xiàn)低電平的列的交叉點處有按鍵 按下。行掃描信號為KEY_DRV[3..0],列輸入信號為KEY_I
67、N[3..0],與按鍵的對應(yīng)關(guān)系如表4.1所示。</p><p> 表4.1 n×m行列矩陣對應(yīng)關(guān)系表</p><p> 鍵盤掃描電路是用來產(chǎn)生掃描信號KEY_DRV[3..0],其變化為周期性的有規(guī)律的變化(1110 1101 1011 0111),停留在每個狀態(tài)的時間由按鍵的機械物理特性決定,按鍵在閉合和斷開的瞬太短的按鍵掃描時間容易采集到按鍵抖動,太長的掃描時間容易
68、丟失某些較快的按鍵信息。</p><p> 完成程序設(shè)計,生成相應(yīng)的電路符號,如圖4.2所示:</p><p> 圖4.2 鍵盤掃描電路符號</p><p><b> 3、按鍵消抖電路</b></p><p> 當一個按鍵按下和釋放時,對應(yīng)信號線電平的變化有一個不穩(wěn)定期,即所謂“抖動”,這是因為多數(shù)開關(guān)的閉合和
69、斷開都有一個過程,并不是即刻實現(xiàn)的。在讀取鍵盤狀態(tài)時必須避開這個不穩(wěn)定期,以免造成誤判,這樣一個做法叫做“去抖”。</p><p> 如果當在一段時間內(nèi)都連續(xù)多次讀到同一個非空(即有鍵按下)的掃描碼,可以認為這時按鍵已處于穩(wěn)定狀態(tài),這時得到的掃描碼就代表了一個鍵盤動作,抖動的影響已經(jīng)被剔除。按照這個想法,只需設(shè)置一個倒數(shù)計數(shù)器,當每次讀到的非空掃描碼與上一次的相同,就將計數(shù)器加1;而當一旦讀到不同的掃描碼或空碼
70、則立即將計數(shù)器清0。如果計數(shù)器的值達到某預定值N時,則表示連續(xù)N次讀到同一掃描碼,于是可認為已經(jīng)讀到了有效的按鍵。設(shè)鍵盤掃描的間隔是T,則去抖的時間就是N * T。在實際中,因為一般人的按鍵速度至多是10次/秒,亦即一次按鍵時間是100ms,所以按下的時間可估算為50ms。因此,鍵盤掃描的頻率取100KHz,消抖時鐘頻率取200KHz。</p><p> 綜合上述分析,該鍵盤掃描子模塊關(guān)鍵代碼如下:</p
71、><p> counter:block is </p><p><b> begin</b></p><p> process(clk)is</p><p><b> begin</b></p><p> if(clk'event and clk='1&
72、#39;)then</p><p><b> q<=q+1;</b></p><p><b> end if;</b></p><p> c_debouncing<=q(7); --去抖時鐘信號</p><p> c_keyboard<=q(9 down to 8); --
73、鍵掃信號</p><p> end process;</p><p> key_scan<="1110" when c_keyboard=0 else</p><p> "1101" when c_keyboard=1 else</p><p> "1011" when
74、 c_keyboard=2 else</p><p> "0111" when c_keyboard=3 else</p><p><b> "1111";</b></p><p> end block counter;</p><p> 生成相應(yīng)的電路符號,如圖4.3所示
75、:</p><p> 圖4.3 按鍵消抖電路符號</p><p><b> 鍵盤譯碼</b></p><p> 通過一個譯碼程序,將鍵盤掃描后的值根據(jù)需要設(shè)定成相應(yīng)的按鍵。</p><p><b> 程序設(shè)計如下:</b></p><p> key_decode
76、: PROCESS(SC_CLK)</p><p><b> BEGIN</b></p><p> Z<=KEY_DRV & KEY_IN; --讀入的編碼與掃描結(jié)果拼接</p><p> IF SC_CLK'EVENT AND SC_CLK='1' THEN</p><p>
77、; CASE Z IS --數(shù)字按鍵譯碼電路</p><p> WHEN "11101110"=> K_VALUE<=0; </p><p> WHEN "11101101"=> K_VALUE<=1;</p><p> WHEN "11101011"=&
78、gt; K_VALUE<=2;</p><p> WHEN "11100111"=> K_VALUE<=3;</p><p> WHEN "11011110"=> K_VALUE<=4;</p><p> WHEN "11011101"=> K_VALUE&l
79、t;=5;</p><p> WHEN "11011011"=> K_VALUE<=6;</p><p> WHEN "11010111"=> K_VALUE<=7;</p><p> WHEN "10111110"=> K_VALUE<=8; </p&
80、gt;<p> WHEN "10111101"=> K_VALUE<=9;</p><p> WHEN "10111011"=> K_VALUE<=10;</p><p> WHEN "10110111"=> K_VALUE<=11;</p><p&
81、gt; WHEN "01111110"=> K_VALUE<=12;</p><p> WHEN "01111101"=> K_VALUE<=13;</p><p> WHEN "01111011"=> K_VALUE<=14;</p><p> WHEN
82、 "01110111"=> K_VALUE<=15;</p><p> WHEN OTHERS => K_VALUE<=K_VALUE; --默認情況為K_VALUE保持原來狀態(tài),相當于實現(xiàn)鎖存器</p><p><b> END CASE;</b></p><p> 生成相應(yīng)的電路符號,
83、如圖4.4所示:</p><p> 圖4.4 鍵盤譯碼電路符號</p><p><b> 輸入模塊的實現(xiàn)</b></p><p> 綜合上述分析,對該鍵盤輸入模塊進行完整設(shè)計,以下是該輸入模塊實現(xiàn)的組成原理圖,如圖4.5所示:</p><p> 圖4.5 輸入模塊內(nèi)部原理圖</p><p&
84、gt; 其中,CLK為系統(tǒng)時鐘脈沖,KEY_IN[3..0]為按鍵輸入, DATA[15..0]為按鍵輸入譯碼后的輸出值,它為控制模塊提供數(shù)據(jù)輸入。</p><p> 生成相應(yīng)的電路符號,如圖4.6所示:</p><p> 圖4.6 輸入模塊電路符號圖</p><p><b> 控制模塊設(shè)計</b></p><p&
85、gt; 控制模塊是整個微波爐控制器系統(tǒng)的核心,完成許多復雜的控制和數(shù)據(jù)處理任務(wù),它通過輸入模塊提供的按鍵輸入實現(xiàn)數(shù)據(jù)信息裝載處理,控制顯示模塊顯示相應(yīng)的信息。</p><p> 控制模塊采用FPGA芯片作為主控芯片,其涉及到數(shù)據(jù)的裝載、狀態(tài)控制轉(zhuǎn)換、烹飪計時、溫度控制、火力控制、音效提示等。其中,狀態(tài)控制轉(zhuǎn)換子模塊,其功能是控制微波爐工作過程中的狀態(tài)轉(zhuǎn)換,并發(fā)出相關(guān)控制信號。數(shù)據(jù)裝載子模塊,其功能是根據(jù)按鍵信
86、號設(shè)置定時時間、最高溫度、火力檔位,烹調(diào)屬性設(shè)置以及烹調(diào)數(shù)據(jù)信息裝載。烹飪計時子模塊,其功能是對時鐘進行減法計數(shù),提供烹調(diào)完成時的狀態(tài)信號。溫度控制子模塊,其功能是在食物烹飪過程中進行溫度測定和控制,它同時實現(xiàn)火力控制。音效控制子模塊,其功能是控制微波爐工作時的音效提示,這里直接外接一個蜂鳴器實現(xiàn)該功能。</p><p> 其功能子模塊圖如下,圖4.7所示:</p><p> 4.7
87、 控制模塊功能子模塊圖</p><p><b> 狀態(tài)轉(zhuǎn)換控制</b></p><p> 根據(jù)微波爐工作流程的描述,分析狀態(tài)轉(zhuǎn)換條件及輸出信號,可以得到控制模塊的狀態(tài)轉(zhuǎn)換圖。如圖4.8所示:</p><p> 圖4.8 控制模塊狀態(tài)轉(zhuǎn)換圖</p><p> 圖中,當RESET信號有效時,系統(tǒng)復位清零;輸入/輸出
88、對應(yīng)時間溫度設(shè)置、顯示譯碼測試、完成信號顯示和減法計數(shù)定時四種狀態(tài)進行相應(yīng)的轉(zhuǎn)換。</p><p> 由此生成的狀態(tài)轉(zhuǎn)換ASM圖如圖4.9所示:</p><p> 圖4.9 狀態(tài)轉(zhuǎn)換ASM圖</p><p> 下面,根據(jù)上述狀態(tài)轉(zhuǎn)換圖和ASM圖進行程序設(shè)計,在編寫程序代碼實現(xiàn)狀態(tài)轉(zhuǎn)換控制子模塊過程時,首先,如果RESET=‘1’,則系統(tǒng)清零,當前狀態(tài)為初始狀
89、態(tài),當同步時鐘脈沖,當前狀態(tài)為下一狀態(tài),用程序代碼表示如下:</p><p> IF RESET='1' THEN</p><p> CURR_STATE<=IDLE;</p><p> ELSIF CLK'EVENT AND CLK='1' THEN</p><p> CURR_STAT
90、E<=NEXT_STATE;</p><p><b> END IF;</b></p><p> 當當前狀態(tài)為初始狀態(tài)時,</p><p> LD_TEST<='0';</p><p> LD_DONE<='0';</p><p> LD
91、_CLK<='0';</p><p> COOK<='0';</p><p> 此時,譯碼顯示測試狀態(tài):</p><p> WHEN LAMP_TEST=> LD_TEST<='1'; COOK<='0';</p><p><b>
92、 時間溫度設(shè)置狀態(tài):</b></p><p> WHEN SET_CLOCK=> LD_CLK<='1'; COOK<='0';</p><p><b> 完成信息顯示狀態(tài):</b></p><p> WHEN DONE_MSG => LD_DONE<='
93、;1'; COOK<='0';</p><p> 在初始狀態(tài),如果按下“TEST”鍵,下一狀態(tài)即為顯示測試狀態(tài),如果按下“SET_T”鍵,下一狀態(tài)即為時間設(shè)置狀態(tài),如果按下“START”鍵,即烹調(diào)開始進行時,此時下一狀態(tài)為減法計數(shù)定時狀態(tài),該過程用程序代碼實現(xiàn)如下:</p><p> WHEN IDLE=></p><p>
94、 IF(TEST='1') THEN </p><p> NEXT_STATE<=LAMP_TEST;</p><p> LD_TEST<='1';</p><p> ELSIF SET_T='1' THEN</p><p> NEXT_STATE<=SET_CLOC
95、K;</p><p> LD_CLK<='1';</p><p> ELSIF ((START='1') AND (DONE='0')) THEN</p><p> NEXT_STATE<=TIMER;</p><p> COOK<='1';</p
96、><p><b> END IF;</b></p><p> 在減法計數(shù)定時狀態(tài),如果輸出DONE指示烹調(diào)信息完成,則下一狀態(tài)為顯示信息完成狀態(tài),顯示烹調(diào)完成信息,否則,下一狀態(tài)還是減法計數(shù)定時狀態(tài),COOK高電平有效,用程序代碼實現(xiàn)如下:</p><p> WHEN TIMER=> </p><p> IF
97、DONE='1' THEN</p><p> NEXT_STATE<=DONE_MSG;</p><p> LD_DONE<='1';</p><p><b> ELSE </b></p><p> NEXT_STATE<=TIMER;</p>&l
98、t;p> COOK<='1';</p><p><b> END IF;</b></p><p> 生成的控制模塊相應(yīng)的電路符號,如圖4.10所示:</p><p> 圖4.10 KZQ電路符號</p><p><b> 數(shù)據(jù)裝載</b></p>
99、<p> 數(shù)據(jù)裝載器ZZQ,它本質(zhì)上就是一個三選一的數(shù)據(jù)選擇器。根據(jù)其應(yīng)完成的邏輯功能,本設(shè)計可采用一個進程來完成,但由于三個被選擇的數(shù)據(jù)只有一個來自輸入口,因此另兩個被選擇的數(shù)據(jù)則通過進程的說明部分定義兩個常數(shù)來產(chǎn)生。</p><p> 由于ZZQ裝入測試的數(shù)據(jù)可以用8個8作為顯示驅(qū)動信息數(shù)據(jù),因此,將該用于顯示的常數(shù)ALLS分解成8個“8”,其中4個“8”作為時間顯示驅(qū)動信息,3個“8”作為
100、溫度顯示驅(qū)動信息,1個“8”作為火力檔位顯示驅(qū)動信息,分別經(jīng)過八個譯碼器譯碼后顯示驅(qū)動信息編碼。因此,該常數(shù)應(yīng)是8個分段的4位BCD碼,即“1000 1000 1000 1000”和“1000 1000 1000 1000” ,同理,DONE的BCD碼分別為“1010 1011 1100 1101”以顯示donE的常數(shù)DONE。</p><p> 通過上述分析,該模塊的主要程序可實現(xiàn)如下:</p>
101、<p> PROCESS(DATA1,LD_TEST,LD_CLK,LD_DONE) IS</p><p> CONSTANT ALLS:STD_LOGIC_VECTOR(15 DOWNTO 0):="1000100010001000";</p><p> CONSTANT DONE:STD_LOGIC_VECTOR(15 DOWNTO 0):=&qu
102、ot;1010101111001101"; </p><p> VARIABLE TEMP:STD_LOGIC_VECTOR(2 DOWNTO 0);</p><p><b> BEGIN</b></p><p> LOAD<=LD_TEST OR LD_DONE OR LD_CLK;</p><p&g
103、t; TEMP:=LD_TEST & LD_DONE & LD_CLK;</p><p> CASE TEMP IS</p><p> WHEN "100" => DATA2<=ALLS;--LOAD_TEST =1</p><p> WHEN "010" => DATA2<=
104、DONE;--LOAD_DONE </p><p> WHEN "001" => DATA2<=DATA1;--LOAD_CLK</p><p> WHEN OTHERS=> NULL;</p><p><b> END CASE;</b></p><p> END PR
105、OCESS;</p><p> 完成VHDL源程序的輸入,編譯、運行,生成相應(yīng)的電路符號,如下圖4.11所示:</p><p> 圖4.11 ZZQ電路符號</p><p><b> 烹飪計時</b></p><p> 烹飪計時器JSQ為減計數(shù)計數(shù)器,其最大計時時間為59:59,因此可用兩個減計數(shù)十進制計數(shù)器D
106、CNT10和兩個減計數(shù)六進制計數(shù)器DCNT6級聯(lián)構(gòu)成。其中,兩個十進制的減法計數(shù)器用于分、秒的個位減法計數(shù),兩個六進制的減法計數(shù)器用于分、秒的十位減法計數(shù)。</p><p> 由所學知識可知,計數(shù)的功能是累計輸入脈沖的個數(shù),實現(xiàn)計數(shù)功能的數(shù)字電路即計數(shù)器,被計數(shù)的脈沖可以是周期性脈沖,也可以是非周期性脈沖,通常加在計數(shù)器的時鐘脈沖輸入端,作為計數(shù)器的時鐘脈沖。</p><p> 因此,
107、根據(jù)減法計數(shù)器隨計數(shù)脈沖的不斷輸入而遞減計數(shù),在具體設(shè)計該十進制減法計數(shù)器和六進制減法計數(shù)器過程中,可以當計數(shù)值減到0時,其計數(shù)器的數(shù)值自動轉(zhuǎn)為定時設(shè)定時間,在十進制計數(shù)器的設(shè)計過程中,可表達為:</p><p> IF CQI="0000" THEN CQI<="1001";</p><p> ELSE CQI<=CQI-'
108、1';</p><p> 同理,六進制計數(shù)器的設(shè)計表達式為:</p><p> IF CQI="0000" THEN CQI<="0101";</p><p> ELSE CQI<=CQI-'1';</p><p> 設(shè)計完兩個計數(shù)器之后,在計時器電路模塊,對
109、該十進制和六進制計數(shù)器電路模塊進行定義并元件例化,生成相應(yīng)的元件符號。如圖4.12和4.13所示:</p><p> 圖4.12 十進制計數(shù)器電路符號</p><p> 圖4.13 六進制計數(shù)器電路符號</p><p> 然后將兩計數(shù)器級聯(lián)構(gòu)成。由六進制計數(shù)器和十進制計數(shù)器級聯(lián)構(gòu)成的計時器內(nèi)部組成原理圖如圖4.14所示:</p><p&g
110、t; 圖4.14 JSQ的內(nèi)部組成原理圖</p><p> 這里,計時器相應(yīng)的頂層文件電路符號如圖4.15所示:</p><p> 圖4.15 JSQ電路符號</p><p> 其中,輸入信號LOAD為高電平時完成信號的載入;COOK信號為高電平時,在每個時鐘周期的上升沿進行減法計數(shù)。輸出信號DONE表示烹調(diào)時間到;ALARM表示音響效應(yīng);SEC_L[3
111、..0]、SEC_H[3..0]、MIN_L[3..0]、MIN_H[3..0]顯示所剩時間,和測試狀態(tài)信息、烹調(diào)完畢狀態(tài)信息等。</p><p><b> 溫度控制</b></p><p> 溫度控制子模塊,主要涉及到溫度的測定和控制。本設(shè)計采用模擬溫度傳感器AD590和模數(shù)轉(zhuǎn)換器ADC0809實現(xiàn)對溫度的檢測。</p><p> AD
112、590用于模擬微波爐內(nèi)食品的溫度,AD590溫度傳感器的感測能力是溫度每升高1K就增加1μA的電量,該電流流入10kΩ電阻后,將產(chǎn)生10mV(0.01V)的電壓。而0℃(等于273K)時,輸出電流273 μA,經(jīng)I/V轉(zhuǎn)換后,將產(chǎn)生2.73 V的電壓。如果測到的電壓為x V時,則可由( x-2.73)÷0.01得到要測量的溫度。溫度傳感器AD590的輸出經(jīng)過放大器后,將電壓引入ADC0809的Vin (+) 管腳,由ADC08
113、09進行模數(shù)轉(zhuǎn)換。</p><p> ADC0809是8位模數(shù)轉(zhuǎn)換器,測量精度為0.02 V,當ADC0809的轉(zhuǎn)換值為x 時,所測溫度為:T=(x ×0.02-2.73)÷0.01=x ×2-273。ADC0809將當前溫度轉(zhuǎn)換成數(shù)字量后送入FPGA控制芯片,控制芯片對由鍵盤輸入的加熱最高溫度給定值進行比較,即通過直接比較設(shè)定值和測得值的BCD編碼,當爐內(nèi)溫度高于給定溫度時,立即
114、停止加熱,并輸出控制信號提示報警燈亮,從而實現(xiàn)對溫度的控制。</p><p> 具體設(shè)計過程中,涉及到數(shù)據(jù)的采集、時鐘定時和溫度控制。數(shù)據(jù)采集主要完成溫度的處理,時鐘定時主要對溫度起定時作用,溫度控制部分的輸入信號來自數(shù)據(jù)處理和時鐘定時后的輸出,當實際輸出溫度小于預輸出溫度值時,輸出信號控制微波爐繼續(xù)加熱。</p><p> 以下是該設(shè)計的流程圖,如圖4.16所示:</p>
115、<p> 圖4.16 溫度控制部分流程圖</p><p> 數(shù)據(jù)采集主要完成溫度的處理,實現(xiàn)T=(x×0.02-2.73)÷0.01的運算,數(shù)據(jù)調(diào)整為對應(yīng)的數(shù)字信號,在讀取ADC0809的數(shù)據(jù)后,先將轉(zhuǎn)換數(shù)據(jù)左移1位(相當于乘以2),然后減去273,當溫度達到某一數(shù)值時,使能信號和清零信號為‘1’,此時時鐘開始計時。</p><p> 根據(jù)上述分析
116、,編寫該溫度控制器的VHDL程序,其主要程序如下:</p><p><b> --數(shù)據(jù)采集部分</b></p><p> process (clk,data) </p><p><b> begin</b></p><p> if (clk'event and clk=1) th
117、en</p><p> if (tout>=(cout-6) AND tout<=(cout+5)) then --設(shè)定值上下5度的范圍內(nèi)開始計時</p><p><b> enout<=1;</b></p><p><b> else</b></p><p><b
118、> enout<=0;</b></p><p><b> end if;</b></p><p> -- 時鐘定時部分 </p><p> process (clk ,clearing , enin ) </p><p> variable s , m : integer range
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- vhdl微波爐控制器課程設(shè)計-- 數(shù)字微波爐控制器
- 畢業(yè)設(shè)計---可編程微波爐控制器設(shè)計
- 微波爐控制器論文
- 畢業(yè)設(shè)計論文--基于fpga的微波爐控制器設(shè)計
- 畢業(yè)設(shè)計論文--基于fpga的微波爐控制器設(shè)計
- 畢業(yè)設(shè)計---基于單片機的微波爐控制器
- 可編程微波爐控制器系統(tǒng)設(shè)計
- 基于fpga的微波爐控制器設(shè)計
- 課程設(shè)計---vhdl設(shè)計微波爐控制器
- eda課程設(shè)計---微波爐控制器設(shè)計
- 微波爐語音控制系統(tǒng)-畢業(yè)設(shè)計論文
- 微波爐語音控制系統(tǒng)-畢業(yè)設(shè)計論文
- eda課程設(shè)計---微波爐定時控制器
- 簡易微波爐控制器的設(shè)計與實現(xiàn)
- 基于fpga的微波爐控制器【畢業(yè)論文】
- 微波爐課程設(shè)計---基于微波爐控制系統(tǒng)設(shè)計
- 開題報告---基于fpga的微波爐控制器設(shè)計
- 數(shù)字電路課程設(shè)計微波爐控制器
- 基于fpga的微波爐控制器【開題報告】
- 課程設(shè)計---基于fpga的微波爐控制器設(shè)計
評論
0/150
提交評論