微波炉控制器的设计与分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

FPGA系统设计

组成员及负责模块:

冀鹏超状态控制器KZQ设计

陆威数据装载器ZZQ设计

韩华凯烹饪计时器JSQ设计

凌智烹饪计时器JSQ设计

白浚材显示译码器YMQ47设计

孙兵剑微波炉控制器WBLKZQ设计

微波炉控制器的设计与分析

一.系统设计要求

现在设计一个微波炉控制器WBLKZQ,其外部接口如图1所示。通过该控制器再配以4个七段数码二极管完成微波炉的定时及信息显示。

图1 微波炉控制器外部接口符号图

图1中的各信号的功能及要求如下:

CLK是秒表时钟脉冲输入,它接收每秒一个时钟脉冲的节拍信号。RESET为复位信号,高电平有效,用于芯片的复位功能。TEST为测试信号,高电平有效。用于测试4哥七段数码二极管工作是否正常。SET_TS是烹调时间设置控制信号,高电平有效。DATA0的一个人16位的总线输入信号,输入所设置的时间长短,它由高到低分为4组,每一组是BCD码输入,分别表示分、秒上十位个位的数字,如12分59秒。START是烹调开始的控制信号,高电平有效。

COOK是烹调进行信号,它外接用于控制烹调的继电器开关,高电平时表明烹调已经开始或正在进行,低电平表示烹调结束或没有进行。MIN_H(十分位)、MIN_L(分位)、SEC_H(十秒位)和SEC_L(秒位)是4组七位总线信号,它们分别接4个七段数码管,动态地显示完成烹调所剩的时间以及测试状态信息“8888”、烹调完毕的状态信息“donE”。

该微波炉控制器WBLKZQ的具体功能要求如下:上电后系统首先处于一种复位状态。在工作时首先按SEC_L键设置烹调时间,此时系统读入DATA0的数据作为烹调所需时间,然后系统自动回到复位状态,同时4个七段数码管显示时间信息(假设系统最长的烹调时间为59分59秒)。再按START键后系统进入烹调状态,COOK信号开始为高电平,此时4个七段数码管每隔一秒钟变化一次,用以刷新还剩多少时间结束烹调。烹调结束后,COOK信号变为低电平,同时4个七段数码管组合在一起显示“donE”的信息,然后系统回到复位状态。系统可以通过按RESET键随时回到复位状态。在复位状态下,按TEST键在4个数码管上会显示“8888”的信息,它可以测试4个七段数码管工作是否正常。

二.系统设计要

1.微波炉控制器的总体设计方案

根据该微波炉控制器的功能设计要求,本系统可由以下4个模块组成:①状态控制器KZQ;②数据装载器ZZQ;③烹调计时器JSQ;④显示译码器YMQ47。其内部组成原理如图2所示。

图2 微波炉控制器WBLKZQ的内部组成原理图

(1)状态控制器KZQ的功能是控制微波炉工作过程中的状态转换,并发出有关控制信息:输入信号为CLK、TEST、START、SET_T、RESET和DONE,输出信号为LD_DONE、LD_CLK、LD_8888和COOK信号。KZQ根据输入信号和自身当时所处的状态完成状态的转换和输出相应的控制信号:LD_DONE指示ZZQ装入烹调完毕的状态信息“donE”的显示驱动信息数据;LD_CLK 指示ZZQ装入设置的烹饪时间数据;LD_8888指示ZZQ装入用于测试的数据“8888”以显示驱动信息数据;COOK指示烹饪正在进行之中,并提示计时器进行减计数。

(2)数据装载器ZZQ的功能是根据KZQ发出的控制信号选择定时时间、测试数据或烹调完成信息的装入。当LD_DONE为高电平时,输出烹调完毕的状态信息数据;LD_CLK为高电平时,输出设置的烹饪时间数据;LD_8888为高电平时,输出测试数据。输出信号LOAD用于提示JSQ将处于数据装入状态。

(3)计时器JSQ的功能是负责烹调过程中的时间递减计数,并提供烹调完成时的状态信号提供KZQ产生烹调完成信号。LOAD为高电平时完成装入功能,COOK为高电平时执行逆计数功能。输入DONE指示烹调完成。MIN_H、MIN_L、SEC_H、和SEC_L为完成烹调所剩的时间以

及测试状态信息“8888”、烹调完毕的状态信息“donE”的BCD码信息。

(4)显示译码器YMQ47的功能就是负责将各种显示信息的BCD转换成七段数码管显示的驱动信息编码。需要译码的信息有:数字0~9,字母d、o、n、E。

2.状态控制器KZQ的设计

状态控制器KZQ的功能是控制微波炉工作过程中的状态转换,并发出有关控制信息,因此我们可用一个状态机来实现它。经过对微波炉工作过程中的状态转换条件及输出信号进行分析,我们可得到其状态转换图如图3所示,其输入、输出端口如图4所示。

图3 KZQ的输入输出端口图

图4 KZQ的输入输出端口图

3.数据装载器ZZQ的设计

ZZQ的输入、输出端口如5所示,根据其应完成的逻辑功能,它本质上就是一个三选一数据选择器。本设计采用一个进程来完成,但由于三个被选择的数据只有一个来自输入端口,因此另两个被选择的数据则通过在进程的说明部分定义两个常数来产生。由于用于显示“8888”的常数ALL-8需分解成4个8,分别经过四个4—7译码器译码后才

是真正的显示驱动信息编码,因此该常数应是4个分段的是4位BCD码,故应设为“11000”。同理,显示“donE”的常数DONE可设为“11101”,其中d、o、n、E的BCD 码分别为:“1010”、“1011”、“1100”、“1101”。该模块的主要程序如下:

图5 ZZQ的输入输出端口

PROCESS(DATA1,LD_8888.LD_CLK.LD_DONE)IS

CONSTANT ALL_8:STD_LOGIC_VECTOR(15 DOWNTO 0):="11000";

CONSTANT DONE:STD_LOGIC_VECTOR(15 DOWNTO 0):="11101";

V ARIABLE TEMP:STD_LOGIC_VECTOR(2 DOWNTO 0);

BEGIN

LOAD<=LD_8888 OR LD_DONE OR LD_CLK;

TEMP:=LD_8888 & LD_DONE & LD_CLK;

CASE TEMP IS

WHEN "100"=>DATA2<=ALL_8; --LOAD_8888=1

WHEN "010"=>DATA2<=DONE; --LOAD_DONE=1

WHEN "001"=>DATA2<=DATA1; --LOAD_CLK=1

WHEN OTHERS=>NULL;

END CASE;

END PROCESS;

4.烹调计时器JSQ的设计

烹调计时器JSQ为减数计时器,其最大计时时间为59:59。因此我们可用两个减计数十进制计数器DCNT10和两个减计数六进制计数器DCNT6级联构成。JSQ的内部组成原理如图6所示。

相关文档
最新文档