

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 本科生課程設(shè)計(jì)</b></p><p> 題 目: 數(shù)字微波爐控制器</p><p> 課 程: 數(shù)字電路課程設(shè)計(jì)</p><p> ?! I(yè): 電子信息工程</p><p><b> 目錄</b></p><p><b
2、> 一、緒論3</b></p><p> 二、 關(guān)鍵技術(shù)簡(jiǎn)介3</p><p> 2.1 FPGA簡(jiǎn)介3</p><p> 2.2 VHDL語言概述4</p><p> 2.3 ALTIUM DESIGNER簡(jiǎn)介5</p><p> 三、微波爐定時(shí)控制器的設(shè)計(jì)方案分析5<
3、/p><p> 3.1 系統(tǒng)設(shè)計(jì)的要求5</p><p> 3.2 系統(tǒng)總體功能描述6</p><p> 3.3 各模塊的功能實(shí)現(xiàn)6</p><p> 3.3.1 輸入模塊6</p><p> 3.3.2 狀態(tài)控制模塊7</p><p> 3.3.3 顯示模塊7</p&
4、gt;<p> 四、系統(tǒng)詳細(xì)設(shè)計(jì)8</p><p><b> 4.1控制模塊8</b></p><p> 4.1.1狀態(tài)轉(zhuǎn)換控制8</p><p> 4.1.2數(shù)據(jù)裝載10</p><p> 4.1.3 烹飪計(jì)時(shí)11</p><p> 4.1.4 控制模塊的實(shí)現(xiàn)
5、12</p><p><b> 五、系統(tǒng)仿真12</b></p><p> 5.1狀態(tài)控制器仿真12</p><p> 5.2 數(shù)據(jù)裝載器的仿真13</p><p> 5.3 烹飪計(jì)時(shí)器的仿真14</p><p><b> 六、 結(jié)論15</b><
6、/p><p><b> 一、緒論</b></p><p> 隨著人民生活水平的提高,微波爐開始進(jìn)人越來越多的家庭,它給人們的生活 帶來了極大的方便。微波爐由 2450MHz 的超高頻來加熱食物。它省時(shí)、省電、方便 和衛(wèi)生。作為現(xiàn)代的烹飪工具,微波爐的控制器體現(xiàn)著它的重要性能指標(biāo)。目前大部分微波爐控制器采用單片機(jī)進(jìn)行設(shè)計(jì),電路比較復(fù)雜,性能不夠靈活。本文采用先進(jìn)的EDA
7、技術(shù),利用ALTIUM DESIGNER工作平臺(tái)和VHDL設(shè)計(jì)語言,設(shè)計(jì)了一種新型的微波爐控制器系統(tǒng)。該系統(tǒng)具有系統(tǒng)復(fù)位、時(shí)間設(shè)定、烹飪計(jì)時(shí)等功能,在 FPGA 上實(shí)現(xiàn)。</p><p><b> 關(guān)鍵技術(shù)簡(jiǎn)介</b></p><p> 2.1 FPGA簡(jiǎn)介</p><p> FPGA(Field-Programmable GateArr
8、ay),即現(xiàn)場(chǎng)可編程門陣列,它是在 PAL、 GAL、CPLD 等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路 (ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了 原有可編程器件門電路數(shù)有限的缺點(diǎn)。</p><p> 目前以硬件描述語言(Verilog 或 VHDL)所完成的電路設(shè)計(jì),可以經(jīng)過簡(jiǎn)單的綜合與布局,快速的燒錄至 FPGA 上進(jìn)行測(cè)試,是現(xiàn)代 IC 設(shè)計(jì)驗(yàn)證的技術(shù)
9、主流。這些可編輯元件可以被用來實(shí)現(xiàn)一些基本的邏輯門電路(比如 AND、OR、XOR、 NOT)或者更復(fù)雜一些的組合功能比如解碼器或數(shù)學(xué)方程式。在大多數(shù)的 FPGA 里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器(Flip-flop)或者其他更加完整的 記憶塊。</p><p> 系統(tǒng)設(shè)計(jì)師可以根據(jù)需要通過可編輯的連接把 FPGA 內(nèi)部的邏輯塊連接起來,就好像一個(gè)電路試驗(yàn)板被放在了一個(gè)芯片里。一個(gè)出廠后的成品
10、FPGA 的邏輯塊和連 接可以按照設(shè)計(jì)者而改變,所以 FPGA 可以完成所需要的邏輯功能。</p><p> FPGA一般來說比 ASIC(專用集成芯片)的速度要慢,無法完成復(fù)雜的設(shè)計(jì),而且消耗更多的電能。但是他們也有很多的優(yōu)點(diǎn)比如可以快速成品,可以被修改來改正程序中的錯(cuò)誤和更便宜的造價(jià)。廠商也可能會(huì)提供便宜的但是編輯能力差的FPGA。因?yàn)檫@些芯片有比較差的可編輯能力,所以這些設(shè)計(jì)的開發(fā)是在普通的FPGA上完成
11、的,然后將設(shè)計(jì)轉(zhuǎn)移到一個(gè)類似于ASIC的芯片上。</p><p> 2.2 VHDL語言概述</p><p> VHDL 的英文全名是 Very-High-Speed Integrated Circuit Hardware Description Language,誕生于 1982 年。1987 年底,VHDL 被 IEEE 和美國(guó)國(guó)防部確認(rèn)為標(biāo)準(zhǔn) 硬件描述語言。 </p>
12、<p> VHDL 主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式和描述風(fēng)格與句法是十分類似于一般的計(jì)算機(jī) 高級(jí)語言。VHDL的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體(可以是一個(gè)元件,一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱可視部分,及端口)和內(nèi)部(或稱不可視部分),既涉及實(shí)體的內(nèi)部功能和算法完成部分。在對(duì)一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計(jì)
13、就可以直接調(diào)用這個(gè)實(shí)體。這種將設(shè)計(jì)實(shí) 體分成內(nèi)外部分的概念是 VHDL 系統(tǒng)設(shè)計(jì)的基本點(diǎn)。 </p><p> VHDL語言能夠成為標(biāo)準(zhǔn)化的硬件描述語言并獲得廣泛應(yīng)用,它自身必然具有 很多其他硬件描述語言所不具備的優(yōu)點(diǎn)。歸納起來,VHDL 語言主要具有以下優(yōu)點(diǎn): </p><p> VHDL 語言功能強(qiáng)大,設(shè)計(jì)方式多樣 VHDL 語言具有強(qiáng)大的語言結(jié)構(gòu), 只需采用簡(jiǎn)單明確的 VHDL
14、語言程序就可以 述十分復(fù)雜的硬件電路。同時(shí), 它還具有多層次的電路設(shè)計(jì)描述功能。此外,VHDL 語 言能夠同時(shí)支持同步電路、異步電路和隨機(jī)電路的設(shè)計(jì)實(shí)現(xiàn),這是其他硬件描述語言 所不能比擬的。VHDL 語言設(shè)計(jì)方法靈活多樣,既支持自頂向下的設(shè)計(jì)方式,也支 持自底向上的設(shè)計(jì)方法;既支持模塊化設(shè)計(jì)方法,也支持層次化設(shè)計(jì)方法。 </p><p> ?。?)VHDL 語言具有強(qiáng)大的硬件描述能力 VHDL 語言具有多層次的電
15、路設(shè)計(jì)描述功能,既可描述系統(tǒng)級(jí)電路,也可以描 述門級(jí)電路;描述方式既可以采用行為描述、寄存器傳輸描述或者結(jié)構(gòu)描述,也可以 采用三者的混合描述方式。同時(shí),VHDL 語言也支持慣性延遲和傳輸延遲,這樣可 以準(zhǔn)確地建立硬件電路的模型。VHDL 語言的強(qiáng)大描述能力還體現(xiàn)在它具有豐富的 數(shù)據(jù)類型。VHDL 語言既支持標(biāo)準(zhǔn)定義的數(shù)據(jù)類型,也支持用戶定義的數(shù)據(jù)類型,這樣便會(huì)給硬件描述帶來較大的自由度。 </p><p> (
16、3)VHDL 語言具有很強(qiáng)的移植能力 VHDL 語言很強(qiáng)的移植能力主要體現(xiàn)在:對(duì)于同一個(gè)硬件電路的 VHDL 語言 描述,它可以從一個(gè)模擬器移植到另一個(gè)模擬器上,從一個(gè)綜合器移植到另一個(gè)綜合器上,或者從一個(gè)工作平臺(tái)移植到另一個(gè)工作平臺(tái)上去執(zhí)行。 </p><p> VHDL 語言的設(shè)計(jì)描述與器件無關(guān) 采用 VHDL 語言描述硬件電路時(shí),設(shè)計(jì)人員并不需要首先考慮選擇進(jìn)行設(shè)計(jì)的 器件。這樣做的好處是可以使設(shè)計(jì)人員集
17、中精力進(jìn)行電路設(shè)計(jì)的優(yōu)化,而不需要考慮 其他的問題。當(dāng)硬件電路的設(shè)計(jì)描述完成以后,VHDL 語言允許采用多種不同的器 件結(jié)構(gòu)來實(shí)現(xiàn)。 (5)VHDL 語言程序易于共享和復(fù)用 VHDL 語言采用基于庫 (library)的設(shè)計(jì)方法。在設(shè)計(jì)過程中,設(shè)計(jì)人員可以建 立各種可再次利用的模塊,一個(gè)大規(guī)模的硬件電路的設(shè)計(jì)不可能從門級(jí)電路開始一步步地進(jìn)行設(shè)計(jì),而是一些模塊的累加。這些模塊可以預(yù)先設(shè)計(jì)或者使用以前設(shè)計(jì)中的存檔模塊,將這些模塊存放在庫中,
18、就可以在以后的設(shè)計(jì)中進(jìn)行復(fù)用。 </p><p> 由于 VHDL 語言是一種描述、模擬、綜合、優(yōu)化和布線的標(biāo)準(zhǔn)硬件描述語言, 因此它可以使設(shè)計(jì)成果在設(shè)計(jì)人員之間方便地進(jìn)行交流和共享,從而減小硬件電路設(shè)計(jì)的工作量,縮短開發(fā)周期。</p><p> 2.3 ALTIUM DESIGNER簡(jiǎn)介</p><p> Altium Designer 是原Protel軟件
19、開發(fā)商Altium公司推出的一體化的電子產(chǎn)品開發(fā)系統(tǒng),主要運(yùn)行在Windows XP操作系統(tǒng)。這套軟件通過把原理圖設(shè)計(jì)、電路仿真、PCB繪制編輯、拓?fù)溥壿嬜詣?dòng)布線、信號(hào)完整性分析和設(shè)計(jì)輸出等技術(shù)的完美融合,為設(shè)計(jì)者提供了全新的設(shè)計(jì)解決方案,使設(shè)計(jì)者可以輕松進(jìn)行設(shè)計(jì),熟練使用這一軟件必將使電路設(shè)計(jì)的質(zhì)量和效率大大提高。</p><p> Altium Designer 除了全面繼承包括Protel 99SE、Pr
20、otel DXP在內(nèi)的先前一系列版本的功能和優(yōu)點(diǎn)外,還增加了許多改進(jìn)和很多高端功能。該平臺(tái)拓寬了板級(jí)設(shè)計(jì)的傳統(tǒng)界面,全面集成了FPGA設(shè)計(jì)功能和SOPC設(shè)計(jì)實(shí)現(xiàn)功能,從而允許工程設(shè)計(jì)人員能將系統(tǒng)設(shè)計(jì)中的FPGA與PCB設(shè)計(jì)及嵌入式設(shè)計(jì)集成在一起。 由于Altium Designer 在繼承先前Protel軟件功能的基礎(chǔ)上,綜合了FPGA設(shè)計(jì)和嵌入式系統(tǒng)軟件設(shè)計(jì)功能,Altium Designer 對(duì)計(jì)算機(jī)的系統(tǒng)需求比先前的版本要高一些。
21、</p><p> 三、微波爐定時(shí)控制器的設(shè)計(jì)方案分析</p><p> 3.1 系統(tǒng)設(shè)計(jì)的要求</p><p> 現(xiàn)需設(shè)計(jì)一個(gè)微波爐控制器,通過該控制器再配以4個(gè)七段數(shù)碼二極管完成微波爐的定時(shí)及信息顯示。各信號(hào)的功能及要求如下:</p><p> CLK是秒時(shí)鐘脈沖輸入,它接收每秒一個(gè)時(shí)鐘脈沖的節(jié)拍信號(hào)。RESET為復(fù)位信號(hào),高電平
22、有效,用于芯片的復(fù)位功能。TEST為測(cè)試信號(hào),高電平有效,用于測(cè)試4個(gè)七段數(shù)碼二極管工作是否正常。START為開始加熱信號(hào),高電平有效,SET_UP信號(hào)為定時(shí)設(shè)置信號(hào),高電平時(shí)可以設(shè)置定時(shí)時(shí)間,DATA為定時(shí)的時(shí)間,COOK為加熱輸出,另外四個(gè)輸出分別表示顯示的定時(shí)時(shí)間的分和秒。</p><p> 3.2 系統(tǒng)總體功能描述</p><p> 各信號(hào)功能及要求如下:</p>
23、<p> CLK是秒時(shí)鐘脈沖輸入,它接收每秒一個(gè)時(shí)鐘脈沖的節(jié)拍信號(hào)。RESET為復(fù)位信號(hào),高電平有效,用于芯片的復(fù)位功能。TEST信號(hào)是測(cè)試信號(hào),高電平有效,用于測(cè)試七段數(shù)碼管工作是否正常。SET_UP是烹調(diào)時(shí)間設(shè)置控制信號(hào),高電平有效。DATA1是一個(gè)16位總線輸入信號(hào),輸入所設(shè)置的時(shí)間長(zhǎng)短,它由高到低分為4組,每一組是BCD碼輸入,分別表示分、秒十位、個(gè)位的數(shù)字,如12分59秒。START是烹調(diào)開始的控制信號(hào),高電平有
24、效。COOK是烹調(diào)進(jìn)行信號(hào),外接用于控制烹調(diào)的繼電器開關(guān),高電平時(shí)表明烹調(diào)已經(jīng)開始或正在進(jìn)行,低電平表示烹調(diào)結(jié)束或沒有進(jìn)行。MIN_H,MIN_L,SEC_H,SEC_L是四組七位總線信號(hào),通過LCD動(dòng)態(tài)的顯示完成烹調(diào)所剩的時(shí)間及測(cè)試狀態(tài)信息,烹調(diào)完畢的狀態(tài)信息。</p><p> 該微波爐控制器的具體功能要求如下:上電后系統(tǒng)首先處于復(fù)位狀態(tài)。在工作是首先按時(shí)間設(shè)置鍵設(shè)置烹調(diào)時(shí)間,此時(shí)系統(tǒng)輸入DATA1的數(shù)據(jù)作
25、為烹調(diào)所需的時(shí)間,然后系統(tǒng)自動(dòng)回到復(fù)位狀態(tài),同時(shí)4個(gè)七段數(shù)碼管顯示時(shí)間信息。在按START鍵后系統(tǒng)進(jìn)入烹調(diào)狀態(tài)。COOK信號(hào)開始為高電平,此時(shí)4個(gè)七段數(shù)碼管每隔一秒鐘變化一次,用以刷新還剩剩余多少時(shí)間結(jié)束烹調(diào)。烹調(diào)結(jié)束后,COOK信號(hào)變?yōu)榈碗娖?,同時(shí)LCD顯示“0000”的信息,同時(shí)蜂鳴器發(fā)出提示音,然后系統(tǒng)回到復(fù)位狀態(tài)。系統(tǒng)可以通過按RESET鍵隨時(shí)回到復(fù)位狀態(tài)。在復(fù)位狀態(tài)下,按TEST鍵在4個(gè)數(shù)碼管上會(huì)顯示“8888”的信息,它可以
26、測(cè)試LCD工作是否正常。</p><p> 3.3 各模塊的功能實(shí)現(xiàn)</p><p> 本系統(tǒng)主要由輸入、控制和顯示部分組成。輸入部分主要完成用戶對(duì)控制功能</p><p> 的設(shè)置,采用按鍵作為輸入設(shè)備。控制部分是本系統(tǒng)的核心,它接收用戶的輸入,完成相應(yīng)的控制邏輯功能,并將當(dāng)前的工作狀態(tài)等信息送到顯示部分。顯示部分主要監(jiān)視系統(tǒng)工作狀態(tài)并提示用戶進(jìn)行控制操作。
27、 </p><p> 3.3.1 輸入模塊</p><p> 本系統(tǒng)采 用鍵盤進(jìn)行輸入設(shè)置,即由一個(gè) 4*4 矩陣鍵盤實(shí)現(xiàn)數(shù)據(jù)輸入控制。該矩陣鍵盤上16個(gè)按鍵分別是:</p><p> 輸入模塊包括時(shí)鐘脈沖電路、鍵盤掃描電路、消枓同步電 路和鍵盤譯碼電路,通過該模塊將掃描得到的按鍵值送到控制模塊。</p><p> 3.3.2 狀態(tài)控
28、制模塊</p><p> 控制部分作為整個(gè)微波爐控制器系統(tǒng)的核心,它采用 FPGA 芯片作為主控核心, 完成許多復(fù)雜的控制和數(shù)據(jù)處理任務(wù)。它通過輸入模塊提供的按鍵輸入實(shí)現(xiàn)數(shù)據(jù)信息裝載處理,并將處理結(jié)果通過顯示模塊顯示出來。其涉及到數(shù)據(jù)的裝載、狀態(tài)轉(zhuǎn)換控制、烹飪計(jì)時(shí)。</p><p> 3.3.3 顯示模塊</p><p> 顯示部分采用LCD和LED來實(shí)現(xiàn)。其
29、中,用LCD作為時(shí)間、狀態(tài)顯示,用發(fā)光二極管作為火力大小顯示。具體設(shè)計(jì)時(shí),采用 LCD進(jìn)行8位顯示,高四位顯示烹飪時(shí)間,低四位顯示當(dāng)前的烹飪狀態(tài)。3個(gè)LED顯示火力的大小,其中第一個(gè)亮表示小火,第一和第二個(gè)亮表示中火,3個(gè)全亮表示大火。</p><p> 3.4 系統(tǒng)的工作流程</p><p><b> 四、系統(tǒng)詳細(xì)設(shè)計(jì)</b></p><p&
30、gt;<b> 4.1控制模塊 </b></p><p> 控制模塊是整個(gè)微波爐控制器系統(tǒng)的核心,完成許多復(fù)雜的控制和數(shù)據(jù)處理任</p><p> 務(wù),它通過輸入模塊提供的按鍵輸入實(shí)現(xiàn)數(shù)據(jù)信息裝載處理,控制顯示模塊顯示相應(yīng)的信息。 控制模塊采FPGA芯片作為主控芯片,其涉及到數(shù)據(jù)的裝載、狀態(tài)控制轉(zhuǎn)換、 烹飪計(jì)時(shí)等。其中,狀態(tài)控制轉(zhuǎn)換子模塊,其功能是控制微波爐工作
31、過程中的狀態(tài)轉(zhuǎn)換,并發(fā)出相關(guān)控制信號(hào)。數(shù)據(jù)裝載子模塊,其功能是根據(jù)按鍵信號(hào)設(shè)置定時(shí)時(shí)間、最高溫度、火力檔位,烹調(diào)屬性設(shè)置以及烹調(diào)數(shù)據(jù)信息裝載。烹飪計(jì)時(shí)子模塊,其功能是對(duì)時(shí)鐘進(jìn)行減法計(jì)數(shù),提供烹調(diào)完成時(shí)的狀態(tài)信號(hào)。音效控制子模塊,其功能是控制微波爐工作時(shí)的音效提示,這里直接外接一個(gè)蜂鳴器實(shí)現(xiàn)該功能。 </p><p> 其功能子模塊圖如下: </p><p> 4.1.1狀態(tài)轉(zhuǎn)換控制&
32、lt;/p><p> 根據(jù)微波爐工作流程的描述,分析狀態(tài)轉(zhuǎn)換條件及輸出信號(hào),可以得到控制模塊的狀態(tài)轉(zhuǎn)換圖</p><p> 下面,根據(jù)上述狀態(tài)轉(zhuǎn)換圖和 ASM 圖進(jìn)行程序設(shè)計(jì),在編寫程序代碼實(shí)現(xiàn)狀態(tài)轉(zhuǎn)換控制子模塊過程時(shí),首先,如果 RESET=‘1’,則系統(tǒng)復(fù)位,當(dāng)前狀態(tài)為初始狀態(tài),當(dāng)同步時(shí)鐘脈沖,當(dāng)前狀態(tài)為下一狀態(tài),用程序代碼表示如下:</p><p> IF
33、RESET='1' THEN</p><p> CURR_STATE<=DEFAULT;</p><p> ELSIF CLK'EVENT AND CLK='1' THEN</p><p> CURR_STATE<=NEXT_STATE;</p><p><b> END
34、IF;</b></p><p> 當(dāng)當(dāng)前狀態(tài)為初始狀態(tài)時(shí), </p><p> LOAD_LED<='0';</p><p> LOAD_DONE<='0';</p><p> LOAD_SET<='0';</p><p> COO
35、K<='0';</p><p> 此時(shí),顯示測(cè)試狀態(tài):</p><p> WHEN LED_TEST=>LOAD_LED<='1';COOK<='0';</p><p><b> 時(shí)間設(shè)置狀態(tài): </b></p><p> WHEN SETT
36、ING=>LOAD_SET<='1';COOK<='0';</p><p> 完成信息顯示狀態(tài): </p><p> WHEN FINISHED=>LOAD_DONE<='1';COOK<='0';</p><p> 在初始狀態(tài),如果按下“TEST”鍵,下一狀態(tài)
37、即為顯示測(cè)試狀態(tài),如果按下 “SETUP”鍵,下一狀態(tài)即為時(shí)間設(shè)置狀態(tài),如果按下“START”鍵,即烹調(diào)開始進(jìn)行時(shí), 此時(shí)下一狀態(tài)為減法計(jì)數(shù)定時(shí)狀態(tài),該過程用程序代碼實(shí)現(xiàn)如下: </p><p> WHEN DEFAULT=></p><p> IF TEST='1' THEN</p><p> NEXT_STATE<=LED_TE
38、ST;</p><p> LOAD_LED<='1';</p><p> ELSIF SETUP='1' THEN</p><p> NEXT_STATE<=SETTING;</p><p> LOAD_SET<='1';</p><p>
39、ELSIF START='1' THEN</p><p> NEXT_STATE<=COUNTER;</p><p> COOK<='1';</p><p><b> END IF;</b></p><p> 在減法計(jì)數(shù)定時(shí)狀態(tài),如果輸出 DONE 指示烹調(diào)信息完成,則
40、下一狀態(tài)為顯示 信息完成狀態(tài),顯示烹調(diào)完成信息,否則,下一狀態(tài)還是減法計(jì)數(shù)定時(shí)狀態(tài),COOK 高電平有效,用程序代碼實(shí)現(xiàn)如下: </p><p> WHEN COUNTER=></p><p> IF DONE='1' THEN</p><p> NEXT_STATE<=FINISHED;</p><p>
41、 LOAD_DONE<='1';</p><p><b> ELSE</b></p><p> NEXT_STATE<=COUNTER;</p><p> COOK<='1';</p><p><b> END IF;</b></p&g
42、t;<p> 生成的控制模塊相應(yīng)的電路符號(hào):</p><p><b> 4.1.2數(shù)據(jù)裝載</b></p><p> 數(shù)據(jù)裝載器,它本質(zhì)上就是一個(gè)三選一的數(shù)據(jù)選擇器。根據(jù)其應(yīng)完成的邏輯功能,本設(shè)計(jì)可采用一個(gè)進(jìn)程來完成,但由于三個(gè)被選擇的數(shù)據(jù)只有一個(gè)來自輸入口,因此另兩個(gè)被選擇的數(shù)據(jù)則通過進(jìn)程的說明部分定義兩個(gè)常數(shù)來產(chǎn)生。由于裝入測(cè)試的數(shù)據(jù)可以用4個(gè)
43、8作為顯示測(cè)試信息數(shù)據(jù),經(jīng)過八個(gè)譯碼器譯碼后顯示測(cè)試信息編碼。因此,該常數(shù)應(yīng)是8個(gè)分段的4位 BCD 碼,即“1000100010001000”,同理,DONE 的 BCD 碼分別為“0000000000000000”以顯示DONE的常數(shù) “0000”。</p><p> 通過上述分析,該模塊的主要程序可實(shí)現(xiàn)如下:</p><p> PROCESS(DATA1,LOAD_LED,LOA
44、D_SET,LOAD_DONE) IS</p><p> CONSTANTTEST8: STD_LOGIC_VECTOR(15 DOWNTO 0):=X"8888";</p><p> CONSTANT COOKED:STD_LOGIC_VECTOR(15 DOWNTO 0):=x"0000";</p><p> VAR
45、IABLE TEMP:STD_LOGIC_VECTOR(2 DOWNTO 0);</p><p><b> BEGIN</b></p><p> LOAD<=LOAD_LED OR LOAD_DONE OR LOAD_SET;</p><p> TEMP:=LOAD_LED & LOAD_DONE & LOAD_SE
46、T;</p><p> CASE TEMP IS</p><p> WHEN "100" => DATA2<=TEST8;</p><p> WHEN "010" => DATA2<=COOKED;</p><p> WHEN "001" =>
47、DATA2<=DATA1;</p><p> WHEN OTHERS=> NULL;</p><p><b> END CASE;</b></p><p> END PROCESS; </p><p> 完成 VHDL 源程序的輸入,編譯、運(yùn)行,生成相應(yīng)的電路符號(hào):</p><p&
48、gt; 4.1.3 烹飪計(jì)時(shí)</p><p> 烹飪計(jì)時(shí)器JSQ為減計(jì)數(shù)計(jì)數(shù)器,其最大計(jì)時(shí)時(shí)間為59:59,因此可以編寫一個(gè)60進(jìn)制計(jì)數(shù)器來實(shí)現(xiàn)。</p><p> 由所學(xué)知識(shí)可知,計(jì)數(shù)的功能是累計(jì)輸入脈沖的個(gè)數(shù),實(shí)現(xiàn)計(jì)數(shù)功能的數(shù)字電路即計(jì)數(shù)器,被計(jì)數(shù)的脈沖可以是周期性脈沖,也可以是非周期性脈沖,通常加在計(jì)數(shù)器的時(shí)鐘脈沖輸入端,作為計(jì)數(shù)器的時(shí)鐘脈沖。</p><p
49、><b> 計(jì)數(shù)器的代碼如下:</b></p><p> IF(CLK'EVENT AND CLK='1')THEN</p><p> IF(TIME1(3 DOWNTO 0)="0000")THEN</p><p> TIME1(3 DOWNTO 0)<="1001&q
50、uot;;</p><p> IF(TIME1(7 DOWNTO 4)="0000")THEN</p><p> TIME1(7 DOWNTO 4)<="0101";</p><p> IF(TIME1(11 DOWNTO 8)="0000")THEN</p><p>
51、 TIME1(11 DOWNTO 8)<="1001";</p><p> IF(TIME1(15 DOWNTO 12)="0000")THEN</p><p> TIME1(15 DOWNTO 12)<="0101";</p><p><b> ELSE</b>&l
52、t;/p><p> TIME1(15 DOWNTO 12)<=TIME1(15 DOWNTO 12)-1;</p><p><b> END IF;</b></p><p><b> ELSE</b></p><p> TIME1(11 DOWNTO 8)<=TIME1(11 DOW
53、NTO 8)-1;</p><p><b> END IF;</b></p><p><b> ELSE</b></p><p> TIME1(7 DOWNTO 4)<=TIME1(7 DOWNTO 4)-1;</p><p><b> END IF;</b>&l
54、t;/p><p><b> ELSE</b></p><p> TIME1(3 DOWNTO 0)<=TIME1(3 DOWNTO 0)-1;</p><p><b> END IF;</b></p><p><b> END IF;</b></p>&
55、lt;p> 生成相應(yīng)的電路符號(hào):</p><p> 其中TIME_OUT[3..0]表示秒的個(gè)位,TIME_OUT[7..4]表示秒的十位,TIME_OUT[11..8]表示分的個(gè)位,TIME_OUT[15..12]表示分的十位。輸入信號(hào) LOAD 為高電平時(shí)完成信號(hào)的載入;COOK 信號(hào)為高電平時(shí), 在每個(gè)時(shí)鐘周期的上升沿進(jìn)行減法計(jì)數(shù)。輸出信號(hào) DONE 表示烹調(diào)時(shí)間到。</p><
56、;p> 4.1.4 控制模塊的實(shí)現(xiàn)</p><p> 綜合上述分析,對(duì)該控制模塊進(jìn)行完整設(shè)計(jì),連線圖如下: </p><p> 其中,輸入信號(hào) CLK 為時(shí)鐘輸入信號(hào),時(shí)鐘上升沿敏感;TEST 為數(shù)碼顯示管 測(cè)試信號(hào),高電平有效,用于測(cè)試顯示管是否正常工作;SETUP 為烹調(diào)時(shí)間設(shè)置時(shí)間,高電平有效時(shí)允許設(shè)置烹調(diào)時(shí)間;DATAIN為數(shù)據(jù)輸入信號(hào),用于設(shè)置烹調(diào)時(shí)間的長(zhǎng)短;STA
57、RT為烹調(diào)開始的控制信號(hào),高電平有效時(shí)開始烹調(diào);RESET為復(fù)位信號(hào),高電平有效時(shí)系統(tǒng)復(fù)位。</p><p> DATAOUT[3..0],DATAOUT[7..4],DATA_OUT[11..8],DATAOUT[15..12]分別表示秒個(gè)位、秒十位、分個(gè)位、分十位。他們分別接 8位LCD的搞死為,動(dòng)態(tài)地顯示完成烹調(diào)所剩的時(shí)間以及測(cè)試狀態(tài)信息“8888”。</p><p><b&
58、gt; 五、系統(tǒng)仿真</b></p><p> 5.1狀態(tài)控制器仿真</p><p> 完成狀態(tài)轉(zhuǎn)換控制器 KZQ 子模塊 VHDL 源程序文件輸入后,保存文件,對(duì)文件 進(jìn)行編譯,然后編寫測(cè)試平臺(tái)文件進(jìn)行仿真:</p><p> 其中,輸入信號(hào)為 RESET、SETUP、START、TEST、CLK、DONE,輸出信號(hào)為 COOK、LOAD_TE
59、ST、LOAD_SET、LOAD_DONE。 控制器根據(jù)輸入信號(hào)和自身當(dāng)時(shí)所處的狀態(tài)完成狀態(tài)的轉(zhuǎn)換和輸出相應(yīng)的控制信號(hào)。LOAD_SET 指示數(shù)據(jù)裝載器裝入設(shè)置的烹調(diào)時(shí)間數(shù)據(jù);LOAD_DONE指示轉(zhuǎn)載起裝入烹調(diào)完畢的狀態(tài)信息“0000”的顯示驅(qū)動(dòng)信息數(shù)據(jù);LOAD_TEST指示裝載器裝入用于測(cè)試的數(shù)據(jù)“8888以顯示驅(qū)動(dòng)信息數(shù)據(jù);COOK指示烹調(diào)正在進(jìn)行之中,并提示計(jì)時(shí)器進(jìn)行減計(jì)數(shù)。</p><p><b
60、> 仿真結(jié)果如圖:</b></p><p> 分析該仿真文件,可以看到,當(dāng)測(cè)試信號(hào)TEST為高電平有效時(shí),測(cè)試輸出信號(hào) LOAD_TEST為高電平;否則,當(dāng)時(shí)間設(shè)置信號(hào)SETUP為高電平時(shí),對(duì)應(yīng)的指示信號(hào) LOAD_SET輸出高電平;當(dāng)烹飪開始信號(hào)START信號(hào)為高電平時(shí),對(duì)應(yīng)輸出 COOK為高電平;當(dāng)復(fù)位信號(hào)RESET為高電平時(shí),系統(tǒng)復(fù)位,恢復(fù)初始狀態(tài)。仿真結(jié)果符合模塊設(shè)計(jì)的要求。<
61、/p><p> 5.2 數(shù)據(jù)裝載器的仿真</p><p> 完成數(shù)據(jù)裝載器子模塊VHDL源程序文件輸入后,保存文件,對(duì)文件進(jìn)行編譯,編寫測(cè)試平臺(tái)文件進(jìn)行仿真:</p><p> 其中,輸入信號(hào)LOAD_DONE為高電平時(shí),輸出烹調(diào)完畢的狀態(tài)信息數(shù)據(jù);LOAD_SET 為高電平時(shí),輸出設(shè)置的烹調(diào)時(shí)間數(shù)據(jù);LOAD_TEST 為高電平時(shí),輸出測(cè)試數(shù)據(jù)。輸出信號(hào)LOAD
62、用于指示電路正處于上述三路信號(hào)模式中的哪一種,同時(shí)提示計(jì)數(shù)器將處于數(shù)據(jù)裝入狀態(tài)。 </p><p><b> 仿真結(jié)果如圖:</b></p><p> 分析該模塊仿真結(jié)果,由于數(shù)據(jù)裝載器本質(zhì)上即多了選擇譯碼電路。可知,當(dāng) LOAD_SET、LOAD_TEST、LOAD_DONE三路信號(hào)中有且僅有一路信號(hào)電平有效時(shí),裝載器相應(yīng)的值作為輸出。</p>&
63、lt;p> 5.3 烹飪計(jì)時(shí)器的仿真</p><p> 完成計(jì)時(shí)器子模塊VHDL源程序文件輸入后,保存文件,對(duì)文件進(jìn)行編譯,編寫測(cè)試平臺(tái)文件進(jìn)行仿真:</p><p> 其中,輸入信號(hào) LOAD 為高電平時(shí)完成信號(hào)的載入;COOK 信號(hào)為高電平時(shí), 在每個(gè)時(shí)鐘周期的上升沿進(jìn)行減法計(jì)數(shù)。輸出信號(hào) DONE 表示烹調(diào)時(shí)間到。</p><p><b>
64、; 仿真結(jié)果如下圖:</b></p><p> 由以上仿真結(jié)果可以看到,該 JSQ 模塊實(shí)現(xiàn)了烹調(diào)計(jì)時(shí)的定時(shí)作用</p><p><b> 結(jié)論</b></p><p> 該課題是利用Altium公司的ALTIUM DESIGNER開發(fā)環(huán)境和軟件,進(jìn)行VHDL程序設(shè)計(jì),然后進(jìn)行仿真,調(diào)試,以Altium NB1實(shí)驗(yàn)箱實(shí)驗(yàn)系統(tǒng)
65、為硬件平臺(tái),實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的微波爐控制器系統(tǒng)的設(shè)計(jì)。在整個(gè)畢業(yè)設(shè)計(jì)過程中,進(jìn)行了系統(tǒng)的總體設(shè)計(jì),硬件設(shè)備的選用,軟件和開發(fā)環(huán)境的安裝,VHDL程序設(shè)計(jì)與仿真。設(shè)計(jì)的重點(diǎn)主要在系統(tǒng)的規(guī)劃以及程序的設(shè)計(jì)與調(diào)試上,要做到鍵盤與LCD, LED 燈的一體化,需要在鍵位設(shè)置時(shí)進(jìn)行準(zhǔn)確的設(shè)計(jì),通過鍵盤的掃描,消抖和譯碼,達(dá)到一鍵一碼的目的,做到功能的完善。</p><p> 設(shè)計(jì)的難點(diǎn)主要在功能控制上,數(shù)據(jù)和控制信號(hào)較多,
66、狀態(tài)之間的轉(zhuǎn)化也較為</p><p> 復(fù)雜,在設(shè)計(jì)中帶來了一些困難。另外在仿真分析上,因?yàn)樾枰獪y(cè)試的結(jié)果很多,有些結(jié)果無法預(yù)料,無法在仿真中看到。</p><p> 本設(shè)計(jì)也存在一定的不足。由于本身能力和實(shí)驗(yàn)器材的限制,無法在系統(tǒng)中建</p><p> 立完善的體制,只是實(shí)現(xiàn)了一個(gè)微波爐控制器的基本功能。比如像存儲(chǔ)功能,就沒有在系統(tǒng)中考慮到,這些都有待以后的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計(jì)---vhdl設(shè)計(jì)微波爐控制器
- 微波爐控制器論文
- 數(shù)字電路課程設(shè)計(jì)微波爐控制器
- eda課程設(shè)計(jì)---微波爐控制器設(shè)計(jì)
- eda課程設(shè)計(jì)---微波爐定時(shí)控制器
- eda課程設(shè)計(jì)---微波爐定時(shí)控制器的設(shè)置
- 課程設(shè)計(jì)---基于fpga的微波爐控制器設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--微波爐控制器系統(tǒng)
- 基于fpga的微波爐控制器設(shè)計(jì)
- 微波爐課程設(shè)計(jì)---基于微波爐控制系統(tǒng)設(shè)計(jì)
- 可編程微波爐控制器系統(tǒng)設(shè)計(jì)
- 簡(jiǎn)易微波爐控制器的設(shè)計(jì)與實(shí)現(xiàn)
- eda綜合課程設(shè)計(jì)報(bào)告-----微波爐定時(shí)控制器的設(shè)計(jì)
- 基于fpga的微波爐控制器【開題報(bào)告】
- 開題報(bào)告---基于fpga的微波爐控制器設(shè)計(jì)
- 數(shù)電課程設(shè)計(jì)--微波爐定時(shí)控制器的設(shè)計(jì)與制作
- 畢業(yè)設(shè)計(jì)---可編程微波爐控制器設(shè)計(jì)
- 基于fpga的微波爐控制器【畢業(yè)論文】
- 基于fpga微波爐控制器的設(shè)計(jì)【任務(wù)書】
- 畢業(yè)設(shè)計(jì)論文--基于fpga的微波爐控制器設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論