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

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

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

END IF;

在减法计数定时状态,如果输出DONE指示烹调信息完成,则下一状态为显示信息完成状态,显示烹调完成信息,否则,下一状态还是减法计数定时状态,COOK高电平有效,用程序代码实现如下:

WHEN TIMER=> IF DONE='1' THEN

NEXT_STATE<=DONE_MSG; LD_DONE<='1'; ELSE

NEXT_STATE<=TIMER; COOK<='1'; END IF;

生成的控制模块相应的电路符号,如图4.10所示:

KZQRESETSET_TSTARTTESTCLKDONECOOKLD_TESTLD_CLKLD_DONEALARMinst4 图4.10 KZQ电路符号

4.2.2. 数据装载

数据装载器ZZQ,它本质上就是一个三选一的数据选择器。根据其应完成的逻辑功能,本设计可采用一个进程来完成,但由于三个被选择的数据只有一个来自输入口,因此另两个被选择的数据则通过进程的说明部分定义两个常数来产生。

由于ZZQ装入测试的数据可以用8个8作为显示驱动信息数据,因此,将该用于显示的常数ALLS分解成8个“8”,其中4个“8”作为时间显示驱动信息,3个“8”作为温度显示驱动信息,1个“8”作为火力档位显示驱动信息,分别经过八个译码器译码后显示驱动信息编码。因此,该常数应是8个分段的4位BCD码,即“1000 1000 1000 1000”和“1000 1000 1000 1000” ,同理,DONE的BCD码分别为“1010 1011 1100 1101”以显示donE的常数DONE。

- 21 -

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

通过上述分析,该模块的主要程序可实现如下: PROCESS(DATA1,LD_TEST,LD_CLK,LD_DONE) IS CONSTANT 0):=\

CONSTANT 0):=\

VARIABLE TEMP:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN

LOAD<=LD_TEST OR LD_DONE OR LD_CLK; TEMP:=LD_TEST & LD_DONE & LD_CLK; CASE TEMP IS

WHEN \ WHEN \

--LOAD_TEST =1 --LOAD_DONE

DONE:STD_LOGIC_VECTOR(15

DOWNTO

ALLS:STD_LOGIC_VECTOR(15

DOWNTO

WHEN \--LOAD_CLK WHEN OTHERS=> NULL; END CASE; END PROCESS;

完成VHDL源程序的输入,编译、运行,生成相应的电路符号,如下图4.11所示:

ZZQDATA1[15..0]LD_TESTLD_CLKLD_DONEDATA2[15..0]LOADALARMinst5 图4.11 ZZQ电路符号

4.2.3. 烹饪计时

烹饪计时器JSQ为减计数计数器,其最大计时时间为59:59,因此可用两个减计数十进制计数器DCNT10和两个减计数六进制计数器DCNT6级联构成。其中,两个十进制的减法计数器用于分、秒的个位减法计数,两个六进制的减法计数器用于分、秒的十位减法计数。

由所学知识可知,计数的功能是累计输入脉冲的个数,实现计数功能的数字电

- 22 -

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

路即计数器,被计数的脉冲可以是周期性脉冲,也可以是非周期性脉冲,通常加在计数器的时钟脉冲输入端,作为计数器的时钟脉冲。

因此,根据减法计数器随计数脉冲的不断输入而递减计数,在具体设计该十进制减法计数器和六进制减法计数器过程中,可以当计数值减到0时,其计数器的数值自动转为定时设定时间,在十进制计数器的设计过程中,可表达为:

IF CQI=\ ELSE CQI<=CQI-'1'; 同理,六进制计数器的设计表达式为: IF CQI=\ ELSE CQI<=CQI-'1';

设计完两个计数器之后,在计时器电路模块,对该十进制和六进制计数器电路模块进行定义并元件例化,生成相应的元件符号。如图4.12和4.13所示:

图4.12 十进制计数器电路符号

图4.13 六进制计数器电路符号

然后将两计数器级联构成。由六进制计数器和十进制计数器级联构成的计时器内部组成原理图如图4.14所示:

- 23 -

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

图4.14 JSQ的内部组成原理图

这里,计时器相应的顶层文件电路符号如图4.15所示:

图4.15 JSQ电路符号

其中,输入信号LOAD为高电平时完成信号的载入;COOK信号为高电平时,在每个时钟周期的上升沿进行减法计数。输出信号DONE表示烹调时间到;ALARM表示音响效应;SEC_L[3..0]、SEC_H[3..0]、MIN_L[3..0]、MIN_H[3..0]显示所剩时间,和测试状态信息、烹调完毕状态信息等。

- 24 -