基于FPGA的多功能电烤箱设计_第1页
基于FPGA的多功能电烤箱设计_第2页
基于FPGA的多功能电烤箱设计_第3页
基于FPGA的多功能电烤箱设计_第4页
基于FPGA的多功能电烤箱设计_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录313731引言 。在多功能电烤箱的设计中采用了自上而下的设计方法,首先进行系统设计,划分各个功能模块,并对每一个模块进行了详细的功能描述,使用VerilogHDL语言对每一个模块进行了编程REF_Ref25073\r\h[5],并且使用QuartusⅡ进行仿真并获得相应的仿真结果。最后将编程的网表文件下载到FPGA芯片EP4CE6F17C8N中REF_Ref25677\r\h[6]。该电烤箱控制部分以FPGA芯片为核心,实现时间设置、温度设定、译码器译码等,在硬件组成上,涉及到数码管显示、指示灯提示、音效提醒、液晶屏显示等。2.2具体设计方案本论文设计的多功能电烤箱不仅实现工作状态指示灯显示,倒计时时间数字的显示,电烤箱内部实时温度的显示,实时按键调节时间、温度设置,还具有工作结束音效指示功能。通过调研现有电烤箱的功能和设计,了解了其工作原理和控制方法。多功能电烤箱需要首先具备时间控制功能,给电烤箱预设需要加热的时间,在此基础上设定最高温度值,通过将温度传感器实时监测的电烤箱内部温度值与所设定的最高温度值相比较,进而判断加热管是否工作。当电烤箱内部温度值达到了预设温度值及其阈值范围内,加热管停止工作,倒计时继续,直至倒计时结束电烤箱停止工作。利用VerilogHDL对电烤箱的功能进行了合理的设计,保证了时间与温度设定的准确以及继电器工作状态的切换的时刻。根据设计要求,最后绘制了如图1所示的系统框图。图1系统框图2.3电烤箱的工作流程电烤箱的工作流程为:上电后,系统首先处于一种初始状态。此时,LCD1602液晶显示屏上第一行会显示“Time:0:00:00F”,第二行会显示“Temp:00.00”。八位数码管上显示电烤箱内部实时温度,指示灯未亮。电烤箱工作时,首先通过键盘输入数据,比如,按解冻、低档、中档、高档键选择系统预置方案后直接开始烹饪。或者按时间设置键设置时间,按温度设定键设置温度来进行自定义方案设置,设置结束以后,表示数据装载完成,按开始键后系统进入烹调状态,同时指示灯亮,LCD1602显示屏上时间开始倒计时。在电烤箱进入烹调状态后,按一次开始键暂停烹饪,此时可以修改设定好的时间与温度,再按一次开始键继续烹饪,按结束键停止烹饪。烹饪结束后,电烤箱会发出音效提示,指示灯灭。音效提示结束后,电烤箱自动进入初始状态。根据电烤箱工作流程,绘制主流程图,如图2所示:图2电烤箱工作流程图3主要功能模块设计多功能电烤箱所要实现的功能分别在时钟分频模块、按键消抖模块、状态设置模块、温度传感器驱动模块、继电器控制模块、液晶屏驱动模块、数码管译码模块这七个模块中分别进行设计。3.1时钟分频模块设计在电烤箱控制系统中,大多数的情况是需要系统根据设定的程序来自动控制加热的时间与温度。因此,为了加热时长与温度上限出现错误导致食材的烹饪失败,所设计的控制系统需要一个稳定的时钟来支持其正常的工作。本模块主要是把50MHz的信号分频为1MHz的信号。时钟分频模块的电路图如图3所示。图3时钟分频电路模块图由该硬件模块图可知clk_in为输入信号,由外部信号提供50MHz的时钟信号。该模块将外部的时钟信号进行分频处理,获得clk_1MHz频率为1MHz的输出信号。该时钟脉冲发生电路模块主要是负责产生稳定的时钟信号,为其他模块提供同步的工作时钟信号。实现该硬件模块功能的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按键消抖模块设计由于最高加热温度与加热所需时间的设置均是通过按键的累加来完成,因此为了避免由于按键的抖动所导致不必要的多次识别而触发的温度及时间设置不准确的问题出现,需要通过按键消抖电路,来提高电烤箱的稳定性、可靠性和用户体验。按键消抖模块如图4:图4按键消抖模块图由该硬件模块图可知clk_1MHz为输入信号,由时钟分频模块提供50MHz的时钟信号RST_N为复位信号,KEY[4..0]为五个按键输入。led1为按键作用显示灯输出,用来指示按键作用多少次。KEY_1[1..0]到KEY_5[1..0]为消抖后的按键输出,并分为长按与短按两种不同功能。实现该硬件模块功能的部分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; //设置定时器的时间为20ms,计算方法为(20*10^6)ns/(1/50)ns1MHz为开发板晶振parameterSET_TIME_20MS=15'd20_000;parameterSET_TIME_1S=21'd300_000;//计时按压按键时间always@(posedgeclk_1MHz)begin if(key_reg>key_reg_n) //判断复位 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为常态无输出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状态设置模块设计电烤箱的自定义方案需要设置一个模块来设定加热的最高温度以及加热所需的时间,并且可以设定倒计时,另一个预置方案需要设定四个不同档位来烹饪食物。状态设置模块图如图5:图5状态设置模块图由该硬件模块图可知clk_1MHz为输入的时钟信号,RST_N为复位信号,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]为输出状态的3位输出信号。led_state1到led_state4分别为解冻、低档、中档、高度四种档位输出信号。实现该硬件模块功能的部分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;//时间设置点按1秒以内:时间+10min,长按>1秒时间-2minoutputstate_out;//状态000初始001启动011运行010暂停111停止//初始状态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)//设置时间、温度、档位 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//温度暂停时的运行状态110 begin if(temp_in<(temp_n-300)) state_n=3'b011;//进入运行状态110 else state_n=state_n; end begin if(time_n==0) state_n=3'b111; else state_n=state_n; end //停止状态111-蜂鸣器报警3'b111:begin if(cnt_a>=7*SET_TIME_1S) begin state_n=3'b000;//延迟8s后进入初始状态 cnt_a=0; end else begin state_n=state_n; cnt_a=cnt_a+1; end enddefault:state_n=3'b000; endcase//数据处理assignhour_o=time_n/14'd3600;assigntemp_h=temp_n/14'd10000;endmodule 3.4温度传感器驱动模块设计可编程逻辑器件FPGA可以对给定的时钟频率根据DS18B20的读写时序的时隙要求灵活地分频到与DS18B20的读写时序相适应的最佳频率,可以在最短的时间内方便地对DS18B20进行读写控制REF_Ref26680\r\h[7]。温度传感器在系统时钟驱动下,通过数据线DQ与FPGA进行信息传输,从而测出电烤箱的内部温度。温度传感器驱动模块如图6所示:图6温度传感器驱动模块图由该硬件模块图可知clk为输入时钟信号,rst_n为复位信号。sign为符号输出信号,temp_data[19..0]为电烤箱内部温度值的20位输出信号,dq为双向信号。实现该硬件模块功能的VerilogHDL程序如下:moduledri_ds18b20( input clk , input rst_n , inout dq , outputreg[19:0]temp_data ,outputregsign ); //--12位温度数据处理always@(posedgeclk_usornegedgerst_n)begin if(!rst_n)begin //初始状态 temp_data<=20'd0; sign<=1'b0; end elsebegin if(!data[15])begin //最高位为0则温度为正 sign<=1'b0; //标志位为正 temp_data<=data[10:0]*11'd625/7'd100;//12位温度数据处理 end endendendmodule3.5液晶屏驱动模块设计液晶屏驱动模块是将从状态设置模块输出的时间与温度数值显现出来。FPGA通过驱动液晶屏显示可以更便捷地使用电烤箱。在电烤箱使用过程中,如果不知道加热倒计时的显示时间,使用者需要一直观察电烤箱的工作状态或者错失最佳用餐时间。如果能在电烤箱上添加液晶屏显示所剩下的加热时间来对使用者加以提示,那么该电烤箱会更具有便捷性。并且当使用者为所要烹调的食材设定烹调时间与温度时,如果不小心设置错了时间或温度,食材将会烹调失败。如果能将使用者所设置的时间与温度显示出来,那么电烤箱会更具有准确性。因此,液晶屏最主要的功能就是根据加热倒计时数据、时间与温度设定数据以及所选档位,输出信号控制液晶屏显示出对应数值(即倒计时的分钟值、温度数值以及档位)。液晶屏驱动模块如图7:图7液晶屏驱动模块图由该硬件模块图可知Clock为输入50MHz信号,Reset_n为复位信号,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_t[3..0]、temp_o[3..0]分别为所设定最高温度值的百位、十位、个位的四位输入,led_state1到led_state4分别为解冻、低档、中档、高度四种档位输入信号。LCD_DATA[7..0]为八位输出,LCD_EN、LCD_RW、LCD_RS为单个信号输出。实现该硬件模块功能的部分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周期开始时,执行循环前置操作后进入循环case(n_state)IDLE:LCD_DATA<=8'hxx;SET_FUNCTION:LCD_DATA<=8'h38;//2*165*88位数据DISP_OFF:LCD_DATA<=8'h08;//8'b0000_1000,显示开关设置:D=0(DB2,显示关),C=0(DB1,光标不显示),D=0(DB0,光标不闪烁)DISP_CLEAR:LCD_DATA<=8'h01;//8'b0000_0001,清屏ENTRY_MODE:LCD_DATA<=8'h06;//8'b0000_0110,进入模式设置:I/D=1(DB1,写入新数据光标右移),S=0(DB0,显示不移动)DISP_ON:LCD_DATA<=8'h0c;//8'b0000_1100,显示开关设置:D=1(DB2,显示开),C=0(DB1,光标不显示),D=0(DB0,光标不闪烁)ROW1_ADDR:LCD_DATA<=8'h80;//8'b1000_0000,设置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,设置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数码管译码模块设计在电烤箱加热过程中,为了避免使用者因不知电烤箱内部温度而直接触碰所导致的安全隐患问题,再设计一个数码管显示模块来显示电烤箱内部的实时温度,来提高电烤箱的安全性。数码管译码模块如图8:图8数码管译码模块图由该硬件模块图可知CLK_50M为输入信号,RST_N为复位信号,temp_data[19..0]为温度传感器所检测的实时温度作为输入,sign为符号位。SEG_DATA[7..0]为数码管段选信号,SEG_EN[5..0]为数码管位选信号。实现该硬件模块功能的部分VerilogHDL程序如下:moduledkx_smg( CLK_50M,RST_N,temp_date,sign, SEG_DATA,SEG_EN);//组合电路,实现数码管的数字显示,将时钟中的数据转换成显示数据always@(*)begin case(led_cnt) 3:led_data=temp_date_one; //个位,带小数点 endcaseend//组合电路,控制数码管小数点的亮灭always@(*)begin case(led_cnt) 0:SEG_DATA[7]=1'b1; //点亮数码管SEG1的小数点endmodule3.7继电器控制模块设计基于FPGA设计的电烤箱可以通过程序设定,在电烤箱内部达到所设定的最高温度值时,向继电器发送一个高电平,使发热管停止工作。而当温度过低时,向继电器发送一个低电平,使发热管重新工作。从而提高了电烤箱的智能性,提升用户体验。继电器控制电路图如图9:图9继电器控制模块图由该硬件模块图可知clk_1MHz为输入的时钟信号,RST_N为复位信号。state_out[2..0]为状态的输入信号。work_j为1位输出信号,用来控制继电器工作,beep为工作完成的音效提示信号,led1为工作完成的指示灯。实现该硬件模块功能的部分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顶层模块连接顶层系统的设计就是把时钟分频模块、按键消抖模块、状态设置模块、温度传感器驱动模块、继电器控制模块、液晶屏驱动模块、数码管译码模块这七个模块连接起来构成一个完整电路。在对上述各模块进行了模拟之后,再编写一个顶层文件,将各单元模块进行链接并进行统一调度,最终得到了一个顶层文件的工作原理图,如图10:图10顶层文件的原理图由图10可以看出,电烤箱分为七个模块,分别为时钟分频模块、按键消抖模块、状态设置模块、温度传感器驱动模块、继电器控制模块、液晶屏驱动模块、数码管译码模块。其中按键消抖模块的led2连接一个led灯来用作按键按下的指示灯。温度传感器驱动模块的双向输出dq连接温度传感器DS18B20用来驱动温度传感器工作。液晶屏驱动模块的输出LCD_EN、LCD_RW、LCD_RS、LCD_DATA[7..0]连接LCD1602液晶屏用来显示加热时间的倒计时、设定的最高温度值以及所选择的档位。数码管译码模块的输出SEG_DATA[7..0]、SEG_EN[5..0]连接八位数码管用来显示温度传感器DS18B20所测得的电烤箱内部实时温度。继电器控制模块的输出led1连接1个led灯来用作电烤箱工作状态的指示灯,输出beep连接蜂鸣器来用作电烤箱工作结束的音效提示,输出work_j连接继电器来用作控制发热管工作。4电烤箱外围电路设计4.1数码管显示电路该显示电路主要是利用共阳数码管来实现的,LED共阳数码管是一种电子数字显示器件,在数字电路、计算机组成原理、嵌入式系统等领域广泛应用REF_Ref132232912\r\h[8]。电路采用的六位LED共阳数码管采用LED荧光数字管作为数字显示部件,具有亮度高、反应速度快、可重复使用等优点,能够在各种光照条件下清晰显示数字。同时能够显示0-999999的数字,显示精度高,显示内容可以根据需要进行变化。其驱动器件相对较简单,能够方便地与许多数字电路、控制电路、嵌入式系统等相连接。整个显示电路由六个两位数码管加三极管和电阻组成。三极管的传导特性可用于引导数码管的开启和关闭,显示电路需要驱动多个数码管,因此使用三极管U1、U2、U3、U4、U5、U6对输入信号进行放大,以确保足够的电流和电压达到数码管的驱动要求。数码管阴极引脚连接电阻1KΩ来限制电流,以避免电流过大,数码管被烧毁。由FPGA产生位选择和段选择信号,然后逐个扫描并显示六个数码管。数码管显示电路图如图11所示。六位数码管从左到右依次显示的为所测电烤箱内部温度的符号位、百位、十位、个位、小数点、十分位、百分位,SM_SEG[7..0]为段选信号,SM_BIT[7..0]为位选信号。图11数码管显示电路图4.2工作状态指示电路电烤箱工作状态指示电路主要由发光二极管、蜂鸣器组成的。蜂鸣器可实现报警电路,电路简单,稳定有效,成本低,可很直接地反映出结果REF_Ref9835\r\h[9]。发光二极管(LED)是一种被广泛应用于照明与显示的发光器件。它具有低碳环保、工作寿命长、响应速度快等优点REF_Ref10635\r\h[10]。工作状态指示电路如图所示:图12工作状态指示电路图4.3液晶屏显示电路目前,工业生产过程中的一些参数信息都是通过数码管显示的,这样的显示系统并不能全面地提供所需信息,而采用LCD液晶进行数据的显示,不但能给出参数的数值,还能显示参数的具体内容,从而提高了参数的可读性。本文使用的液晶器件是LCD1602,以往对其进行的显示控制都是静态的,无法对参数进行实时动态的显示,而且其控制器大多采用的是单片机,单片机使用C语言或汇编语言进行编程,这种程序是顺序执行的,无法实现多任务的同时执行。FPGA器件由于其纯硬件的电路设计、可并行的执行过程,使得其显示控制的速度比单片机更快,实时动态显示的效果更好,而且设计灵活,易于修改。因此,该电烤箱的显示提出了一种采用FPGA对LCD进行动态显示控制的方法REF_Ref11429\r\h[11]。整个显示电路由一个LCD液晶显示屏、电阻及稳压器组成,如图13所示。图13液晶屏显示电路图4.4发热管驱动电路电烤箱是一种利用电流通过电热元件产生热量,借助辐射和对流的传递方式REF_Ref20286\r\h[12],电烤箱的烹饪性能是影响其性能品质的重要指标。在食物的烘焙过程中,不同的发热管温度对食材烹饪效果有直接影响REF_Ref19319\r\h[13]。本设计采用的发热管工作电压为110V,两根发热管串联进电路,采用的继电器工作电压为5V,低电平触发,发热管驱动电路如图14所示:图14发热管驱动电路图4.5温度传感器电路由于DS18B20的优越性,越来越多的测温范围为-55~+125℃的温度测量系统采用DS18B20测量温度。目前,大多数多路温度测量系统采用单片机作为温度测量系统的控制器,并且单片机作为下位机来保存温度测量值然后送给上位机处理。DS18B20的读写时序对单片机控制的读写时序的高低电平的时隙要求比较严格,并且单片机的时钟频率不能根据编程的需要灵活的改变,给程序设计带来了麻烦;另外,采用先保存温度测量值然后送给上位机处理,会加重成本,而且很不方便。可编程逻辑器件FPGA可以对给定的时钟频率根据DS18B20的读写时序的时隙要求灵活地分频到与DS18B20的读写时序相适应的最佳频率,可以在最短的时间内方便地对DS18B20进行读写控制REF_Ref17041\r\h[7]。整个显示电路由一个DS18B20加两个三端器件、发光二极管和电阻组成。阻值10K的上拉电阻R1将DQ信号钳位在高电平,同时起限流作用。单总线DQ只需要一根通信线即可实现数据的双向传输,当接上电源时温度传感器电源指示灯亮。图15温度传感器电路图5实物测试与仿真5.1主要模块仿真5.1.1时钟分频模块仿真模块仿真使用了QuartusII17.1进行仿真。为方便观看波形,时钟信号的周期并未严格按实际要求设置,仿真前先将程序中的数值改小,否则仿真会因为仿真时间过长而失败。clk_in为输入信号。由仿真图15可以看出,系统实现了时钟分频,设置clk_in时钟周期为50ns,仿真完成后输出信号clk1MHZ为1ns,符合系统需要的时钟分频要求。时钟分频模块仿真图如图15:图15时钟分频模块仿真图5.1.2状态设置模块仿真clk_1HZ为输入信号,给其设置时钟信号,RST_N为复位信号,低电平复位信号有效。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]为输出信号,用来控制液晶屏显示的倒计时与设定的温度。从图中可以看出,在clk_1HZ为第二个上升沿时,KEY_1被短按下,10状态有效,时间分钟十位由0000变为0001;在clk_1HZ为第三个上升沿时,KEY_2被短按下,10状态有效,温度十位由0000变为0001;在clk_1HZ为第七个上升沿时,RST_N被按下,低电平有效,所有信号被复位,回到初始状态;而后对KEY_1进行三次短按,一次长按,此时时间显示28min,正确;对KEY_2进行三次短按,一次长按,此时温度显示2700,正确。短按KEY_3,开始工作,进入倒计时状态,再次短按KEY_3,暂停工作,回到初始状态,再次短按,继续工作,进入倒计时状态,最后长按,进入结束状态。同时在倒计时状态下,当温度传感器温度大于所设定温度最高值+300时,温度值保持不变,即加热进入暂停状态。状态设置模块仿真图如图16:图16状态设置模块仿真图5.1.3继电器控制模块仿真clk_1HZ为输入时钟信号,RST_N为复位信号。state_out[3..0]为状态设置模块中电烤箱不同工作状态对应模式的信号输出连接到继电器控制模块中作为继电器控制的输入信号。beep为工作完成的音效提示信号,led1为工作完成的指示灯提示信号,work_j为控制继电器工作状态的信号,高电平有效。继电器控制模块仿真图如图17:图17继电器控制模块仿真图由仿真图可知,当clk_1HZ为上升沿时,利用if语句对state_out[3..0]的值进行判断选择,当state_out=011时led1=0,work_j=0,beep=0;即指示灯亮,继电器工作,蜂鸣器响。5.2实验结果及分析5.2.1实验结果将各个元器件与开发板上对应I/O口连接好并测试电路正常后,通过下载器往芯片中烧入程序后即可正常运行。为了能够实现断电保存,需要将下载生成的sof文件转化成jic文件,并通过JTAG接口下载到存储芯片EPCS16中。在FPGA器件启动时,EPCS16中的数据将被加载进入FPGA中,实现FPGA的初始化。程序可以正常开始运行时可以得到如图18所示的状态。此时电烤箱处于初始状态,即六位数码管显示电烤箱内部温度值,LCD1602液晶屏第一行显示“Time:0:00:00F”,第二行显示“Temp:00.00”,LED灯全灭。图18电烤箱初始状态实物图当选择电烤箱预置方案时,短按下档位按键1选中解冻档位,此时六位数码管显示电烤箱内部温度值,LCD1602液晶屏显示30分钟倒计时,设定的最高温度值30℃,选择的档位为F1,解冻状态指示灯亮,电烤箱加热状态指示灯亮,电烤箱状态如图19所示。图19电烤箱解冻功能实物图长按下档位按键1选中低档档位,此时六位数码管显示电烤箱内部温度值,LCD1602液晶屏显示1小时倒计时,设定的最高温度值为60℃,选择的档位为F2,低档状态指示灯亮,电烤箱加热状态指示灯亮,电烤箱状态如图20所示。图20电烤箱低档功能实物图短按下档位按键2选中中档档位,此时六位数码管显示电烤箱内部温度值,LCD1602液晶屏显示1小时倒计时,设定的最高温度值90℃,选择的档位为F3,中档状态指示灯亮,电烤箱加热状态指示灯亮,电烤箱状态如图21所示。图21电烤箱中档功能实物图长按下档位按键2选中高档档位,此时六位数码管显示电烤箱内部温度值,LCD1602液晶屏显示1小时30分钟倒计时,设定的最高温度值120℃,选择的档位为F2,高档状态指示灯亮,电烤箱加热状态指示灯亮,电烤箱状态如图22所示。图22电烤箱高档功能实物图当选择电烤箱自定义方案时,按下时间设置键进行时间设定,短按加10分钟,长按减2分钟,按下温度设置键进行温度设定,短按加10℃,长按减2℃。设定好自定义方案后短按状态键电烤箱进入烹饪状态,液晶显示屏上开始显示时间倒计时,加热状态指示灯亮。设定加热时间为28分钟、最高温度为66℃,并短按状态键后电烤箱状态如图23所示。图23电烤箱自定义设定实物图在电烤箱工作时,再次短按状态键使电烤箱进入暂停状态,加热状态指示灯灭,此时可再次设定加热时间与最高温度,并按下状态键让电烤箱继续工作。当图13所设状态工作两分钟后使其暂停,并再次调节加热时间为36分钟、最高温度为88℃,再使其继续工作后电烤箱状态如图24所示图24电烤箱暂停后重新设定实物图在电烤箱工作过程中,若电烤箱内部实时温度仅高于所设定温度时,继电器处于断开状态,发热管停止工作,加热状态指示灯灭,此时倒计时继续,电烤箱状态如图25所示。图25电烤箱发热管停止工作实物图在长按下状态键使电烤箱停止工作或待倒计时结束电烤箱自动工作结束后,加热状态指示灯灭,音效提示响七次后电烤箱进入初始状态,电烤箱状态如图26所示。图26电烤箱停止状态实物图5.2.2数据分析测试步骤:给电烤箱设定不同的加热温度及适当的加热时间,在电烤箱工作结束后

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论