




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
目錄313731引言 。在多功能電烤箱的設(shè)計中采用了自上而下的設(shè)計方法,首先進行系統(tǒng)設(shè)計,劃分各個功能模塊,并對每一個模塊進行了詳細的功能描述,使用VerilogHDL語言對每一個模塊進行了編程REF_Ref25073\r\h[5],并且使用QuartusⅡ進行仿真并獲得相應(yīng)的仿真結(jié)果。最后將編程的網(wǎng)表文件下載到FPGA芯片EP4CE6F17C8N中REF_Ref25677\r\h[6]。該電烤箱控制部分以FPGA芯片為核心,實現(xiàn)時間設(shè)置、溫度設(shè)定、譯碼器譯碼等,在硬件組成上,涉及到數(shù)碼管顯示、指示燈提示、音效提醒、液晶屏顯示等。2.2具體設(shè)計方案本論文設(shè)計的多功能電烤箱不僅實現(xiàn)工作狀態(tài)指示燈顯示,倒計時時間數(shù)字的顯示,電烤箱內(nèi)部實時溫度的顯示,實時按鍵調(diào)節(jié)時間、溫度設(shè)置,還具有工作結(jié)束音效指示功能。通過調(diào)研現(xiàn)有電烤箱的功能和設(shè)計,了解了其工作原理和控制方法。多功能電烤箱需要首先具備時間控制功能,給電烤箱預(yù)設(shè)需要加熱的時間,在此基礎(chǔ)上設(shè)定最高溫度值,通過將溫度傳感器實時監(jiān)測的電烤箱內(nèi)部溫度值與所設(shè)定的最高溫度值相比較,進而判斷加熱管是否工作。當(dāng)電烤箱內(nèi)部溫度值達到了預(yù)設(shè)溫度值及其閾值范圍內(nèi),加熱管停止工作,倒計時繼續(xù),直至倒計時結(jié)束電烤箱停止工作。利用VerilogHDL對電烤箱的功能進行了合理的設(shè)計,保證了時間與溫度設(shè)定的準確以及繼電器工作狀態(tài)的切換的時刻。根據(jù)設(shè)計要求,最后繪制了如圖1所示的系統(tǒng)框圖。圖1系統(tǒng)框圖2.3電烤箱的工作流程電烤箱的工作流程為:上電后,系統(tǒng)首先處于一種初始狀態(tài)。此時,LCD1602液晶顯示屏上第一行會顯示“Time:0:00:00F”,第二行會顯示“Temp:00.00”。八位數(shù)碼管上顯示電烤箱內(nèi)部實時溫度,指示燈未亮。電烤箱工作時,首先通過鍵盤輸入數(shù)據(jù),比如,按解凍、低檔、中檔、高檔鍵選擇系統(tǒng)預(yù)置方案后直接開始烹飪?;蛘甙磿r間設(shè)置鍵設(shè)置時間,按溫度設(shè)定鍵設(shè)置溫度來進行自定義方案設(shè)置,設(shè)置結(jié)束以后,表示數(shù)據(jù)裝載完成,按開始鍵后系統(tǒng)進入烹調(diào)狀態(tài),同時指示燈亮,LCD1602顯示屏上時間開始倒計時。在電烤箱進入烹調(diào)狀態(tài)后,按一次開始鍵暫停烹飪,此時可以修改設(shè)定好的時間與溫度,再按一次開始鍵繼續(xù)烹飪,按結(jié)束鍵停止烹飪。烹飪結(jié)束后,電烤箱會發(fā)出音效提示,指示燈滅。音效提示結(jié)束后,電烤箱自動進入初始狀態(tài)。根據(jù)電烤箱工作流程,繪制主流程圖,如圖2所示:圖2電烤箱工作流程圖3主要功能模塊設(shè)計多功能電烤箱所要實現(xiàn)的功能分別在時鐘分頻模塊、按鍵消抖模塊、狀態(tài)設(shè)置模塊、溫度傳感器驅(qū)動模塊、繼電器控制模塊、液晶屏驅(qū)動模塊、數(shù)碼管譯碼模塊這七個模塊中分別進行設(shè)計。3.1時鐘分頻模塊設(shè)計在電烤箱控制系統(tǒng)中,大多數(shù)的情況是需要系統(tǒng)根據(jù)設(shè)定的程序來自動控制加熱的時間與溫度。因此,為了加熱時長與溫度上限出現(xiàn)錯誤導(dǎo)致食材的烹飪失敗,所設(shè)計的控制系統(tǒng)需要一個穩(wěn)定的時鐘來支持其正常的工作。本模塊主要是把50MHz的信號分頻為1MHz的信號。時鐘分頻模塊的電路圖如圖3所示。圖3時鐘分頻電路模塊圖由該硬件模塊圖可知clk_in為輸入信號,由外部信號提供50MHz的時鐘信號。該模塊將外部的時鐘信號進行分頻處理,獲得clk_1MHz頻率為1MHz的輸出信號。該時鐘脈沖發(fā)生電路模塊主要是負責(zé)產(chǎn)生穩(wěn)定的時鐘信號,為其他模塊提供同步的工作時鐘信號。實現(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è)計由于最高加熱溫度與加熱所需時間的設(shè)置均是通過按鍵的累加來完成,因此為了避免由于按鍵的抖動所導(dǎo)致不必要的多次識別而觸發(fā)的溫度及時間設(shè)置不準確的問題出現(xiàn),需要通過按鍵消抖電路,來提高電烤箱的穩(wěn)定性、可靠性和用戶體驗。按鍵消抖模塊如圖4:圖4按鍵消抖模塊圖由該硬件模塊圖可知clk_1MHz為輸入信號,由時鐘分頻模塊提供50MHz的時鐘信號RST_N為復(fù)位信號,KEY[4..0]為五個按鍵輸入。led1為按鍵作用顯示燈輸出,用來指示按鍵作用多少次。KEY_1[1..0]到KEY_5[1..0]為消抖后的按鍵輸出,并分為長按與短按兩種不同功能。實現(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è)置定時器的時間為20ms,計算方法為(20*10^6)ns/(1/50)ns1MHz為開發(fā)板晶振parameterSET_TIME_20MS=15'd20_000;parameterSET_TIME_1S=21'd300_000;//計時按壓按鍵時間always@(posedgeclk_1MHz)begin if(key_reg>key_reg_n) //判斷復(fù)位 time_cnt_c<=0; //定時器清零操作 elseif(KEY==5'b11111) time_cnt_c<=time_cnt_c; else time_cnt_c<=time_cnt_c+1;end//按鍵賦值,大于1s00,小于1s10,定義11為常態(tài)無輸出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è)計電烤箱的自定義方案需要設(shè)置一個模塊來設(shè)定加熱的最高溫度以及加熱所需的時間,并且可以設(shè)定倒計時,另一個預(yù)置方案需要設(shè)定四個不同檔位來烹飪食物。狀態(tài)設(shè)置模塊圖如圖5:圖5狀態(tài)設(shè)置模塊圖由該硬件模塊圖可知clk_1MHz為輸入的時鐘信號,RST_N為復(fù)位信號,KEY_1[1..0]到KEY_5[1..0]都為兩位按鍵輸入信號。temp_in[19..0]為溫度傳感器實時測量的溫度值輸入信號。temp_h[3..0]、temp_o[3..0]、temp_t[3..0]分別為輸出溫度值的百位、十位、個位的四位輸出信號,hour_o[3..0],minute_t[3..0],minute_o[3..0],second_t[3..0],second_o[3..0]分別為輸出時間值的小時個位、分鐘十位、分鐘個位、秒鐘十位、秒鐘個位的四位輸出信號。state_out[2..0]為輸出狀態(tài)的3位輸出信號。led_state1到led_state4分別為解凍、低檔、中檔、高度四種檔位輸出信號。實現(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è)置點按1秒以內(nèi):時間+10min,長按>1秒時間-2minoutputstate_out;//狀態(tài)000初始001啟動011運行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è)置時間、溫度、檔位 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°加熱半小時 begin temp_n=3000; time_n=1800; state_n=3'b011; led_state1=0; end//溫度暫停時的運行狀態(tài)110 begin if(temp_in<(temp_n-300)) state_n=3'b011;//進入運行狀態(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-蜂鳴器報警3'b111:begin if(cnt_a>=7*SET_TIME_1S) begin state_n=3'b000;//延遲8s后進入初始狀態(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ū)動模塊設(shè)計可編程邏輯器件FPGA可以對給定的時鐘頻率根據(jù)DS18B20的讀寫時序的時隙要求靈活地分頻到與DS18B20的讀寫時序相適應(yīng)的最佳頻率,可以在最短的時間內(nèi)方便地對DS18B20進行讀寫控制REF_Ref26680\r\h[7]。溫度傳感器在系統(tǒng)時鐘驅(qū)動下,通過數(shù)據(jù)線DQ與FPGA進行信息傳輸,從而測出電烤箱的內(nèi)部溫度。溫度傳感器驅(qū)動模塊如圖6所示:圖6溫度傳感器驅(qū)動模塊圖由該硬件模塊圖可知clk為輸入時鐘信號,rst_n為復(fù)位信號。sign為符號輸出信號,temp_data[19..0]為電烤箱內(nèi)部溫度值的20位輸出信號,dq為雙向信號。實現(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ū)動模塊設(shè)計液晶屏驅(qū)動模塊是將從狀態(tài)設(shè)置模塊輸出的時間與溫度數(shù)值顯現(xiàn)出來。FPGA通過驅(qū)動液晶屏顯示可以更便捷地使用電烤箱。在電烤箱使用過程中,如果不知道加熱倒計時的顯示時間,使用者需要一直觀察電烤箱的工作狀態(tài)或者錯失最佳用餐時間。如果能在電烤箱上添加液晶屏顯示所剩下的加熱時間來對使用者加以提示,那么該電烤箱會更具有便捷性。并且當(dāng)使用者為所要烹調(diào)的食材設(shè)定烹調(diào)時間與溫度時,如果不小心設(shè)置錯了時間或溫度,食材將會烹調(diào)失敗。如果能將使用者所設(shè)置的時間與溫度顯示出來,那么電烤箱會更具有準確性。因此,液晶屏最主要的功能就是根據(jù)加熱倒計時數(shù)據(jù)、時間與溫度設(shè)定數(shù)據(jù)以及所選檔位,輸出信號控制液晶屏顯示出對應(yīng)數(shù)值(即倒計時的分鐘值、溫度數(shù)值以及檔位)。液晶屏驅(qū)動模塊如圖7:圖7液晶屏驅(qū)動模塊圖由該硬件模塊圖可知Clock為輸入50MHz信號,Reset_n為復(fù)位信號,hour_o[3..0]、minute_o[3..0]、minute_t[3..0]、second_o[3..0]、second_t[3..0]為時間設(shè)置的小時個位、分鐘十位、分鐘個位、秒鐘十位、秒鐘個位的四位輸入,temp_h[3..0]、temp_t[3..0]、temp_o[3..0]分別為所設(shè)定最高溫度值的百位、十位、個位的四位輸入,led_state1到led_state4分別為解凍、低檔、中檔、高度四種檔位輸入信號。LCD_DATA[7..0]為八位輸出,LCD_EN、LCD_RW、LCD_RS為單個信號輸出。實現(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//一個en周期開始時,執(zhí)行循環(huá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,顯示開關(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,進入模式設(shè)置:I/D=1(DB1,寫入新數(shù)據(jù)光標(biāo)右移),S=0(DB0,顯示不移動)DISP_ON:LCD_DATA<=8'h0c;//8'b0000_1100,顯示開關(guān)設(shè)置:D=1(DB2,顯示開),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è)計在電烤箱加熱過程中,為了避免使用者因不知電烤箱內(nèi)部溫度而直接觸碰所導(dǎo)致的安全隱患問題,再設(shè)計一個數(shù)碼管顯示模塊來顯示電烤箱內(nèi)部的實時溫度,來提高電烤箱的安全性。數(shù)碼管譯碼模塊如圖8:圖8數(shù)碼管譯碼模塊圖由該硬件模塊圖可知CLK_50M為輸入信號,RST_N為復(fù)位信號,temp_data[19..0]為溫度傳感器所檢測的實時溫度作為輸入,sign為符號位。SEG_DATA[7..0]為數(shù)碼管段選信號,SEG_EN[5..0]為數(shù)碼管位選信號。實現(xiàn)該硬件模塊功能的部分VerilogHDL程序如下:moduledkx_smg( CLK_50M,RST_N,temp_date,sign, SEG_DATA,SEG_EN);//組合電路,實現(xiàn)數(shù)碼管的數(shù)字顯示,將時鐘中的數(shù)據(jù)轉(zhuǎn)換成顯示數(shù)據(jù)always@(*)begin case(led_cnt) 3:led_data=temp_date_one; //個位,帶小數(shù)點 endcaseend//組合電路,控制數(shù)碼管小數(shù)點的亮滅always@(*)begin case(led_cnt) 0:SEG_DATA[7]=1'b1; //點亮數(shù)碼管SEG1的小數(shù)點endmodule3.7繼電器控制模塊設(shè)計基于FPGA設(shè)計的電烤箱可以通過程序設(shè)定,在電烤箱內(nèi)部達到所設(shè)定的最高溫度值時,向繼電器發(fā)送一個高電平,使發(fā)熱管停止工作。而當(dāng)溫度過低時,向繼電器發(fā)送一個低電平,使發(fā)熱管重新工作。從而提高了電烤箱的智能性,提升用戶體驗。繼電器控制電路圖如圖9:圖9繼電器控制模塊圖由該硬件模塊圖可知clk_1MHz為輸入的時鐘信號,RST_N為復(fù)位信號。state_out[2..0]為狀態(tài)的輸入信號。work_j為1位輸出信號,用來控制繼電器工作,beep為工作完成的音效提示信號,led1為工作完成的指示燈。實現(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è)計就是把時鐘分頻模塊、按鍵消抖模塊、狀態(tài)設(shè)置模塊、溫度傳感器驅(qū)動模塊、繼電器控制模塊、液晶屏驅(qū)動模塊、數(shù)碼管譯碼模塊這七個模塊連接起來構(gòu)成一個完整電路。在對上述各模塊進行了模擬之后,再編寫一個頂層文件,將各單元模塊進行鏈接并進行統(tǒng)一調(diào)度,最終得到了一個頂層文件的工作原理圖,如圖10:圖10頂層文件的原理圖由圖10可以看出,電烤箱分為七個模塊,分別為時鐘分頻模塊、按鍵消抖模塊、狀態(tài)設(shè)置模塊、溫度傳感器驅(qū)動模塊、繼電器控制模塊、液晶屏驅(qū)動模塊、數(shù)碼管譯碼模塊。其中按鍵消抖模塊的led2連接一個led燈來用作按鍵按下的指示燈。溫度傳感器驅(qū)動模塊的雙向輸出dq連接溫度傳感器DS18B20用來驅(qū)動溫度傳感器工作。液晶屏驅(qū)動模塊的輸出LCD_EN、LCD_RW、LCD_RS、LCD_DATA[7..0]連接LCD1602液晶屏用來顯示加熱時間的倒計時、設(shè)定的最高溫度值以及所選擇的檔位。數(shù)碼管譯碼模塊的輸出SEG_DATA[7..0]、SEG_EN[5..0]連接八位數(shù)碼管用來顯示溫度傳感器DS18B20所測得的電烤箱內(nèi)部實時溫度。繼電器控制模塊的輸出led1連接1個led燈來用作電烤箱工作狀態(tài)的指示燈,輸出beep連接蜂鳴器來用作電烤箱工作結(jié)束的音效提示,輸出work_j連接繼電器來用作控制發(fā)熱管工作。4電烤箱外圍電路設(shè)計4.1數(shù)碼管顯示電路該顯示電路主要是利用共陽數(shù)碼管來實現(xiàn)的,LED共陽數(shù)碼管是一種電子數(shù)字顯示器件,在數(shù)字電路、計算機組成原理、嵌入式系統(tǒng)等領(lǐng)域廣泛應(yīng)用REF_Ref132232912\r\h[8]。電路采用的六位LED共陽數(shù)碼管采用LED熒光數(shù)字管作為數(shù)字顯示部件,具有亮度高、反應(yīng)速度快、可重復(fù)使用等優(yōu)點,能夠在各種光照條件下清晰顯示數(shù)字。同時能夠顯示0-999999的數(shù)字,顯示精度高,顯示內(nèi)容可以根據(jù)需要進行變化。其驅(qū)動器件相對較簡單,能夠方便地與許多數(shù)字電路、控制電路、嵌入式系統(tǒng)等相連接。整個顯示電路由六個兩位數(shù)碼管加三極管和電阻組成。三極管的傳導(dǎo)特性可用于引導(dǎo)數(shù)碼管的開啟和關(guān)閉,顯示電路需要驅(qū)動多個數(shù)碼管,因此使用三極管U1、U2、U3、U4、U5、U6對輸入信號進行放大,以確保足夠的電流和電壓達到數(shù)碼管的驅(qū)動要求。數(shù)碼管陰極引腳連接電阻1KΩ來限制電流,以避免電流過大,數(shù)碼管被燒毀。由FPGA產(chǎn)生位選擇和段選擇信號,然后逐個掃描并顯示六個數(shù)碼管。數(shù)碼管顯示電路圖如圖11所示。六位數(shù)碼管從左到右依次顯示的為所測電烤箱內(nèi)部溫度的符號位、百位、十位、個位、小數(shù)點、十分位、百分位,SM_SEG[7..0]為段選信號,SM_BIT[7..0]為位選信號。圖11數(shù)碼管顯示電路圖4.2工作狀態(tài)指示電路電烤箱工作狀態(tài)指示電路主要由發(fā)光二極管、蜂鳴器組成的。蜂鳴器可實現(xiàn)報警電路,電路簡單,穩(wěn)定有效,成本低,可很直接地反映出結(jié)果REF_Ref9835\r\h[9]。發(fā)光二極管(LED)是一種被廣泛應(yīng)用于照明與顯示的發(fā)光器件。它具有低碳環(huán)保、工作壽命長、響應(yīng)速度快等優(yōu)點REF_Ref10635\r\h[10]。工作狀態(tài)指示電路如圖所示:圖12工作狀態(tài)指示電路圖4.3液晶屏顯示電路目前,工業(yè)生產(chǎn)過程中的一些參數(shù)信息都是通過數(shù)碼管顯示的,這樣的顯示系統(tǒng)并不能全面地提供所需信息,而采用LCD液晶進行數(shù)據(jù)的顯示,不但能給出參數(shù)的數(shù)值,還能顯示參數(shù)的具體內(nèi)容,從而提高了參數(shù)的可讀性。本文使用的液晶器件是LCD1602,以往對其進行的顯示控制都是靜態(tài)的,無法對參數(shù)進行實時動態(tài)的顯示,而且其控制器大多采用的是單片機,單片機使用C語言或匯編語言進行編程,這種程序是順序執(zhí)行的,無法實現(xiàn)多任務(wù)的同時執(zhí)行。FPGA器件由于其純硬件的電路設(shè)計、可并行的執(zhí)行過程,使得其顯示控制的速度比單片機更快,實時動態(tài)顯示的效果更好,而且設(shè)計靈活,易于修改。因此,該電烤箱的顯示提出了一種采用FPGA對LCD進行動態(tài)顯示控制的方法REF_Ref11429\r\h[11]。整個顯示電路由一個LCD液晶顯示屏、電阻及穩(wěn)壓器組成,如圖13所示。圖13液晶屏顯示電路圖4.4發(fā)熱管驅(qū)動電路電烤箱是一種利用電流通過電熱元件產(chǎn)生熱量,借助輻射和對流的傳遞方式REF_Ref20286\r\h[12],電烤箱的烹飪性能是影響其性能品質(zhì)的重要指標(biāo)。在食物的烘焙過程中,不同的發(fā)熱管溫度對食材烹飪效果有直接影響REF_Ref19319\r\h[13]。本設(shè)計采用的發(fā)熱管工作電壓為110V,兩根發(fā)熱管串聯(lián)進電路,采用的繼電器工作電壓為5V,低電平觸發(fā),發(fā)熱管驅(qū)動電路如圖14所示:圖14發(fā)熱管驅(qū)動電路圖4.5溫度傳感器電路由于DS18B20的優(yōu)越性,越來越多的測溫范圍為-55~+125℃的溫度測量系統(tǒng)采用DS18B20測量溫度。目前,大多數(shù)多路溫度測量系統(tǒng)采用單片機作為溫度測量系統(tǒng)的控制器,并且單片機作為下位機來保存溫度測量值然后送給上位機處理。DS18B20的讀寫時序?qū)纹瑱C控制的讀寫時序的高低電平的時隙要求比較嚴格,并且單片機的時鐘頻率不能根據(jù)編程的需要靈活的改變,給程序設(shè)計帶來了麻煩;另外,采用先保存溫度測量值然后送給上位機處理,會加重成本,而且很不方便??删幊踢壿嬈骷﨔PGA可以對給定的時鐘頻率根據(jù)DS18B20的讀寫時序的時隙要求靈活地分頻到與DS18B20的讀寫時序相適應(yīng)的最佳頻率,可以在最短的時間內(nèi)方便地對DS18B20進行讀寫控制REF_Ref17041\r\h[7]。整個顯示電路由一個DS18B20加兩個三端器件、發(fā)光二極管和電阻組成。阻值10K的上拉電阻R1將DQ信號鉗位在高電平,同時起限流作用。單總線DQ只需要一根通信線即可實現(xiàn)數(shù)據(jù)的雙向傳輸,當(dāng)接上電源時溫度傳感器電源指示燈亮。圖15溫度傳感器電路圖5實物測試與仿真5.1主要模塊仿真5.1.1時鐘分頻模塊仿真模塊仿真使用了QuartusII17.1進行仿真。為方便觀看波形,時鐘信號的周期并未嚴格按實際要求設(shè)置,仿真前先將程序中的數(shù)值改小,否則仿真會因為仿真時間過長而失敗。clk_in為輸入信號。由仿真圖15可以看出,系統(tǒng)實現(xiàn)了時鐘分頻,設(shè)置clk_in時鐘周期為50ns,仿真完成后輸出信號clk1MHZ為1ns,符合系統(tǒng)需要的時鐘分頻要求。時鐘分頻模塊仿真圖如圖15:圖15時鐘分頻模塊仿真圖5.1.2狀態(tài)設(shè)置模塊仿真clk_1HZ為輸入信號,給其設(shè)置時鐘信號,RST_N為復(fù)位信號,低電平復(fù)位信號有效。KEY_1到KEY_3都為輸入信號,temp_in[19..0]為溫度傳感器輸入的20位實時溫度信號。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]為輸出信號,用來控制液晶屏顯示的倒計時與設(shè)定的溫度。從圖中可以看出,在clk_1HZ為第二個上升沿時,KEY_1被短按下,10狀態(tài)有效,時間分鐘十位由0000變?yōu)?001;在clk_1HZ為第三個上升沿時,KEY_2被短按下,10狀態(tài)有效,溫度十位由0000變?yōu)?001;在clk_1HZ為第七個上升沿時,RST_N被按下,低電平有效,所有信號被復(fù)位,回到初始狀態(tài);而后對KEY_1進行三次短按,一次長按,此時時間顯示28min,正確;對KEY_2進行三次短按,一次長按,此時溫度顯示2700,正確。短按KEY_3,開始工作,進入倒計時狀態(tài),再次短按KEY_3,暫停工作,回到初始狀態(tài),再次短按,繼續(xù)工作,進入倒計時狀態(tài),最后長按,進入結(jié)束狀態(tài)。同時在倒計時狀態(tài)下,當(dāng)溫度傳感器溫度大于所設(shè)定溫度最高值+300時,溫度值保持不變,即加熱進入暫停狀態(tài)。狀態(tài)設(shè)置模塊仿真圖如圖16:圖16狀態(tài)設(shè)置模塊仿真圖5.1.3繼電器控制模塊仿真clk_1HZ為輸入時鐘信號,RST_N為復(fù)位信號。state_out[3..0]為狀態(tài)設(shè)置模塊中電烤箱不同工作狀態(tài)對應(yīng)模式的信號輸出連接到繼電器控制模塊中作為繼電器控制的輸入信號。beep為工作完成的音效提示信號,led1為工作完成的指示燈提示信號,work_j為控制繼電器工作狀態(tài)的信號,高電平有效。繼電器控制模塊仿真圖如圖17:圖17繼電器控制模塊仿真圖由仿真圖可知,當(dāng)clk_1HZ為上升沿時,利用if語句對state_out[3..0]的值進行判斷選擇,當(dāng)state_out=011時led1=0,work_j=0,beep=0;即指示燈亮,繼電器工作,蜂鳴器響。5.2實驗結(jié)果及分析5.2.1實驗結(jié)果將各個元器件與開發(fā)板上對應(yīng)I/O口連接好并測試電路正常后,通過下載器往芯片中燒入程序后即可正常運行。為了能夠?qū)崿F(xiàn)斷電保存,需要將下載生成的sof文件轉(zhuǎn)化成jic文件,并通過JTAG接口下載到存儲芯片EPCS16中。在FPGA器件啟動時,EPCS16中的數(shù)據(jù)將被加載進入FPGA中,實現(xiàn)FPGA的初始化。程序可以正常開始運行時可以得到如圖18所示的狀態(tài)。此時電烤箱處于初始狀態(tài),即六位數(shù)碼管顯示電烤箱內(nèi)部溫度值,LCD1602液晶屏第一行顯示“Time:0:00:00F”,第二行顯示“Temp:00.00”,LED燈全滅。圖18電烤箱初始狀態(tài)實物圖當(dāng)選擇電烤箱預(yù)置方案時,短按下檔位按鍵1選中解凍檔位,此時六位數(shù)碼管顯示電烤箱內(nèi)部溫度值,LCD1602液晶屏顯示30分鐘倒計時,設(shè)定的最高溫度值30℃,選擇的檔位為F1,解凍狀態(tài)指示燈亮,電烤箱加熱狀態(tài)指示燈亮,電烤箱狀態(tài)如圖19所示。圖19電烤箱解凍功能實物圖長按下檔位按鍵1選中低檔檔位,此時六位數(shù)碼管顯示電烤箱內(nèi)部溫度值,LCD1602液晶屏顯示1小時倒計時,設(shè)定的最高溫度值為60℃,選擇的檔位為F2,低檔狀態(tài)指示燈亮,電烤箱加熱狀態(tài)指示燈亮,電烤箱狀態(tài)如圖20所示。圖20電烤箱低檔功能實物圖短按下檔位按鍵2選中中檔檔位,此時六位數(shù)碼管顯示電烤箱內(nèi)部溫度值,LCD1602液晶屏顯示1小時倒計時,設(shè)定的最高溫度值90℃,選擇的檔位為F3,中檔狀態(tài)指示燈亮,電烤箱加熱狀態(tài)指示燈亮,電烤箱狀態(tài)如圖21所示。圖21電烤箱中檔功能實物圖長按下檔位按鍵2選中高檔檔位,此時六位數(shù)碼管顯示電烤箱內(nèi)部溫度值,LCD1602液晶屏顯示1小時30分鐘倒計時,設(shè)定的最高溫度值120℃,選擇的檔位為F2,高檔狀態(tài)指示燈亮,電烤箱加熱狀態(tài)指示燈亮,電烤箱狀態(tài)如圖22所示。圖22電烤箱高檔功能實物圖當(dāng)選擇電烤箱自定義方案時,按下時間設(shè)置鍵進行時間設(shè)定,短按加10分鐘,長按減2分鐘,按下溫度設(shè)置鍵進行溫度設(shè)定,短按加10℃,長按減2℃。設(shè)定好自定義方案后短按狀態(tài)鍵電烤箱進入烹飪狀態(tài),液晶顯示屏上開始顯示時間倒計時,加熱狀態(tài)指示燈亮。設(shè)定加熱時間為28分鐘、最高溫度為66℃,并短按狀態(tài)鍵后電烤箱狀態(tài)如圖23所示。圖23電烤箱自定義設(shè)定實物圖在電烤箱工作時,再次短按狀態(tài)鍵使電烤箱進入暫停狀態(tài),加熱狀態(tài)指示燈滅,此時可再次設(shè)定加熱時間與最高溫度,并按下狀態(tài)鍵讓電烤箱繼續(xù)工作。當(dāng)圖13所設(shè)狀態(tài)工作兩分鐘后使其暫停,并再次調(diào)節(jié)加熱時間為36分鐘、最高溫度為88℃,再使其繼續(xù)工作后電烤箱狀態(tài)如圖24所示圖24電烤箱暫停后重新設(shè)定實物圖在電烤箱工作過程中,若電烤箱內(nèi)部實時溫度僅高于所設(shè)定溫度時,繼電器處于斷開狀態(tài),發(fā)熱管停止工作,加熱狀態(tài)指示燈滅,此時倒計時繼續(xù),電烤箱狀態(tài)如圖25所示。圖25電烤箱發(fā)熱管停止工作實物圖在長按下狀態(tài)鍵使電烤箱停止工作或待倒計時結(jié)束電烤箱自動工作結(jié)束后,加熱狀態(tài)指示燈滅,音效提示響七次后電烤箱進入初始狀態(tài),電烤箱狀態(tài)如圖26所示。圖26電烤箱停止?fàn)顟B(tài)實物圖5.2.2數(shù)據(jù)分析測試步驟:給電烤箱設(shè)定不同的加熱溫度及適當(dāng)?shù)募訜釙r間,在電烤箱工作結(jié)束后
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中秋節(jié)融情教育
- 文本效果教程03填充字效果
- 社會安全風(fēng)險的防范
- 2025年護士執(zhí)業(yè)資格考試題庫-急危重癥護理學(xué)護理安全試題
- 2025年成人高考《語文》語言表達與運用題型全解試卷
- 2025年統(tǒng)計學(xué)期末考試題庫:統(tǒng)計學(xué)術(shù)論文寫作研究方法選擇與運用試題
- 2025年西式面點師職業(yè)資格考試模擬試題全解集錦本集錦集
- 2025年成人高等學(xué)校招生考試《語文》作文立意與技巧模擬試卷
- 湖心亭看雪說課
- 公共建筑空調(diào)運行節(jié)能策略
- 環(huán)境規(guī)劃與管理全套課件完整版電子教案最新板
- 20以內(nèi)進位加法口算練習(xí)打印版
- 兒童幼兒園成長檔案相冊紀念冊PPT模版
- 戴氏無線電遙控飛機教程
- 課件:企業(yè)經(jīng)濟統(tǒng)計學(xué)
- PPT模板 上海外國語大學(xué)
- 共享充電寶項目服務(wù)合同
- 高中物理新課程標(biāo)準解讀魯世波
- 小學(xué)食堂滿意度問卷調(diào)查表
- 包裝SOP作業(yè)指導(dǎo)書
- IC厭氧反應(yīng)器計算方式
評論
0/150
提交評論