基于FPGA的微波炉控制器设计 - 毕业设计论文 联系客服

发布时间 : 星期六 文章基于FPGA的微波炉控制器设计 - 毕业设计论文更新完毕开始阅读18940167f5335a8102d220b9

基于FPGA 的微波炉控制器设计

4.2.4. 温度控制

温度控制子模块,主要涉及到温度的测定和控制。本设计采用模拟温度传感器AD590和模数转换器ADC0809实现对温度的检测。

AD590用于模拟微波炉内食品的温度,AD590温度传感器的感测能力是温度每升高1K就增加1μA的电量,该电流流入10kΩ电阻后,将产生10mV(0.01V)的电压。而0℃(等于273K)时,输出电流273 μA,经I/V转换后,将产生2.73 V的电压。如果测到的电压为x V时,则可由( x-2.73)÷0.01得到要测量的温度。温度传感器AD590的输出经过放大器后,将电压引入ADC0809的Vin (+) 管脚,由ADC0809进行模数转换。

ADC0809是8位模数转换器,测量精度为0.02 V,当ADC0809的转换值为x 时,所测温度为:T=(x ×0.02-2.73)÷0.01=x ×2-273。ADC0809将当前温度转换成数字量后送入FPGA控制芯片,控制芯片对由键盘输入的加热最高温度给定值进行比较,即通过直接比较设定值和测得值的BCD编码,当炉内温度高于给定温度时,立即停止加热,并输出控制信号提示报警灯亮,从而实现对温度的控制。

具体设计过程中,涉及到数据的采集、时钟定时和温度控制。数据采集主要完成温度的处理,时钟定时主要对温度起定时作用,温度控制部分的输入信号来自数据处理和时钟定时后的输出,当实际输出温度小于预输出温度值时,输出信号控制微波炉继续加热。

以下是该设计的流程图,如图4.16所示:

- 25 -

西南石油大学本科毕业设计(论文)

图4.16 温度控制部分流程图

数据采集主要完成温度的处理,实现T=(x×0.02-2.73)÷0.01的运算,数据调整为对应的数字信号,在读取ADC0809的数据后,先将转换数据左移1位(相当于乘以2),然后减去273,当温度达到某一数值时,使能信号和清零信号为?1?,此时时钟开始计时。

根据上述分析,编写该温度控制器的VHDL程序,其主要程序如下: --数据采集部分

PROCESS (CLK,DATA) BEGIN

IF (CLK'EVENT AND CLK=1) THEN

IF (tout>=(cout-6) AND tout<=(cout+5)) THEN --设定值上下5度的范围内开始计时

enout<=1; ELSE enout<=0; END IF;

- 26 -

基于FPGA 的微波炉控制器设计

-- 时钟定时部分

PROCESS (CLK ,clearing , enin )

VARIABLE s , m : INTEGER RANGE 0 TO 60; VARIABLE e : INTEGER RANGE 0 TO 24; VARIABLE d : BIT; BEGIN

d:=clearing XOR enin; IF (d=0) THEN s:=0; m:=0' e:=0;

ELSIF (CLK'EVENT AND CLK=1) THEN s:=s+1; IF (s=10) THEN s:=0;m:=m+1; IF (m=10) THEN m:=0;e:=e+1; IF (e=24) THEN e:=0; … hourout <= e; --控制部分 BEGIN

IF (tin<(cin+5)) THEN --cin是参数设定值 temp<=1; ELSE temp<=0; END IF;

IF (CLK'EVENT AND CLK=1) THEN control_bcd<=temp; END IF;

- 27 -

西南石油大学本科毕业设计(论文)

IF (hour>hourin) THEN ALARM<=1; ELSE ALARM<=0; END IF;

将各部分进行元件例化,生成相应的电路符号,连接成该温度控制器的内部原理图,如图4.17所示:

clockCLKeninclearininst1ddataCLKINPUTVCCINPUTVCChourout[3..0]ccontrolCLKDATA[7..0]enoutclearouttout[7..0]cout[7..0]data[7..0]CLKtin[7..0]cin[7..0]hourin[3..0]COOKLOADRESETinst7control_bcd[15..0]ALARMOUTPUTOUTPUTcontrol_bcd[15..0]ALARMinstCOOKINPUTVCCINPUTVCCINPUTVCCLOADRESET 图4.17 温度控制器内部组成原理图

其中,输入信号CLK为系统时钟脉冲,DATA为输入数据,输出信号control_bcd为输出控制信号,外接译码电路,ALARM为蜂鸣提示。

4.2.5. 控制模块的实现

综合上述分析,对该控制模块进行完整设计,以下是该模块顶层文件关键代码。 U1:KZQ PORT MAP

(RESET,SET_T,START,TEST,CLK,DONE,COOK_TMP,TEST_TMP,CLK_TMP,DONE_TMP,ALARM); U2:ZZQ PORT MAP

(DATA1,TEST_TMP,CLK_TMP,DONE_TMP,DATA_TMP,LOAD_TMP,ALARM); U3:KWQ PORT MAP

(CLK,DATA_TMP,COOK_TMP,LOAD_TMP,RESET_TMP,control,ALARM); U4:JSQ PORT MAP

(COOK_TMP,LOAD_TMP,CLK,DATA_TMP,SEC_L,SEC_H,MIN_L,MIN_H,DONE,ALARM);

- 28 -