【正文】
圖 七段數(shù)碼管電路圖 BCD 七段譯碼器的輸入是 1 組 BCD 碼,輸出是數(shù)碼管各段的驅(qū)動(dòng)信號(hào)(以 a~g表示),也稱 47 譯碼器。其中,用七段數(shù)碼管作為時(shí)間、溫度、火力大小顯示,用發(fā)光二極管作為狀態(tài)提示顯示。 U2:ZZQ PORT MAP (DATA1,TEST_TMP,CLK_TMP,DONE_TMP,DATA_TMP,LOAD_TMP,ALARM)。EVENT AND CLK=1) THEN control_bcd=temp。 IF (m=10) THEN m:=0。 BEGIN d:=clearing XOR enin。 的運(yùn)算,數(shù)據(jù)調(diào)整為對(duì)應(yīng)的數(shù)字信號(hào),在 讀取 ADC0809 的數(shù)據(jù)后,先將轉(zhuǎn)換數(shù)據(jù)左移 1 位 (相當(dāng)于乘以2),然后減去 273,當(dāng)溫度達(dá)到某一數(shù)值時(shí),使能信號(hào)和清零信號(hào)為 ?1?,此時(shí)時(shí)鐘開始計(jì)時(shí)。 得到要測(cè)量的溫度。如圖 和 所示: 圖 十進(jìn)制計(jì)數(shù)器電路符號(hào) 圖 六進(jìn)制計(jì)數(shù)器電路符號(hào) 然后將兩計(jì)數(shù)器級(jí)聯(lián)構(gòu)成。 由所學(xué)知識(shí)可知,計(jì)數(shù)的功能是累計(jì)輸入脈沖的個(gè)數(shù),實(shí)現(xiàn)計(jì)數(shù)功能的數(shù)字電基于 FPGA 的微波爐控制器設(shè)計(jì) 路即計(jì)數(shù)器,被計(jì)數(shù)的脈沖可以是周期性脈沖,也可以是非周期性脈沖,通常加在計(jì)數(shù)器的時(shí)鐘脈沖輸入端,作為計(jì)數(shù)器的時(shí)鐘脈沖。 CASE TEMP IS WHEN 100 = DATA2=ALLS。因此,該常數(shù)應(yīng)是 8 個(gè)分段的 4 位 BCD 碼,即 “1000 1000 1000 1000”和 “1000 1000 1000 1000” ,同理, DONE 的 BCD 碼分別為 “1010 1011 1100 1101”以顯示 donE 的常數(shù) DONE。139。)) THEN NEXT_STATE=TIMER。139。 COOK=39。 COOK=39。 LD_DONE=39。 THEN CURR_STATE=IDLE。 其功能子模塊圖如下,圖 所示: 控 制 模 塊C o n t r o l數(shù) 據(jù) 裝 載子 模 塊Z Z Q烹 飪 計(jì) 時(shí)子 模 塊J S Q溫 度 控 制子 模 塊K W Q音 效 控 制子 模 塊A L A R M狀 態(tài) 轉(zhuǎn) 換 控 制子 模 塊K Z Q 控制模塊功能子模塊圖 . 狀態(tài)轉(zhuǎn)換控制 根據(jù)微波爐工作流程的描述,分析狀態(tài)轉(zhuǎn)換條件及輸出信號(hào),可以得到控制?;?FPGA 的微波爐控制器設(shè)計(jì) 塊的狀態(tài)轉(zhuǎn)換圖。 生成相應(yīng)的電路符號(hào),如圖 所示: SC _C LKKE Y _D R V[ 3. .0]KE Y _I N [3. .0]OU T _C LKOU T _D AT A[ 15. .0]k ey _dec odeins t1 圖 鍵盤譯碼電路符號(hào) . 輸入模塊的實(shí)現(xiàn) 綜合上述分析,對(duì)該鍵盤輸入模塊進(jìn)行完整設(shè)計(jì),以下是該輸入模塊實(shí)現(xiàn)的組成原理圖,如圖 所示: V C CC LK IN P U TV C CK E Y _I N [ 3. . 0] IN P U TD A T A [ 15 . . 0]O U T P U TC LKO U T P U TC LK C LK _S C A NC LK _D E Bc lk _g enin s tD E B _C LKK E Y _I N [ 3. . 0]K E Y _O U T [ 3. . 0]de bo un c in gin s t 4SC AN _C LK KEY _D R V[ 3. . 0]k ey _s c anins t 5K E Y _D R V [ 3. . 0]S C _C LKK E Y _I N [ 3. . 0]O U T _C LKO U T _D A T A [ 15 . . 0]k ey _d ec od ein s t 1 圖 輸入模塊內(nèi)部原理圖 其中, CLK 為系統(tǒng)時(shí)鐘脈沖, KEY_IN[3..0]為按鍵輸入, DATA[15..0]為按鍵輸入譯碼后的輸出值 ,它為控制模塊提供數(shù)據(jù)輸入。 WHEN 10111011= K_VALUE=10。 WHEN 11101011= K_VALUE=2。 生成相應(yīng)的電路符號(hào),如圖 所示: D EB _C LKKE Y _I N [3. .0]KE Y _O U T [3. .0]debo unc ingins t4 圖 按鍵消抖電路符號(hào) . 鍵盤譯碼 通過一個(gè)譯碼程序,將鍵盤掃描后的值根據(jù)需要設(shè)定成相應(yīng)的按鍵。139。 如果當(dāng)在一段時(shí)間內(nèi)都連續(xù)多次讀到同一個(gè)非空(即有鍵按下)的掃描碼,可以認(rèn)為這時(shí)按鍵已處于穩(wěn)定狀態(tài),這時(shí)得到的掃描碼就代表了一個(gè)鍵盤動(dòng)作,抖動(dòng)的影響已經(jīng)被 剔除。行列式矩陣鍵盤原理:按鍵設(shè)置在行列線的交叉點(diǎn),行列 線 分別連接到按鍵的兩端。其中鍵盤掃描又涉及到時(shí)序產(chǎn)生、按鍵掃描和消除抖動(dòng)。此時(shí), 8 個(gè)數(shù)碼管上會(huì)顯示 “88888888”的信息, 所有 指示燈亮。它通過輸入模塊提供的按鍵輸入實(shí)現(xiàn)數(shù)據(jù)信息裝載處理, 并將處理結(jié)果通過 顯示模塊顯示 出來 。該燈亮?xí)r,表示 出現(xiàn)意外,微波爐暫停工作; ? 解凍:該燈亮?xí)r,表示工作在解凍模式下; ? 烘烤:該燈亮?xí)r,表示工作在烘烤模式下; ? 烹調(diào):該燈亮?xí)r,表示工作在烹調(diào)模式下; ? 測(cè)試:該燈亮?xí)r,表示微波爐處于測(cè)試狀態(tài); ? 開門指示:指示微波爐的門的狀態(tài),門開時(shí)燈亮,門關(guān)時(shí)燈滅; ? 工作狀態(tài):指示微波爐處于工作狀態(tài),工作時(shí)燈亮,不工作時(shí)燈滅; . 系統(tǒng) 功能模塊描述 本系統(tǒng)主要由輸入、控制和顯示部分組成。 時(shí)間設(shè)置 :設(shè)置系統(tǒng)工作時(shí)間。比如設(shè)定烹飪時(shí)間為 12 分 59 秒,只需要選擇 10Min 鍵,然后按 ▲/+1 鍵 “1”次;選擇 1Min/100℃ /High 鍵,然后按 ▲/+1 鍵 “2”次;選擇 10Sec/10℃ /Middle 鍵,然后按▲/+1 鍵 “5”次;選擇 1Sec/1℃ /Low 鍵,然后按 ▲/+1 鍵 “9”次。 基于 FPGA 的微波爐控制器設(shè)計(jì) 3. 系統(tǒng) 總體 設(shè)計(jì) . 系統(tǒng)總體設(shè)計(jì)方案 根據(jù)題目要求,該系統(tǒng)控制部分以 FPGA 芯片為核心,實(shí)現(xiàn)時(shí)間設(shè)置、溫度設(shè)定、火力選擇、音效響應(yīng)提示、 LED 數(shù)碼管顯示等,在硬件組成上,涉及到電源供電、按鍵輸入、 LED 數(shù)碼管顯示、指示燈提 示等。 提供并行開發(fā) FPGA 和結(jié)構(gòu)化 ASIC Quartus II軟件能夠提供 FPGA設(shè)計(jì)和結(jié)構(gòu)化 ASIC設(shè)計(jì)之間的無縫移植。當(dāng)設(shè)計(jì)人員進(jìn)一步需要更好的編譯結(jié)果時(shí), Quartus II 軟件提供了一些高級(jí)工具,可以輕松地實(shí)現(xiàn)優(yōu)化設(shè)計(jì)。 由于 VHDL 語言是一種描述、模擬、綜合、優(yōu)化和布線的標(biāo)準(zhǔn)硬件描述語言,因此它可以使設(shè)計(jì)成果在設(shè)計(jì)人員之間方便地進(jìn)行交流和共享,從而減小硬件電路設(shè)計(jì)的工作量,縮短開發(fā)周期。 VHDL 語言既支持標(biāo)準(zhǔn)定義的數(shù)據(jù)類型,也支持用戶定義的數(shù)據(jù)類型,這樣便會(huì)給硬件描述帶來較大的自由度。 VHDL 語言能夠成為標(biāo)準(zhǔn)化的硬件描述語言并獲得廣泛應(yīng)用,它自身必然具有很多其他硬件描述語言所不具備的優(yōu)點(diǎn)。因?yàn)檫@些芯片有比較差的可編輯能力,所以這些設(shè)計(jì)的開發(fā)是在普通的 FPGA上完成的,然后將設(shè)計(jì)轉(zhuǎn)移到一個(gè)類似于 ASIC 的芯片上。 目前以硬件描述語言( Verilog 或 VHDL)所完成的電路設(shè)計(jì), 可以經(jīng)過簡(jiǎn)單的綜合與布局,快速的燒錄至 FPGA 上進(jìn)行測(cè)試,是現(xiàn)代 IC 設(shè)計(jì)驗(yàn)證的技術(shù)主流。該控制器具有系統(tǒng)復(fù)位、狀態(tài)控制、時(shí)間設(shè)定 、火力檔位選擇、烹飪計(jì)時(shí)、溫度控制、顯示譯碼和音效提示等功能,基于 FPGA 芯片實(shí)現(xiàn)。 . 課 題的內(nèi)容和要求 本課題是 基于 FPGA 的微波爐控制器設(shè)計(jì) ,即 設(shè)計(jì)一個(gè)具備定時(shí)、溫控、信息顯示和音響效應(yīng)提示功能的微波爐控制器 , 實(shí)現(xiàn)一些功能: ? 該微波爐控制器能夠在任意時(shí)刻取消當(dāng)前工作,復(fù)位為初始狀態(tài)。目前大部分微波爐控制器采用單片機(jī)進(jìn)行設(shè)計(jì),電路比較復(fù)雜,性能 不夠靈活。 微波爐控制器系統(tǒng)是一個(gè)實(shí)用型的系統(tǒng),系統(tǒng)不僅 具有 操作簡(jiǎn)單 的功能, 而且烹調(diào)效果好, 你 可以按 照 固定程序 烹調(diào) 一些家常菜, 可以 采取分時(shí)、分 不同級(jí)別 火力加熱, 既能節(jié)約時(shí)間又能節(jié)約能源 。 主要有 以下幾個(gè)模塊:輸入模塊、控制模塊 和 顯示模塊。本文采用先進(jìn)的 EDA 技術(shù) , 利用 Quartus II 工作平臺(tái)和 VHDL 設(shè)計(jì)語言,設(shè)計(jì)了一種新型的微波爐控制器系統(tǒng)。 ? 可以根據(jù)需要設(shè)置烹調(diào)時(shí)間的長短,系統(tǒng)最長的烹調(diào)時(shí)間 為 59 分 59 秒;開始烹調(diào)后,能夠顯示剩余時(shí)間的多少。 該微波爐控制系統(tǒng),除實(shí)現(xiàn)常規(guī)的解凍、烹調(diào)、烘烤的基本功能外,還進(jìn)行了創(chuàng)新設(shè)計(jì),實(shí)現(xiàn)了微波爐的自定義設(shè)置。這些可編輯元件可以被用來實(shí)現(xiàn)一些基本的邏輯門電路(比如 AND、 OR、 XOR、NOT)或者更復(fù)雜一些的組合功能比如解碼器或數(shù)學(xué)方程式。 . VHDL 語言概述 VHDL 的英文全名是 VeryHighSpeed Integrated Circuit Hardware Description Language,誕生于 1982 年。歸納起來, VHDL 語言主要具有以下優(yōu)點(diǎn): (1) VHDL 語言功能強(qiáng)大,設(shè)計(jì)方式多樣 VHDL 語言具有強(qiáng)大的語言結(jié)構(gòu) , 只需采用簡(jiǎn)單明確的 VHDL 語言程序就可以述十分復(fù)雜的硬件電路。 (3) VHDL 語言具有很強(qiáng)的移植能力 VHDL 語言很強(qiáng)的移植能力主要體現(xiàn)在:對(duì)于同一個(gè)硬件電路的 VHDL 語言描述,它可以從一個(gè)模擬器移植到另一個(gè)模擬器上,從一個(gè)綜合器移植到另一個(gè)綜合器上,或者從一個(gè)工作平臺(tái)移植到另一個(gè)工作平臺(tái)上去執(zhí)行。 . Quartus II 開發(fā)系統(tǒng)簡(jiǎn)介 Altera 公司的 Quartus II 開發(fā)系統(tǒng)以其獨(dú)特的設(shè)計(jì)理念,為用戶提供了一種全新的可編程邏輯器件開發(fā)系統(tǒng)。用戶可以使用設(shè)計(jì)空間搜索器( DSE)采用自動(dòng)技術(shù),是寄存器到寄存器設(shè)計(jì)性能平均提高 21%。 Quartus II 軟件能夠編譯 HardCopy Stratix 器件,從 而提供了高性能低成本器件的解決方法。 以下是該系統(tǒng)總體框圖,如圖 所示: 圖 微波爐控制器系統(tǒng)總體框圖 該控制器系統(tǒng)在 EDA 實(shí)驗(yàn)箱上實(shí)現(xiàn)的 外觀布局如圖 所示。同理,溫度設(shè)定操作如上。按下該鍵,進(jìn)入調(diào)整 10Min 1Min/100℃ /High 10Sec/10℃ /Middle 1Sec/1℃ /Low ▲/+1 ▼/1 按鍵狀態(tài)。輸入部分主要完成用戶對(duì)控制功能的設(shè)置,采用按鍵作為輸入設(shè)備。其涉及到數(shù)據(jù)的裝載、狀態(tài)轉(zhuǎn)換控制、烹飪計(jì)時(shí)、溫度控制、火力控制、音響效應(yīng)提示等。按 TEST 鍵 , 數(shù)碼管和發(fā)光二極管全亮、全滅交替閃爍 , 可以測(cè)試數(shù)碼管 和指示燈 工作是否正常。 . 鍵盤掃描 鍵盤處理的重要環(huán)節(jié)是時(shí)序產(chǎn)生、鍵盤掃描和按鍵消抖,以下分別針對(duì)所涉及到的電路進(jìn)行描述。列線通過上拉電阻截止 +5V 電壓,即列線的輸出被定位到高電平狀態(tài) ;判斷有無按鍵按下時(shí)通過行線送出掃描信號(hào),然后列線讀取狀態(tài)得到。按照這個(gè)想法,只需設(shè)置一個(gè)倒數(shù)計(jì)數(shù)器,當(dāng)每次讀到的非空掃描碼與上一次的相同,就將計(jì)數(shù)器加 1;而當(dāng)一旦讀到不同的掃描碼或空碼則立即將計(jì)數(shù)器清 0。)THEN Q=Q+1。 程序設(shè)計(jì)如下: key_decode : PROCESS(SC_CLK) BEGIN Z=KEY_DRV amp。 WHEN 11100111= K_VALUE=3。 WHEN 10110111= K_VALUE=11。 西南石油大學(xué)本科畢業(yè)設(shè) 計(jì)(論文) 生成 相應(yīng)的電路符號(hào) , 如圖 所示: C LKKE Y _I N [3. .0]OU T _C LKOU T _D AT A[ 15. .0]k ey boar dins t 圖 輸 入 模塊電路符號(hào)圖 . 控制模塊設(shè)計(jì) 控制模塊是整個(gè)微波爐控制器系 統(tǒng)的核心,完成許多復(fù)雜的控制和數(shù)據(jù)處理任務(wù),它通過輸入模塊提供的按鍵輸入實(shí)現(xiàn)數(shù)據(jù)信息裝載處理, 控制 顯示模塊顯示 相應(yīng)的 信息。如圖 所示: 時(shí) 間 、 溫 度設(shè) 置 狀 態(tài)S E T _ C L O C K顯 示 譯 碼測(cè) 試 狀 態(tài)L A M P _ T E S T完 成 信 息顯 示 狀 態(tài)D O N E _ M S G減 法 計(jì) 數(shù)定 時(shí) 狀 態(tài)T I M E R初 始 狀 態(tài)I D L EX / L D _ T E S TT E S T / L D _ T E S TS E T _ T amp。 ELSIF CLK39。039。039。039。 THEN NEXT_STATE=SET_CLOCK。 COOK=39。