版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
目錄313731引言 。在多功能電烤箱的設(shè)計(jì)中采用了自上而下的設(shè)計(jì)方法,首先進(jìn)行系統(tǒng)設(shè)計(jì),劃分各個(gè)功能模塊,并對(duì)每一個(gè)模塊進(jìn)行了詳細(xì)的功能描述,使用VerilogHDL語(yǔ)言對(duì)每一個(gè)模塊進(jìn)行了編程REF_Ref25073\r\h[5],并且使用QuartusⅡ進(jìn)行仿真并獲得相應(yīng)的仿真結(jié)果。最后將編程的網(wǎng)表文件下載到FPGA芯片EP4CE6F17C8N中REF_Ref25677\r\h[6]。該電烤箱控制部分以FPGA芯片為核心,實(shí)現(xiàn)時(shí)間設(shè)置、溫度設(shè)定、譯碼器譯碼等,在硬件組成上,涉及到數(shù)碼管顯示、指示燈提示、音效提醒、液晶屏顯示等。2.2具體設(shè)計(jì)方案本論文設(shè)計(jì)的多功能電烤箱不僅實(shí)現(xiàn)工作狀態(tài)指示燈顯示,倒計(jì)時(shí)時(shí)間數(shù)字的顯示,電烤箱內(nèi)部實(shí)時(shí)溫度的顯示,實(shí)時(shí)按鍵調(diào)節(jié)時(shí)間、溫度設(shè)置,還具有工作結(jié)束音效指示功能。通過(guò)調(diào)研現(xiàn)有電烤箱的功能和設(shè)計(jì),了解了其工作原理和控制方法。多功能電烤箱需要首先具備時(shí)間控制功能,給電烤箱預(yù)設(shè)需要加熱的時(shí)間,在此基礎(chǔ)上設(shè)定最高溫度值,通過(guò)將溫度傳感器實(shí)時(shí)監(jiān)測(cè)的電烤箱內(nèi)部溫度值與所設(shè)定的最高溫度值相比較,進(jìn)而判斷加熱管是否工作。當(dāng)電烤箱內(nèi)部溫度值達(dá)到了預(yù)設(shè)溫度值及其閾值范圍內(nèi),加熱管停止工作,倒計(jì)時(shí)繼續(xù),直至倒計(jì)時(shí)結(jié)束電烤箱停止工作。利用VerilogHDL對(duì)電烤箱的功能進(jìn)行了合理的設(shè)計(jì),保證了時(shí)間與溫度設(shè)定的準(zhǔn)確以及繼電器工作狀態(tài)的切換的時(shí)刻。根據(jù)設(shè)計(jì)要求,最后繪制了如圖1所示的系統(tǒng)框圖。圖1系統(tǒng)框圖2.3電烤箱的工作流程電烤箱的工作流程為:上電后,系統(tǒng)首先處于一種初始狀態(tài)。此時(shí),LCD1602液晶顯示屏上第一行會(huì)顯示“Time:0:00:00F”,第二行會(huì)顯示“Temp:00.00”。八位數(shù)碼管上顯示電烤箱內(nèi)部實(shí)時(shí)溫度,指示燈未亮。電烤箱工作時(shí),首先通過(guò)鍵盤(pán)輸入數(shù)據(jù),比如,按解凍、低檔、中檔、高檔鍵選擇系統(tǒng)預(yù)置方案后直接開(kāi)始烹飪?;蛘甙磿r(shí)間設(shè)置鍵設(shè)置時(shí)間,按溫度設(shè)定鍵設(shè)置溫度來(lái)進(jìn)行自定義方案設(shè)置,設(shè)置結(jié)束以后,表示數(shù)據(jù)裝載完成,按開(kāi)始鍵后系統(tǒng)進(jìn)入烹調(diào)狀態(tài),同時(shí)指示燈亮,LCD1602顯示屏上時(shí)間開(kāi)始倒計(jì)時(shí)。在電烤箱進(jìn)入烹調(diào)狀態(tài)后,按一次開(kāi)始鍵暫停烹飪,此時(shí)可以修改設(shè)定好的時(shí)間與溫度,再按一次開(kāi)始鍵繼續(xù)烹飪,按結(jié)束鍵停止烹飪。烹飪結(jié)束后,電烤箱會(huì)發(fā)出音效提示,指示燈滅。音效提示結(jié)束后,電烤箱自動(dòng)進(jìn)入初始狀態(tài)。根據(jù)電烤箱工作流程,繪制主流程圖,如圖2所示:圖2電烤箱工作流程圖3主要功能模塊設(shè)計(jì)多功能電烤箱所要實(shí)現(xiàn)的功能分別在時(shí)鐘分頻模塊、按鍵消抖模塊、狀態(tài)設(shè)置模塊、溫度傳感器驅(qū)動(dòng)模塊、繼電器控制模塊、液晶屏驅(qū)動(dòng)模塊、數(shù)碼管譯碼模塊這七個(gè)模塊中分別進(jìn)行設(shè)計(jì)。3.1時(shí)鐘分頻模塊設(shè)計(jì)在電烤箱控制系統(tǒng)中,大多數(shù)的情況是需要系統(tǒng)根據(jù)設(shè)定的程序來(lái)自動(dòng)控制加熱的時(shí)間與溫度。因此,為了加熱時(shí)長(zhǎng)與溫度上限出現(xiàn)錯(cuò)誤導(dǎo)致食材的烹飪失敗,所設(shè)計(jì)的控制系統(tǒng)需要一個(gè)穩(wěn)定的時(shí)鐘來(lái)支持其正常的工作。本模塊主要是把50MHz的信號(hào)分頻為1MHz的信號(hào)。時(shí)鐘分頻模塊的電路圖如圖3所示。圖3時(shí)鐘分頻電路模塊圖由該硬件模塊圖可知clk_in為輸入信號(hào),由外部信號(hào)提供50MHz的時(shí)鐘信號(hào)。該模塊將外部的時(shí)鐘信號(hào)進(jìn)行分頻處理,獲得clk_1MHz頻率為1MHz的輸出信號(hào)。該時(shí)鐘脈沖發(fā)生電路模塊主要是負(fù)責(zé)產(chǎn)生穩(wěn)定的時(shí)鐘信號(hào),為其他模塊提供同步的工作時(shí)鐘信號(hào)。實(shí)現(xiàn)該硬件模塊功能的VerilogHDL程序如下://分頻模塊moduledkx_fp(inputclk_in,//50Moutputregclk_1MHz,//分頻到1MHz);parameterFZCL=21'd1_000_000;parameterDIV_CNT=32'd49*FZCL;parameterDIV_CNT_a=DIV_CNT/FZCL;parameterDIV_CNT_b=DIV_CNT_a/2;reg[31:0]cnt=32'd0;always@(posedgeclk_in) if(cnt>=DIV_CNT_a) cnt<=32'd0; else cnt<=cnt+1;always@(posedgeclk_in) if(cnt>=DIV_CNT_b) clk_1MHz<=1; else clk_1MHz<=0;endmodule3.2按鍵消抖模塊設(shè)計(jì)由于最高加熱溫度與加熱所需時(shí)間的設(shè)置均是通過(guò)按鍵的累加來(lái)完成,因此為了避免由于按鍵的抖動(dòng)所導(dǎo)致不必要的多次識(shí)別而觸發(fā)的溫度及時(shí)間設(shè)置不準(zhǔn)確的問(wèn)題出現(xiàn),需要通過(guò)按鍵消抖電路,來(lái)提高電烤箱的穩(wěn)定性、可靠性和用戶(hù)體驗(yàn)。按鍵消抖模塊如圖4:圖4按鍵消抖模塊圖由該硬件模塊圖可知clk_1MHz為輸入信號(hào),由時(shí)鐘分頻模塊提供50MHz的時(shí)鐘信號(hào)RST_N為復(fù)位信號(hào),KEY[4..0]為五個(gè)按鍵輸入。led1為按鍵作用顯示燈輸出,用來(lái)指示按鍵作用多少次。KEY_1[1..0]到KEY_5[1..0]為消抖后的按鍵輸出,并分為長(zhǎng)按與短按兩種不同功能。實(shí)現(xiàn)該硬件模塊功能的部分VerilogHDL程序如下:moduledkx_key(clk_1MHz,RST_N,KEY, led1,KEY_1,KEY_2,KEY_3,KEY_4,KEY_5 );input clk_1MHz; input RST_N; input [4:0] KEY; outputled1;output[1:0]KEY_1; //設(shè)置定時(shí)器的時(shí)間為20ms,計(jì)算方法為(20*10^6)ns/(1/50)ns1MHz為開(kāi)發(fā)板晶振parameterSET_TIME_20MS=15'd20_000;parameterSET_TIME_1S=21'd300_000;//計(jì)時(shí)按壓按鍵時(shí)間always@(posedgeclk_1MHz)begin if(key_reg>key_reg_n) //判斷復(fù)位 time_cnt_c<=0; //定時(shí)器清零操作 elseif(KEY==5'b11111) time_cnt_c<=time_cnt_c; else time_cnt_c<=time_cnt_c+1;end//按鍵賦值,大于1s00,小于1s10,定義11為常態(tài)無(wú)輸出assignkey_a=((time_cnt_c>SET_TIME_1S)?0:1);assignKEY_1={key_a,key_out[0]};assignled1=((KEY==5'b11111)&RST_N);endmodule3.3狀態(tài)設(shè)置模塊設(shè)計(jì)電烤箱的自定義方案需要設(shè)置一個(gè)模塊來(lái)設(shè)定加熱的最高溫度以及加熱所需的時(shí)間,并且可以設(shè)定倒計(jì)時(shí),另一個(gè)預(yù)置方案需要設(shè)定四個(gè)不同檔位來(lái)烹飪食物。狀態(tài)設(shè)置模塊圖如圖5:圖5狀態(tài)設(shè)置模塊圖由該硬件模塊圖可知clk_1MHz為輸入的時(shí)鐘信號(hào),RST_N為復(fù)位信號(hào),KEY_1[1..0]到KEY_5[1..0]都為兩位按鍵輸入信號(hào)。temp_in[19..0]為溫度傳感器實(shí)時(shí)測(cè)量的溫度值輸入信號(hào)。temp_h[3..0]、temp_o[3..0]、temp_t[3..0]分別為輸出溫度值的百位、十位、個(gè)位的四位輸出信號(hào),hour_o[3..0],minute_t[3..0],minute_o[3..0],second_t[3..0],second_o[3..0]分別為輸出時(shí)間值的小時(shí)個(gè)位、分鐘十位、分鐘個(gè)位、秒鐘十位、秒鐘個(gè)位的四位輸出信號(hào)。state_out[2..0]為輸出狀態(tài)的3位輸出信號(hào)。led_state1到led_state4分別為解凍、低檔、中檔、高度四種檔位輸出信號(hào)。實(shí)現(xiàn)該硬件模塊功能的部分VerilogHDL程序如下:moduledkx_state(clk_1MHz,RST_N,KEY_1,KEY_2,KEY_3,KEY_4,KEY_5,temp_in,state_out,hour_o,minute_t,minute_o,second_t,second_o,led_state1,led_state2,led_state3,led_state4,temp_h,temp_t,temp_o);inputclk_1MHz;inputRST_N;input[19:0]temp_in;input[1:0]KEY_1;//時(shí)間設(shè)置點(diǎn)按1秒以?xún)?nèi):時(shí)間+10min,長(zhǎng)按>1秒時(shí)間-2minoutputstate_out;//狀態(tài)000初始001啟動(dòng)011運(yùn)行010暫停111停止//初始狀態(tài)000 always@(posedgeclk_1MHzornegedgeRST_N)if(!RST_N) begin state_n<=3'b000; time_n=0; temp_n=0; led_state1<=1; end elsecase(state_n)//設(shè)置時(shí)間、溫度、檔位 3'b000:begin begin case(KEY_1) 2'b10:time_n=time_n+600; 2'b00:time_n=time_n-120; default:time_n=time_n; endcase end begin if(KEY_4==2'b10)//解凍檔50°加熱半小時(shí) begin temp_n=3000; time_n=1800; state_n=3'b011; led_state1=0; end//溫度暫停時(shí)的運(yùn)行狀態(tài)110 begin if(temp_in<(temp_n-300)) state_n=3'b011;//進(jìn)入運(yùn)行狀態(tài)110 else state_n=state_n; end begin if(time_n==0) state_n=3'b111; else state_n=state_n; end //停止?fàn)顟B(tài)111-蜂鳴器報(bào)警3'b111:begin if(cnt_a>=7*SET_TIME_1S) begin state_n=3'b000;//延遲8s后進(jìn)入初始狀態(tài) cnt_a=0; end else begin state_n=state_n; cnt_a=cnt_a+1; end enddefault:state_n=3'b000; endcase//數(shù)據(jù)處理assignhour_o=time_n/14'd3600;assigntemp_h=temp_n/14'd10000;endmodule 3.4溫度傳感器驅(qū)動(dòng)模塊設(shè)計(jì)可編程邏輯器件FPGA可以對(duì)給定的時(shí)鐘頻率根據(jù)DS18B20的讀寫(xiě)時(shí)序的時(shí)隙要求靈活地分頻到與DS18B20的讀寫(xiě)時(shí)序相適應(yīng)的最佳頻率,可以在最短的時(shí)間內(nèi)方便地對(duì)DS18B20進(jìn)行讀寫(xiě)控制REF_Ref26680\r\h[7]。溫度傳感器在系統(tǒng)時(shí)鐘驅(qū)動(dòng)下,通過(guò)數(shù)據(jù)線DQ與FPGA進(jìn)行信息傳輸,從而測(cè)出電烤箱的內(nèi)部溫度。溫度傳感器驅(qū)動(dòng)模塊如圖6所示:圖6溫度傳感器驅(qū)動(dòng)模塊圖由該硬件模塊圖可知clk為輸入時(shí)鐘信號(hào),rst_n為復(fù)位信號(hào)。sign為符號(hào)輸出信號(hào),temp_data[19..0]為電烤箱內(nèi)部溫度值的20位輸出信號(hào),dq為雙向信號(hào)。實(shí)現(xiàn)該硬件模塊功能的VerilogHDL程序如下:moduledri_ds18b20( input clk , input rst_n , inout dq , outputreg[19:0]temp_data ,outputregsign ); //--12位溫度數(shù)據(jù)處理always@(posedgeclk_usornegedgerst_n)begin if(!rst_n)begin //初始狀態(tài) temp_data<=20'd0; sign<=1'b0; end elsebegin if(!data[15])begin //最高位為0則溫度為正 sign<=1'b0; //標(biāo)志位為正 temp_data<=data[10:0]*11'd625/7'd100;//12位溫度數(shù)據(jù)處理 end endendendmodule3.5液晶屏驅(qū)動(dòng)模塊設(shè)計(jì)液晶屏驅(qū)動(dòng)模塊是將從狀態(tài)設(shè)置模塊輸出的時(shí)間與溫度數(shù)值顯現(xiàn)出來(lái)。FPGA通過(guò)驅(qū)動(dòng)液晶屏顯示可以更便捷地使用電烤箱。在電烤箱使用過(guò)程中,如果不知道加熱倒計(jì)時(shí)的顯示時(shí)間,使用者需要一直觀察電烤箱的工作狀態(tài)或者錯(cuò)失最佳用餐時(shí)間。如果能在電烤箱上添加液晶屏顯示所剩下的加熱時(shí)間來(lái)對(duì)使用者加以提示,那么該電烤箱會(huì)更具有便捷性。并且當(dāng)使用者為所要烹調(diào)的食材設(shè)定烹調(diào)時(shí)間與溫度時(shí),如果不小心設(shè)置錯(cuò)了時(shí)間或溫度,食材將會(huì)烹調(diào)失敗。如果能將使用者所設(shè)置的時(shí)間與溫度顯示出來(lái),那么電烤箱會(huì)更具有準(zhǔn)確性。因此,液晶屏最主要的功能就是根據(jù)加熱倒計(jì)時(shí)數(shù)據(jù)、時(shí)間與溫度設(shè)定數(shù)據(jù)以及所選檔位,輸出信號(hào)控制液晶屏顯示出對(duì)應(yīng)數(shù)值(即倒計(jì)時(shí)的分鐘值、溫度數(shù)值以及檔位)。液晶屏驅(qū)動(dòng)模塊如圖7:圖7液晶屏驅(qū)動(dòng)模塊圖由該硬件模塊圖可知Clock為輸入50MHz信號(hào),Reset_n為復(fù)位信號(hào),hour_o[3..0]、minute_o[3..0]、minute_t[3..0]、second_o[3..0]、second_t[3..0]為時(shí)間設(shè)置的小時(shí)個(gè)位、分鐘十位、分鐘個(gè)位、秒鐘十位、秒鐘個(gè)位的四位輸入,temp_h[3..0]、temp_t[3..0]、temp_o[3..0]分別為所設(shè)定最高溫度值的百位、十位、個(gè)位的四位輸入,led_state1到led_state4分別為解凍、低檔、中檔、高度四種檔位輸入信號(hào)。LCD_DATA[7..0]為八位輸出,LCD_EN、LCD_RW、LCD_RS為單個(gè)信號(hào)輸出。實(shí)現(xiàn)該硬件模塊功能的部分VerilogHDL程序如下:modulelcd_text(Clock,Reset_n,LCD_EN,LCD_RW,LCD_RS,LCD_DATA,hour_o,minute_t,minute_o,second_t,second_o,temp_h,temp_t,temp_o,led_state1,led_state2,led_state3,led_state4);parameterTIME_20MS=16'd20_000;//1_000_000*0.02=20_000parameterTIME_500HZ=12'd2000;always@(posedgeClockornegedgeReset_n)beginif(!Reset_n)beginLCD_DATA<=0;endelseif(write_flag)begin//一個(gè)en周期開(kāi)始時(shí),執(zhí)行循環(huán)前置操作后進(jìn)入循環(huán)case(n_state)IDLE:LCD_DATA<=8'hxx;SET_FUNCTION:LCD_DATA<=8'h38;//2*165*88位數(shù)據(jù)DISP_OFF:LCD_DATA<=8'h08;//8'b0000_1000,顯示開(kāi)關(guān)設(shè)置:D=0(DB2,顯示關(guān)),C=0(DB1,光標(biāo)不顯示),D=0(DB0,光標(biāo)不閃爍)DISP_CLEAR:LCD_DATA<=8'h01;//8'b0000_0001,清屏ENTRY_MODE:LCD_DATA<=8'h06;//8'b0000_0110,進(jìn)入模式設(shè)置:I/D=1(DB1,寫(xiě)入新數(shù)據(jù)光標(biāo)右移),S=0(DB0,顯示不移動(dòng))DISP_ON:LCD_DATA<=8'h0c;//8'b0000_1100,顯示開(kāi)關(guān)設(shè)置:D=1(DB2,顯示開(kāi)),C=0(DB1,光標(biāo)不顯示),D=0(DB0,光標(biāo)不閃爍)ROW1_ADDR:LCD_DATA<=8'h80;//8'b1000_0000,設(shè)置DDRAM地址:00H->1-1,第一行第一位ROW1_0:LCD_DATA<="T";ROW1_6:LCD_DATA<=hour_o_n;ROW2_ADDR:LCD_DATA<=8'hc0;//8'b1100_0000,設(shè)置DDRAM地址:40H->2-1,第二行第一位ROW2_0:LCD_DATA<="T";ROW2_7:LCD_DATA<=temp_h_n;ROW2_F:LCD_DATA<=led_state;endcaseendelseLCD_DATA<=LCD_DATA;endendmodule3.6數(shù)碼管譯碼模塊設(shè)計(jì)在電烤箱加熱過(guò)程中,為了避免使用者因不知電烤箱內(nèi)部溫度而直接觸碰所導(dǎo)致的安全隱患問(wèn)題,再設(shè)計(jì)一個(gè)數(shù)碼管顯示模塊來(lái)顯示電烤箱內(nèi)部的實(shí)時(shí)溫度,來(lái)提高電烤箱的安全性。數(shù)碼管譯碼模塊如圖8:圖8數(shù)碼管譯碼模塊圖由該硬件模塊圖可知CLK_50M為輸入信號(hào),RST_N為復(fù)位信號(hào),temp_data[19..0]為溫度傳感器所檢測(cè)的實(shí)時(shí)溫度作為輸入,sign為符號(hào)位。SEG_DATA[7..0]為數(shù)碼管段選信號(hào),SEG_EN[5..0]為數(shù)碼管位選信號(hào)。實(shí)現(xiàn)該硬件模塊功能的部分VerilogHDL程序如下:moduledkx_smg( CLK_50M,RST_N,temp_date,sign, SEG_DATA,SEG_EN);//組合電路,實(shí)現(xiàn)數(shù)碼管的數(shù)字顯示,將時(shí)鐘中的數(shù)據(jù)轉(zhuǎn)換成顯示數(shù)據(jù)always@(*)begin case(led_cnt) 3:led_data=temp_date_one; //個(gè)位,帶小數(shù)點(diǎn) endcaseend//組合電路,控制數(shù)碼管小數(shù)點(diǎn)的亮滅always@(*)begin case(led_cnt) 0:SEG_DATA[7]=1'b1; //點(diǎn)亮數(shù)碼管SEG1的小數(shù)點(diǎn)endmodule3.7繼電器控制模塊設(shè)計(jì)基于FPGA設(shè)計(jì)的電烤箱可以通過(guò)程序設(shè)定,在電烤箱內(nèi)部達(dá)到所設(shè)定的最高溫度值時(shí),向繼電器發(fā)送一個(gè)高電平,使發(fā)熱管停止工作。而當(dāng)溫度過(guò)低時(shí),向繼電器發(fā)送一個(gè)低電平,使發(fā)熱管重新工作。從而提高了電烤箱的智能性,提升用戶(hù)體驗(yàn)。繼電器控制電路圖如圖9:圖9繼電器控制模塊圖由該硬件模塊圖可知clk_1MHz為輸入的時(shí)鐘信號(hào),RST_N為復(fù)位信號(hào)。state_out[2..0]為狀態(tài)的輸入信號(hào)。work_j為1位輸出信號(hào),用來(lái)控制繼電器工作,beep為工作完成的音效提示信號(hào),led1為工作完成的指示燈。實(shí)現(xiàn)該硬件模塊功能的部分VerilogHDL程序如下:moduledkx_jdq(state_out,clk_1MHz,RST_N,//inbeep,led1,work_j//out);input[2:0]state_out;inputclk_1MHz;inputRST_N;outputbeep;outputled1;outputregwork_j;always@(posedgeclk_1MHzornegedgeRST_N)begin if(!RST_N) work_j<=1'b1; elseif(state_out==3'b011) work_j<=0; else work_j<=1 ;endassignled1=((state_out==3'b011)?0:1);reg[14:0]time_cnt=1;reg[23:0]time_cnt_b=1;wire[14:0]freq=0;regbeep_reg=0;parameterSET_TIME_1S=24'd1_000_000;assignfreq=((state_out==3'b111)?5000:0);3.8頂層模塊連接頂層系統(tǒng)的設(shè)計(jì)就是把時(shí)鐘分頻模塊、按鍵消抖模塊、狀態(tài)設(shè)置模塊、溫度傳感器驅(qū)動(dòng)模塊、繼電器控制模塊、液晶屏驅(qū)動(dòng)模塊、數(shù)碼管譯碼模塊這七個(gè)模塊連接起來(lái)構(gòu)成一個(gè)完整電路。在對(duì)上述各模塊進(jìn)行了模擬之后,再編寫(xiě)一個(gè)頂層文件,將各單元模塊進(jìn)行鏈接并進(jìn)行統(tǒng)一調(diào)度,最終得到了一個(gè)頂層文件的工作原理圖,如圖10:圖10頂層文件的原理圖由圖10可以看出,電烤箱分為七個(gè)模塊,分別為時(shí)鐘分頻模塊、按鍵消抖模塊、狀態(tài)設(shè)置模塊、溫度傳感器驅(qū)動(dòng)模塊、繼電器控制模塊、液晶屏驅(qū)動(dòng)模塊、數(shù)碼管譯碼模塊。其中按鍵消抖模塊的led2連接一個(gè)led燈來(lái)用作按鍵按下的指示燈。溫度傳感器驅(qū)動(dòng)模塊的雙向輸出dq連接溫度傳感器DS18B20用來(lái)驅(qū)動(dòng)溫度傳感器工作。液晶屏驅(qū)動(dòng)模塊的輸出LCD_EN、LCD_RW、LCD_RS、LCD_DATA[7..0]連接LCD1602液晶屏用來(lái)顯示加熱時(shí)間的倒計(jì)時(shí)、設(shè)定的最高溫度值以及所選擇的檔位。數(shù)碼管譯碼模塊的輸出SEG_DATA[7..0]、SEG_EN[5..0]連接八位數(shù)碼管用來(lái)顯示溫度傳感器DS18B20所測(cè)得的電烤箱內(nèi)部實(shí)時(shí)溫度。繼電器控制模塊的輸出led1連接1個(gè)led燈來(lái)用作電烤箱工作狀態(tài)的指示燈,輸出beep連接蜂鳴器來(lái)用作電烤箱工作結(jié)束的音效提示,輸出work_j連接繼電器來(lái)用作控制發(fā)熱管工作。4電烤箱外圍電路設(shè)計(jì)4.1數(shù)碼管顯示電路該顯示電路主要是利用共陽(yáng)數(shù)碼管來(lái)實(shí)現(xiàn)的,LED共陽(yáng)數(shù)碼管是一種電子數(shù)字顯示器件,在數(shù)字電路、計(jì)算機(jī)組成原理、嵌入式系統(tǒng)等領(lǐng)域廣泛應(yīng)用REF_Ref132232912\r\h[8]。電路采用的六位LED共陽(yáng)數(shù)碼管采用LED熒光數(shù)字管作為數(shù)字顯示部件,具有亮度高、反應(yīng)速度快、可重復(fù)使用等優(yōu)點(diǎn),能夠在各種光照條件下清晰顯示數(shù)字。同時(shí)能夠顯示0-999999的數(shù)字,顯示精度高,顯示內(nèi)容可以根據(jù)需要進(jìn)行變化。其驅(qū)動(dòng)器件相對(duì)較簡(jiǎn)單,能夠方便地與許多數(shù)字電路、控制電路、嵌入式系統(tǒng)等相連接。整個(gè)顯示電路由六個(gè)兩位數(shù)碼管加三極管和電阻組成。三極管的傳導(dǎo)特性可用于引導(dǎo)數(shù)碼管的開(kāi)啟和關(guān)閉,顯示電路需要驅(qū)動(dòng)多個(gè)數(shù)碼管,因此使用三極管U1、U2、U3、U4、U5、U6對(duì)輸入信號(hào)進(jìn)行放大,以確保足夠的電流和電壓達(dá)到數(shù)碼管的驅(qū)動(dòng)要求。數(shù)碼管陰極引腳連接電阻1KΩ來(lái)限制電流,以避免電流過(guò)大,數(shù)碼管被燒毀。由FPGA產(chǎn)生位選擇和段選擇信號(hào),然后逐個(gè)掃描并顯示六個(gè)數(shù)碼管。數(shù)碼管顯示電路圖如圖11所示。六位數(shù)碼管從左到右依次顯示的為所測(cè)電烤箱內(nèi)部溫度的符號(hào)位、百位、十位、個(gè)位、小數(shù)點(diǎn)、十分位、百分位,SM_SEG[7..0]為段選信號(hào),SM_BIT[7..0]為位選信號(hào)。圖11數(shù)碼管顯示電路圖4.2工作狀態(tài)指示電路電烤箱工作狀態(tài)指示電路主要由發(fā)光二極管、蜂鳴器組成的。蜂鳴器可實(shí)現(xiàn)報(bào)警電路,電路簡(jiǎn)單,穩(wěn)定有效,成本低,可很直接地反映出結(jié)果REF_Ref9835\r\h[9]。發(fā)光二極管(LED)是一種被廣泛應(yīng)用于照明與顯示的發(fā)光器件。它具有低碳環(huán)保、工作壽命長(zhǎng)、響應(yīng)速度快等優(yōu)點(diǎn)REF_Ref10635\r\h[10]。工作狀態(tài)指示電路如圖所示:圖12工作狀態(tài)指示電路圖4.3液晶屏顯示電路目前,工業(yè)生產(chǎn)過(guò)程中的一些參數(shù)信息都是通過(guò)數(shù)碼管顯示的,這樣的顯示系統(tǒng)并不能全面地提供所需信息,而采用LCD液晶進(jìn)行數(shù)據(jù)的顯示,不但能給出參數(shù)的數(shù)值,還能顯示參數(shù)的具體內(nèi)容,從而提高了參數(shù)的可讀性。本文使用的液晶器件是LCD1602,以往對(duì)其進(jìn)行的顯示控制都是靜態(tài)的,無(wú)法對(duì)參數(shù)進(jìn)行實(shí)時(shí)動(dòng)態(tài)的顯示,而且其控制器大多采用的是單片機(jī),單片機(jī)使用C語(yǔ)言或匯編語(yǔ)言進(jìn)行編程,這種程序是順序執(zhí)行的,無(wú)法實(shí)現(xiàn)多任務(wù)的同時(shí)執(zhí)行。FPGA器件由于其純硬件的電路設(shè)計(jì)、可并行的執(zhí)行過(guò)程,使得其顯示控制的速度比單片機(jī)更快,實(shí)時(shí)動(dòng)態(tài)顯示的效果更好,而且設(shè)計(jì)靈活,易于修改。因此,該電烤箱的顯示提出了一種采用FPGA對(duì)LCD進(jìn)行動(dòng)態(tài)顯示控制的方法REF_Ref11429\r\h[11]。整個(gè)顯示電路由一個(gè)LCD液晶顯示屏、電阻及穩(wěn)壓器組成,如圖13所示。圖13液晶屏顯示電路圖4.4發(fā)熱管驅(qū)動(dòng)電路電烤箱是一種利用電流通過(guò)電熱元件產(chǎn)生熱量,借助輻射和對(duì)流的傳遞方式REF_Ref20286\r\h[12],電烤箱的烹飪性能是影響其性能品質(zhì)的重要指標(biāo)。在食物的烘焙過(guò)程中,不同的發(fā)熱管溫度對(duì)食材烹飪效果有直接影響REF_Ref19319\r\h[13]。本設(shè)計(jì)采用的發(fā)熱管工作電壓為110V,兩根發(fā)熱管串聯(lián)進(jìn)電路,采用的繼電器工作電壓為5V,低電平觸發(fā),發(fā)熱管驅(qū)動(dòng)電路如圖14所示:圖14發(fā)熱管驅(qū)動(dòng)電路圖4.5溫度傳感器電路由于DS18B20的優(yōu)越性,越來(lái)越多的測(cè)溫范圍為-55~+125℃的溫度測(cè)量系統(tǒng)采用DS18B20測(cè)量溫度。目前,大多數(shù)多路溫度測(cè)量系統(tǒng)采用單片機(jī)作為溫度測(cè)量系統(tǒng)的控制器,并且單片機(jī)作為下位機(jī)來(lái)保存溫度測(cè)量值然后送給上位機(jī)處理。DS18B20的讀寫(xiě)時(shí)序?qū)纹瑱C(jī)控制的讀寫(xiě)時(shí)序的高低電平的時(shí)隙要求比較嚴(yán)格,并且單片機(jī)的時(shí)鐘頻率不能根據(jù)編程的需要靈活的改變,給程序設(shè)計(jì)帶來(lái)了麻煩;另外,采用先保存溫度測(cè)量值然后送給上位機(jī)處理,會(huì)加重成本,而且很不方便。可編程邏輯器件FPGA可以對(duì)給定的時(shí)鐘頻率根據(jù)DS18B20的讀寫(xiě)時(shí)序的時(shí)隙要求靈活地分頻到與DS18B20的讀寫(xiě)時(shí)序相適應(yīng)的最佳頻率,可以在最短的時(shí)間內(nèi)方便地對(duì)DS18B20進(jìn)行讀寫(xiě)控制REF_Ref17041\r\h[7]。整個(gè)顯示電路由一個(gè)DS18B20加兩個(gè)三端器件、發(fā)光二極管和電阻組成。阻值10K的上拉電阻R1將DQ信號(hào)鉗位在高電平,同時(shí)起限流作用。單總線DQ只需要一根通信線即可實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸,當(dāng)接上電源時(shí)溫度傳感器電源指示燈亮。圖15溫度傳感器電路圖5實(shí)物測(cè)試與仿真5.1主要模塊仿真5.1.1時(shí)鐘分頻模塊仿真模塊仿真使用了QuartusII17.1進(jìn)行仿真。為方便觀看波形,時(shí)鐘信號(hào)的周期并未嚴(yán)格按實(shí)際要求設(shè)置,仿真前先將程序中的數(shù)值改小,否則仿真會(huì)因?yàn)榉抡鏁r(shí)間過(guò)長(zhǎng)而失敗。clk_in為輸入信號(hào)。由仿真圖15可以看出,系統(tǒng)實(shí)現(xiàn)了時(shí)鐘分頻,設(shè)置clk_in時(shí)鐘周期為50ns,仿真完成后輸出信號(hào)clk1MHZ為1ns,符合系統(tǒng)需要的時(shí)鐘分頻要求。時(shí)鐘分頻模塊仿真圖如圖15:圖15時(shí)鐘分頻模塊仿真圖5.1.2狀態(tài)設(shè)置模塊仿真clk_1HZ為輸入信號(hào),給其設(shè)置時(shí)鐘信號(hào),RST_N為復(fù)位信號(hào),低電平復(fù)位信號(hào)有效。KEY_1到KEY_3都為輸入信號(hào),temp_in[19..0]為溫度傳感器輸入的20位實(shí)時(shí)溫度信號(hào)。hour_o[3..0]、minute_o[3..0]、minute_t[3..0]、second_o[3..0]、second_t[3..0]和temp_h[3..0]、temp_o[3..0]、temp_t[3..0]為輸出信號(hào),用來(lái)控制液晶屏顯示的倒計(jì)時(shí)與設(shè)定的溫度。從圖中可以看出,在clk_1HZ為第二個(gè)上升沿時(shí),KEY_1被短按下,10狀態(tài)有效,時(shí)間分鐘十位由0000變?yōu)?001;在clk_1HZ為第三個(gè)上升沿時(shí),KEY_2被短按下,10狀態(tài)有效,溫度十位由0000變?yōu)?001;在clk_1HZ為第七個(gè)上升沿時(shí),RST_N被按下,低電平有效,所有信號(hào)被復(fù)位,回到初始狀態(tài);而后對(duì)KEY_1進(jìn)行三次短按,一次長(zhǎng)按,此時(shí)時(shí)間顯示28min,正確;對(duì)KEY_2進(jìn)行三次短按,一次長(zhǎng)按,此時(shí)溫度顯示2700,正確。短按KEY_3,開(kāi)始工作,進(jìn)入倒計(jì)時(shí)狀態(tài),再次短按KEY_3,暫停工作,回到初始狀態(tài),再次短按,繼續(xù)工作,進(jìn)入倒計(jì)時(shí)狀態(tài),最后長(zhǎng)按,進(jìn)入結(jié)束狀態(tài)。同時(shí)在倒計(jì)時(shí)狀態(tài)下,當(dāng)溫度傳感器溫度大于所設(shè)定溫度最高值+300時(shí),溫度值保持不變,即加熱進(jìn)入暫停狀態(tài)。狀態(tài)設(shè)置模塊仿真圖如圖16:圖16狀態(tài)設(shè)置模塊仿真圖5.1.3繼電器控制模塊仿真clk_1HZ為輸入時(shí)鐘信號(hào),RST_N為復(fù)位信號(hào)。state_out[3..0]為狀態(tài)設(shè)置模塊中電烤箱不同工作狀態(tài)對(duì)應(yīng)模式的信號(hào)輸出連接到繼電器控制模塊中作為繼電器控制的輸入信號(hào)。beep為工作完成的音效提示信號(hào),led1為工作完成的指示燈提示信號(hào),work_j為控制繼電器工作狀態(tài)的信號(hào),高電平有效。繼電器控制模塊仿真圖如圖17:圖17繼電器控制模塊仿真圖由仿真圖可知,當(dāng)clk_1HZ為上升沿時(shí),利用if語(yǔ)句對(duì)state_out[3..0]的值進(jìn)行判斷選擇,當(dāng)state_out=011時(shí)led1=0,work_j=0,beep=0;即指示燈亮,繼電器工作,蜂鳴器響。5.2實(shí)驗(yàn)結(jié)果及分析5.2.1實(shí)驗(yàn)結(jié)果將各個(gè)元器件與開(kāi)發(fā)板上對(duì)應(yīng)I/O口連接好并測(cè)試電路正常后,通過(guò)下載器往芯片中燒入程序后即可正常運(yùn)行。為了能夠?qū)崿F(xiàn)斷電保存,需要將下載生成的sof文件轉(zhuǎn)化成jic文件,并通過(guò)JTAG接口下載到存儲(chǔ)芯片EPCS16中。在FPGA器件啟動(dòng)時(shí),EPCS16中的數(shù)據(jù)將被加載進(jìn)入FPGA中,實(shí)現(xiàn)FPGA的初始化。程序可以正常開(kāi)始運(yùn)行時(shí)可以得到如圖18所示的狀態(tài)。此時(shí)電烤箱處于初始狀態(tài),即六位數(shù)碼管顯示電烤箱內(nèi)部溫度值,LCD1602液晶屏第一行顯示“Time:0:00:00F”,第二行顯示“Temp:00.00”,LED燈全滅。圖18電烤箱初始狀態(tài)實(shí)物圖當(dāng)選擇電烤箱預(yù)置方案時(shí),短按下檔位按鍵1選中解凍檔位,此時(shí)六位數(shù)碼管顯示電烤箱內(nèi)部溫度值,LCD1602液晶屏顯示30分鐘倒計(jì)時(shí),設(shè)定的最高溫度值30℃,選擇的檔位為F1,解凍狀態(tài)指示燈亮,電烤箱加熱狀態(tài)指示燈亮,電烤箱狀態(tài)如圖19所示。圖19電烤箱解凍功能實(shí)物圖長(zhǎng)按下檔位按鍵1選中低檔檔位,此時(shí)六位數(shù)碼管顯示電烤箱內(nèi)部溫度值,LCD1602液晶屏顯示1小時(shí)倒計(jì)時(shí),設(shè)定的最高溫度值為60℃,選擇的檔位為F2,低檔狀態(tài)指示燈亮,電烤箱加熱狀態(tài)指示燈亮,電烤箱狀態(tài)如圖20所示。圖20電烤箱低檔功能實(shí)物圖短按下檔位按鍵2選中中檔檔位,此時(shí)六位數(shù)碼管顯示電烤箱內(nèi)部溫度值,LCD1602液晶屏顯示1小時(shí)倒計(jì)時(shí),設(shè)定的最高溫度值90℃,選擇的檔位為F3,中檔狀態(tài)指示燈亮,電烤箱加熱狀態(tài)指示燈亮,電烤箱狀態(tài)如圖21所示。圖21電烤箱中檔功能實(shí)物圖長(zhǎng)按下檔位按鍵2選中高檔檔位,此時(shí)六位數(shù)碼管顯示電烤箱內(nèi)部溫度值,LCD1602液晶屏顯示1小時(shí)30分鐘倒計(jì)時(shí),設(shè)定的最高溫度值120℃,選擇的檔位為F2,高檔狀態(tài)指示燈亮,電烤箱加熱狀態(tài)指示燈亮,電烤箱狀態(tài)如圖22所示。圖22電烤箱高檔功能實(shí)物圖當(dāng)選擇電烤箱自定義方案時(shí),按下時(shí)間設(shè)置鍵進(jìn)行時(shí)間設(shè)定,短按加10分鐘,長(zhǎng)按減2分鐘,按下溫度設(shè)置鍵進(jìn)行溫度設(shè)定,短按加10℃,長(zhǎng)按減2℃。設(shè)定好自定義方案后短按狀態(tài)鍵電烤箱進(jìn)入烹飪狀態(tài),液晶顯示屏上開(kāi)始顯示時(shí)間倒計(jì)時(shí),加熱狀態(tài)指示燈亮。設(shè)定加熱時(shí)間為28分鐘、最高溫度為66℃,并短按狀態(tài)鍵后電烤箱狀態(tài)如圖23所示。圖23電烤箱自定義設(shè)定實(shí)物圖在電烤箱工作時(shí),再次短按狀態(tài)鍵使電烤箱進(jìn)入暫停狀態(tài),加熱狀態(tài)指示燈滅,此時(shí)可再次設(shè)定加熱時(shí)間與最高溫度,并按下?tīng)顟B(tài)鍵讓電烤箱繼續(xù)工作。當(dāng)圖13所設(shè)狀態(tài)工作兩分鐘后使其暫停,并再次調(diào)節(jié)加熱時(shí)間為36分鐘、最高溫度為88℃,再使其繼續(xù)工作后電烤箱狀態(tài)如圖24所示圖24電烤箱暫停后重新設(shè)定實(shí)物圖在電烤箱工作過(guò)程中,若電烤箱內(nèi)部實(shí)時(shí)溫度僅高于所設(shè)定溫度時(shí),繼電器處于斷開(kāi)狀態(tài),發(fā)熱管停止工作,加熱狀態(tài)指示燈滅,此時(shí)倒計(jì)時(shí)繼續(xù),電烤箱狀態(tài)如圖25所示。圖25電烤箱發(fā)熱管停止工作實(shí)物圖在長(zhǎng)按下?tīng)顟B(tài)鍵使電烤箱停止工作或待倒計(jì)時(shí)結(jié)束電烤箱自動(dòng)工作結(jié)束后,加熱狀態(tài)指示燈滅,音效提示響七次后電烤箱進(jìn)入初始狀態(tài),電烤箱狀態(tài)如圖26所示。圖26電烤箱停止?fàn)顟B(tài)實(shí)物圖5.2.2數(shù)據(jù)分析測(cè)試步驟:給電烤箱設(shè)定不同的加熱溫度及適當(dāng)?shù)募訜釙r(shí)間,在電烤箱工作結(jié)束后
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年數(shù)據(jù)中心機(jī)房電工維護(hù)與管理合同2篇
- 二零二五年期品牌授權(quán)協(xié)議2篇
- 二零二五版人工智能應(yīng)用開(kāi)發(fā)與技術(shù)實(shí)施合同2篇
- 二零二五年度汽車(chē)租賃市場(chǎng)拓展與投資合同3篇
- 2025年度貨物買(mǎi)賣(mài)合同糾紛解決條款3篇
- 專(zhuān)屬2024年度棉花田地承包協(xié)議模板版B版
- 二零二五年文化產(chǎn)業(yè)貸款合同模板3篇
- 二零二五年度駕校教練實(shí)習(xí)基地共建合同3篇
- 二零二五年度餐飲服務(wù)短期兼職勞動(dòng)合同范本
- 二零二五版廠房轉(zhuǎn)租商務(wù)合作框架合同3篇
- 鋼結(jié)構(gòu)施工管理培訓(xùn)課件
- 2024年度工程建設(shè)項(xiàng)目安全評(píng)價(jià)合同2篇
- 《飛機(jī)操縱面》課件
- 商業(yè)咨詢(xún)報(bào)告范文大全
- 自我發(fā)展與團(tuán)隊(duì)管理課件
- 《婦產(chǎn)科學(xué)》課件-17.盆腔器官脫垂
- 監(jiān)理報(bào)告范本
- 店鋪交割合同范例
- 大型活動(dòng)LED屏幕安全應(yīng)急預(yù)案
- 2024年內(nèi)蒙古包頭市中考道德與法治試卷
- 湖南省長(zhǎng)沙市2024-2025學(xué)年高二上學(xué)期期中考試地理試卷(含答案)
評(píng)論
0/150
提交評(píng)論