【正文】
何老師嚴(yán)肅的教學(xué)態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神,精益求精的工作作風(fēng)深深地感染和激勵(lì)著我,在此,謹(jǐn)向何老師致以我最誠(chéng)摯的謝意和崇高的敬意!謝謝曹老師!在學(xué)習(xí)期間,也得到學(xué)院各位老師的無(wú)私幫助和熱心教誨,在此向?qū)W院的各位領(lǐng)導(dǎo)、老師表示衷心的感謝,謝謝你們給我提供了一個(gè)友好融洽的學(xué)習(xí)環(huán)境。另外在仿真分析上,因?yàn)樾枰獪y(cè)試的結(jié)果很多,有些結(jié)果無(wú)法預(yù)料,無(wú)法在仿真中看到。2圖 烹調(diào)計(jì)時(shí)器 JSQ 仿真圖(4 分 57 秒)圖 為定時(shí)時(shí)間(59 分 59 秒)的仿真結(jié)果圖。如圖 所示:CLKLOADCOOKDATA5[15..0]SEC_L[3..0]SEC_H[3..0]MIN_L[3..0]MIN_H[3..0]DONEALARMJSQinstVCCCLK INPUTVCCLOAD INPUTVCCCOOK INPUTVCCDATA[15..0] INPUTSEC_L[3..0]OUTPUTSEC_H[3..0]OUTPUTMIN_L[3..0]OUTPUTMIN_H[3..0]OUTPUTDONEOUTPUTALARMOUTPUT圖 烹飪計(jì)時(shí)器 JSQ 原理圖其中,輸入信號(hào) LOAD 為高電平時(shí)完成信號(hào)的載入;COOK 信號(hào)為高電平時(shí),在每個(gè)時(shí)鐘周期的上升沿進(jìn)行減法計(jì)數(shù)。LD_CLK 指示 ZZQ 裝入設(shè)置的烹調(diào)時(shí)間數(shù)據(jù); LD_DONE 指示 ZZQ2裝入烹調(diào)完畢的狀態(tài)信息“donE”的顯示驅(qū)動(dòng)信息數(shù)據(jù);LD_TEST 指示 ZZQ 裝入用于測(cè)試的數(shù)據(jù)“8888” 以顯示驅(qū)動(dòng)信息數(shù)據(jù);COOK 指示烹調(diào)正在進(jìn)行之中,并提示計(jì)時(shí)器進(jìn)行減計(jì)數(shù);ALARM 為外接音響效應(yīng)揚(yáng)聲器。 n WHEN 1101=DOUT7=1111001。 4 WHEN 0101=DOUT7=1101101。若用它驅(qū)動(dòng)共陰 LED 數(shù)碼管,則輸出應(yīng)為高有效,即輸出為高(1)時(shí),相應(yīng)顯示段發(fā)光。具體設(shè)計(jì)時(shí),采用 4 位 LED 數(shù)碼管顯示加熱倒計(jì)時(shí),3 位 LED 數(shù)碼管顯示當(dāng)前溫度值, 1 位 LED 數(shù)碼管顯示當(dāng)前火力檔位。 U3:KWQ PORT MAP(CLK,DATA_TMP,COOK_TMP,LOAD_TMP,RESET_TMP,control,ALARM)。 END IF。e:=e+1。 IF (d=0) THEN s:=0。根據(jù)上述分析,編寫(xiě)該溫度控制器的 VHDL 程序,其主要程序如下:數(shù)據(jù)采集部分PROCESS (CLK,DATA) BEGIN IF (CLK39。溫度傳感器 AD590 的輸出經(jīng)過(guò)放大器后,將電壓引入 ADC0809的 Vin (+) 管腳,由 ADC0809 進(jìn)行模數(shù)轉(zhuǎn)換。由六進(jìn)制計(jì)數(shù)器和十進(jìn)制計(jì)數(shù)器級(jí)聯(lián)構(gòu)成的計(jì)時(shí)器內(nèi)部組成原理圖如圖 所示:2圖 JSQ 的內(nèi)部組成原理圖這里,計(jì)時(shí)器相應(yīng)的頂層文件電路符號(hào)如圖 所示:圖 JSQ 電路符號(hào)其中,輸入信號(hào) LOAD 為高電平時(shí)完成信號(hào)的載入;COOK 信號(hào)為高電平時(shí),在每個(gè)時(shí)鐘周期的上升沿進(jìn)行減法計(jì)數(shù)。因此,根據(jù)減法計(jì)數(shù)器隨計(jì)數(shù)脈沖的不斷輸入而遞減計(jì)數(shù),在具體設(shè)計(jì)該十進(jìn)制減法計(jì)數(shù)器和六進(jìn)制減法計(jì)數(shù)器過(guò)程中,可以當(dāng)計(jì)數(shù)值減到 0 時(shí),其計(jì)數(shù)器的數(shù)值自動(dòng)轉(zhuǎn)為定時(shí)設(shè)定時(shí)間,在十進(jìn)制計(jì)數(shù)器的設(shè)計(jì)過(guò)程中,可表達(dá)為: IF CQI=0000 THEN CQI=1001。 LOAD_TEST =12 WHEN 010 = DATA2=DONE。通過(guò)上述分析,該模塊的主要程序可實(shí)現(xiàn)如下: PROCESS(DATA1,LD_TEST,LD_CLK,LD_DONE) IS CONSTANT ALLS:STD_LOGIC_VECTOR(15 DOWNTO 0):=1000100010001000。 ELSE NEXT_STATE=TIMER。 COOK=39。 THEN NEXT_STATE=SET_CLOCK。039。039。039。 ELSIF CLK39。如圖 所示:時(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。生成相應(yīng)的電路符號(hào),如圖 所示:CLKKEY_IN[3..0]OUT_CLKOUT_DATA[15..0]keyboardinst圖 輸入模塊電路符號(hào)圖 控制模塊設(shè)計(jì)控制模塊是整個(gè)微波爐控制器系統(tǒng)的核心,完成許多復(fù)雜的控制和數(shù)據(jù)處理任務(wù),它通過(guò)輸入模塊提供的按鍵輸入實(shí)現(xiàn)數(shù)據(jù)信息裝載處理,控制顯示模塊顯示相應(yīng)的信息。2 WHEN 10110111= K_VALUE=11。 WHEN 11100111= K_VALUE=3。程序設(shè)計(jì)如下: key_decode : PROCESS(SC_CLK) BEGIN Z=KEY_DRV amp。)THEN Q=Q+1。按照這個(gè)想法,只需設(shè)置一個(gè)倒數(shù)計(jì)數(shù)器,當(dāng)每次讀到的非空掃描碼與上一次的相同,就將計(jì)數(shù)器加 1;而當(dāng)一旦讀到不同的掃描碼或空碼則立即將計(jì)數(shù)器清 0。列線通過(guò)上拉電阻截止+5V 電壓,即列線的輸出被定位到高電平狀態(tài);判斷有無(wú)按鍵按下時(shí)通過(guò)行線送出掃描信號(hào),然后列線讀取狀態(tài)得到。 鍵盤(pán)掃描鍵盤(pán)處理的重要環(huán)節(jié)是時(shí)序產(chǎn)生、鍵盤(pán)掃描和按鍵消抖,以下分別針對(duì)所涉及到的電路進(jìn)行描述。按 TEST 鍵,數(shù)碼管和發(fā)光二極管全亮、全滅交替閃爍,可以測(cè)試數(shù)碼管和指示燈工作是否正常。其涉及到數(shù)據(jù)的裝載、狀態(tài)轉(zhuǎn)換控制、烹飪計(jì)時(shí)、溫度控制、火力控制、音響效應(yīng)提示等。輸入部分主要完成用戶對(duì)控制功能的設(shè)置,采用按鍵作為輸入設(shè)備。按下該鍵,進(jìn)入調(diào)整 10Min 1Min/100℃/High 10Sec/10℃/Middle 1Sec/1℃/Low ▲/+1 ▼/1 按鍵狀態(tài)。同理,溫度設(shè)定操作如上。以下是該系統(tǒng)總體框圖,如圖 所示:圖 微波爐控制器系統(tǒng)總體框圖該控制器系統(tǒng)在 EDA 實(shí)驗(yàn)箱上實(shí)現(xiàn)的外觀布局如圖 所示。Quartus II 軟件能夠編譯 HardCopy Stratix 器件,從而提供了高性能低成本器件的解決方法。用戶可以使用設(shè)計(jì)空間搜索器(DSE)采用自動(dòng)技術(shù),是寄存器到寄存器設(shè)計(jì)性能平均提高 21%。 Quartus II 開(kāi)發(fā)系統(tǒng)簡(jiǎn)介Altera 公司的 Quartus II 開(kāi)發(fā)系統(tǒng)以其獨(dú)特的設(shè)計(jì)理念,為用戶提供了一種全新的可編程邏輯器件開(kāi)發(fā)系統(tǒng)。 (3) VHDL 語(yǔ)言具有很強(qiáng)的移植能力 VHDL 語(yǔ)言很強(qiáng)的移植能力主要體現(xiàn)在:對(duì)于同一個(gè)硬件電路的 VHDL 語(yǔ)言描述,它可以從一個(gè)模擬器移植到另一個(gè)模擬器上,從一個(gè)綜合器移植到另一個(gè)綜合器上,或者從一個(gè)工作平臺(tái)移植到另一個(gè)工作平臺(tái)上去執(zhí)行。歸納起來(lái),VHDL 語(yǔ)言主要具有以下優(yōu)點(diǎn): (1) VHDL 語(yǔ)言功能強(qiáng)大,設(shè)計(jì)方式多樣 VHDL 語(yǔ)言具有強(qiáng)大的語(yǔ)言結(jié)構(gòu), 只需采用簡(jiǎn)單明確的 VHDL 語(yǔ)言程序就可以述十分復(fù)雜的硬件電路。 VHDL 語(yǔ)言概述VHDL 的英文全名是 VeryHighSpeed Integrated Circuit Hardware Description Language,誕生于 1982 年。這些可編輯元件可以被用來(lái)實(shí)現(xiàn)一些基本的邏輯門(mén)電路(比如AND、 OR、XOR、NOT)或者更復(fù)雜一些的組合功能比如解碼器或數(shù)學(xué)方程式。該微波爐控制系統(tǒng),除實(shí)現(xiàn)常規(guī)的解凍、烹調(diào)、烘烤的基本功能外,還進(jìn)行了創(chuàng)新設(shè)計(jì),實(shí)現(xiàn)了微波爐的自定義設(shè)置。? 可以根據(jù)需要設(shè)置烹調(diào)時(shí)間的長(zhǎng)短,系統(tǒng)最長(zhǎng)的烹調(diào)時(shí)間為 59 分 59 秒;開(kāi)始烹調(diào)后,能夠顯示剩余時(shí)間的多少。本文采用先進(jìn)的 EDA 技術(shù),利用 Quartus II 工作平臺(tái)和 VHDL 設(shè)計(jì)語(yǔ)言,設(shè)計(jì)了一種新型的微波爐控制器系統(tǒng)。它省時(shí)、省電、方便和衛(wèi)生。不僅在節(jié)能方面未做過(guò)多考慮,使用者還需要經(jīng)常翻看使用說(shuō)明書(shū)才能完成操作過(guò)程。. 設(shè)計(jì)的目的和意義目前大部分微波爐控制器采用單片機(jī)進(jìn)行設(shè)計(jì),電路比較復(fù)雜,性能不夠靈活。2第二章 關(guān)鍵技術(shù)簡(jiǎn)介 FPGA 簡(jiǎn)介FPGA(Field-Programmable Gate Array ),即現(xiàn)場(chǎng)可編程門(mén)陣列,它是在PAL、 GAL、CPLD 等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。但是他們也有很多的優(yōu)點(diǎn)比如可以快速成品,可以被修改來(lái)改正程序中的錯(cuò)誤和更便宜的造價(jià)。在對(duì)一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部開(kāi)發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。同時(shí),VHDL 語(yǔ)言也支持慣性延遲和傳輸延遲,這樣可以準(zhǔn)確地建立硬件電路的模型。在設(shè)計(jì)過(guò)程中,設(shè)計(jì)人員可以建立各種可再次利用的模塊,一個(gè)大規(guī)模的硬件電路的設(shè)計(jì)不可能從門(mén)級(jí)電路開(kāi)始一步步地進(jìn)行設(shè)計(jì),而是一些模塊的累加。Quartus II 軟件的時(shí)序逼近流程由于其包含了內(nèi)置物理綜合工具以及豐富的圖形分析和編輯工具,提供了強(qiáng)大的交互探測(cè)能力,具有極大的吸引力。最新的增量式設(shè)計(jì)編輯器和編譯技術(shù)給設(shè)計(jì)人員提供了布局布線后設(shè)計(jì)更改的最佳支持。此外,Quartus II 軟件為設(shè)計(jì)流程的每個(gè)階段提供了 Quartus II 圖形用戶界面、EDA 工具界面以及命令行界面。當(dāng)按下 時(shí)間設(shè)置 按鍵時(shí),四個(gè)2按鍵分別表示設(shè)置定時(shí)時(shí)間的分、秒的十位和個(gè)位的數(shù)字;當(dāng)按下 溫度設(shè)定 按鍵時(shí),后面三個(gè)按鍵分別表示設(shè)定最高溫度的百位、十位、個(gè)位;當(dāng)按下 火力設(shè)定 按鍵時(shí),后面三個(gè)按鍵分別表示火力檔位的高、中、低三個(gè)檔位。溫度設(shè)定 :設(shè)置加熱的溫度最高值。指示燈功能如下:? 完成提示:提示微波爐工作完成。輸入模塊包括時(shí)鐘脈沖電路、鍵盤(pán)掃描電路、消枓同步電路和鍵盤(pán)譯碼電路,通過(guò)該模塊將掃描得到的按鍵值送到控制模塊。8 個(gè)狀態(tài)提示指示燈分別表示:工作狀態(tài)、開(kāi)門(mén)指示、測(cè)試、烹調(diào)、烘烤、解凍、意外報(bào)警、完成提示。矩陣鍵盤(pán)是一種常見(jiàn)的輸入裝置,在日常生活中,矩陣鍵盤(pán)在計(jì)算機(jī)、電話、手機(jī)、微波爐等格式電子產(chǎn)品上已經(jīng)被廣泛應(yīng)用,計(jì)算機(jī)鍵盤(pán)通常采用行列掃描法來(lái)確定所按下鍵的行列位置。這里系統(tǒng)時(shí)鐘頻率取50MHZ,掃描時(shí)鐘頻率取 100KHZ,消抖時(shí)鐘頻率取 200KHZ。完成程序設(shè)計(jì),生成相應(yīng)的電路符號(hào),如圖 所示:2SCAN_CLK KEY_DRV[3..0]key_scaninst5圖 鍵盤(pán)掃描電路符號(hào)按鍵消抖電路當(dāng)一個(gè)按鍵按下和釋放時(shí),對(duì)應(yīng)信號(hào)線電平的變化有一個(gè)不穩(wěn)定期,即所謂“抖動(dòng)”,這是因?yàn)槎鄶?shù)開(kāi)關(guān)的閉合和斷開(kāi)都有一個(gè)過(guò)程,并不是即刻實(shí)現(xiàn)的。綜合上述分析,該鍵盤(pán)掃描子模塊關(guān)鍵代碼如下:COUNTER:BLOCK IS BEGIN PROCESS(CLK)IS BEGIN IF(CLK39。 KEY_SCAN=1110 WHEN C_KEYBOARD=0 ELSE2 1101 WHEN C_KEYBOARD=1 ELSE 1011 WHEN C_KEYBOARD=2 ELSE 0111 WHEN C_KEYBOARD=3 ELSE 1111。 THEN CASE Z IS 數(shù)字按鍵譯碼電路 WHEN 11101110= K_VALUE=0。 WHEN 10111110= K_VALUE=8。 WHEN OTHERS = K_VALUE=K_VALUE。溫度控制子模塊,其功能是在食物烹飪過(guò)程中進(jìn)行溫度測(cè)定和控制,它同時(shí)實(shí)現(xiàn)火力控制。由此生成的狀態(tài)轉(zhuǎn)換 ASM 圖如圖 所示:2圖 狀態(tài)轉(zhuǎn)換 ASM 圖下面,根據(jù)上述狀態(tài)轉(zhuǎn)換圖和 ASM 圖進(jìn)行程序設(shè)計(jì),在編寫(xiě)程序代碼實(shí)現(xiàn)狀態(tài)轉(zhuǎn)換控制子模塊過(guò)程時(shí),首先,如果 RESET=‘1’,則系統(tǒng)清零,當(dāng)前狀態(tài)為初始狀態(tài),當(dāng)同步時(shí)鐘脈沖,當(dāng)前狀態(tài)為下一狀態(tài),用程序代