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

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

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

WHEN \ --o WHEN \ --n WHEN \ --E WHEN OTHERS=>DOUT7<=\ END CASE; END PROCESS;

生成电路符号,如图4.22所示:

YMQAIN4[3..0]DOUT7[6..0]inst4 图4.22 YMQ电路符号

- 33 -

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

5. 系统仿真

5.1. 输入模块仿真

完成该键盘输入模块VHDL源程序文件输入后,保存文件,对文件进行编译,生成该输入模块部分的原理框图,如图5.1所示:

keyboardCLKKEY_IN[3..0]INPUTVCCINPUTVCCCLKKEY_IN[3..0]OUT_CLKOUT_DATA[15..0]OUTPUTOUTPUTCLKDATA[15..0]inst 图5.1 输入模块原理框图

其中,CLK为系统时钟脉冲,KEY_IN[3..0]为按键输入,KEY_OUT[3..0]为按键输入译码后的输出值。

添加引脚,对该原理图进行编译、仿真。

5.2. 状态转换控制器仿真

完成状态转换控制器KZQ子模块VHDL源程序文件输入后,保存文件,对文件进行编译,然后生成其模块原理图,如图5.2所示:

KZQRESETSET_TSTARTTESTCLKDONEINPUTVCCINPUTVCCINPUTVCCINPUTVCCINPUTVCCINPUTVCCRESETSET_TSTARTTESTCLKDONECOOKLD_TESTLD_CLKLD_DONEALARMOUTPUTOUTPUTCOOKLD_TESTOUTPUTOUTPUTOUTPUTLD_CLKLD_DONEALARMinst 图 5.2 状态转换控制器KZQ原理图

其中,输入信号为RESET、SET_T、START、TEST、CLK、DONE,输出信号为COOK、LD_TEST、LD_CLK、LD_DONE、ALARM。

KZQ根据输入信号和自身当时所处的状态完成状态的转换和输出相应的控制信号。LD_CLK指示ZZQ装入设置的烹调时间数据;LD_DONE指示ZZQ装入烹调完毕的状态信息“donE”的显示驱动信息数据;LD_TEST指示ZZQ装入用于测试的数据“8888”以显示驱动信息数据;COOK指示烹调正在进行之中,并提示计时器进行减计

- 34 -

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

数;ALARM为外接音响效应扬声器。

添加引脚,对该原理图进行编译、仿真,其仿真结果,如图5.3所示:

图5.3 状态转换控制器KZQ仿真图

分析该仿真文件,可以看到,当测试信号TEST为高电平有效时,测试输出信号LD_TEST为高电平;否则,当时间设置信号SET_T为高电平时,对应的指示信号LD_CLK输出高电平;当烹饪开始信号START信号为高电平时,对应输出COOK为高电平;当复位信号RESET为高电平时,系统复位清零,恢复初始状态。仿真结果符合模块设计的要求。

5.3. 数据装载器仿真

完成数据装载器ZZQ子模块VHDL源程序文件输入后,保存文件,对文件进行编译,生成该数据装载器子模块原理图,如图5.4所示:

ZZQDATA1[15..0]LD_TESTINPUTVCCINPUTVCCINPUTVCCINPUTVCCDATA1[15..0]LD_TESTLD_CLKLD_DONEDATA2[15..0]LOADALARMOUTPUTOUTPUTOUTPUTDATA2[15..0]LOADLD_CLKLD_DONEALARMinst

图5.4 数据装载器ZZQ原理图

其中,输入信号LD_DONE为高电平时,输出烹调完毕的状态信息数据;LD_CLK为高电平时,输出设置的烹调时间数据;LD_TEST为高电平时,输出测试数据。输出信号LOAD用于指示电路正处于上述三路信号模式中的哪一种,同时提示JSQ将

- 35 -

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

处于数据装入状态。

添加引脚,对该原理图进行编译、仿真,其仿真结果如图5.5所示:

图5.5 数据装载器ZZQ仿真图

分析该模块仿真结果,由于数据装载器本质上即多了选择译码电路。可知,当LD_CLK、LD_TEST、LD_DONE三路信号中有且仅有一路信号电平有效时,选择器相应的值作为输出。

5.4. 烹饪计时器仿真

对烹饪计时器模块顶层文件进行编译,生成对应的元件,添加引脚,得到该烹饪计时器子模块原理图。如图5.6所示:

JSQCLKLOADCOOKDATA[15..0]INPUTVCCINPUTVCCINPUTVCCINPUTVCCCLKLOADCOOKDATA5[15..0]SEC_L[3..0]SEC_H[3..0]MIN_L[3..0]MIN_H[3..0]DONEALARMOUTPUTOUTPUTSEC_L[3..0]SEC_H[3..0]OUTPUTOUTPUTOUTPUTOUTPUTMIN_L[3..0]MIN_H[3..0]DONEALARMinst

图5.6 烹饪计时器JSQ原理图

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

由于烹调计时器是由两个减计数十进制计数器DCNT10和两个减计数六进制计数器DCNT6级联构成,因此,先完成两个减计数十进制和六进制计数器的VHDL源程序文件输入,保存文件并对文件进行编译、仿真。以下分别是两减计数器的功能仿

- 36 -