《第 微波炉控制器的设计与分析.pptx》由会员分享,可在线阅读,更多相关《第 微波炉控制器的设计与分析.pptx(55页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、图5.1 微波炉控制器外部接口符号图 第1页/共55页 图5.1中的各信号的功能及要求如下:CLK是秒时钟脉冲输入,它接收每秒一个时钟脉冲的节拍信号。RESET为复位信号,高电平有效,用于芯片的复位功能。TEST为测试信号,高电平有效,用于测试4个七段数码二极管工作是否正常。第2页/共55页5.2 系统设计方案 5.2.1 微波炉控制器的总体设计方案 根据该微波炉控制器的功能设计要求,本系统可由以下4个模块组成:状态控制器KZQ;数据装载器ZZQ;烹调计时器JSQ;显示译码器YMQ47。其内部组成原理图如图5.2所示。第3页/共55页图5.2 微波炉控制器WBLKZQ的内部组成原理图 第4页/
2、共55页 (1)状态控制器KZQ的功能是控制微波炉工作过程中的状态转换,并发出有关控制信息;输入信号为CLK、TEST、START、SET_T、RESET和DONE,输出信号为LD_DONE、LD_CLK、LD_8888和COOK信号。(2)数据装载器ZZQ的功能是根据KZQ发出的控制信号选择定时时间、测试数据或烹调完成信息的装入。第5页/共55页 (3)计时器JSQ的功能是负责烹调过程中的时间递减计数,并提供烹调完成时的状态信号供KZQ产生烹调完成信号。(4)显示译码器YMQ47的功能就是负责将各种显示信息的BCD转换成七段数码管显示的驱动信息编码。需要译码的信息有:数字09,字母d、o、n
3、、E。第6页/共55页 5.2.2 状态控制器KZQ的设计 状态控制器KZQ的功能是控制微波炉工作过程中的状态转换,并发出有关控制信息,因此我们可用一个状态机来实现它。经过对微波炉工作过程中的状态转换条件及输出信号进行分析,我们可得到其状态转换图如图5.3所示,其输入、输出端口如图5.4所示。第7页/共55页图5.3 KZQ的状态转换图 第8页/共55页图5.4 KZQ的输入、输出端口图 第9页/共55页 5.2.3 数据装载器ZZQ的设计 ZZQ的输入、输出端口如图5.5所示,根据其应完成的逻辑功能,它本质上就是一个三选一数据选择器。本设计采用一个进程来完成,但由于三个被选择的数据只有一个来
4、自输入端口,因此另两个被选择的数据则通过在进程的说明部分定义两个常数来产生。第10页/共55页图5.5 ZZQ的输入、输出端口图 第11页/共55页PROCESS(DATA1,LD_8888,LD_CLK,LD_DONE)IS CONSTANT ALL_8:STD_LOGIC_VECTOR(15 DOWNTO 0):=1000100010001000;CONSTANT DONE:STD_LOGIC_VECTOR(15 DOWNTO 0):=1010101111001101;VARIABLE TEMP:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGIN LOAD DATA2 D
5、ATA2 DATA2 NULL;END CASE;END PROCESS;第13页/共55页 5.2.4 烹调计时器JSQ的设计 烹调计时器JSQ为减数计数器,其最大计时时间为59:59。因此我们 可 用 两 个 减 计 数 十 进 制 计 数 器 DCNT10和 两 个 减 计 数 六 进 制 计 数 器DCNT6级联构成。JSQ的内部组成原理如图5.6所示。第14页/共55页图5.6 JSQ的内部组成原理图 第15页/共55页 5.2.5 显示译码器YMQ47的设计 本显示译码器YMQ47不但要对数字09进行显示译码,还要对字母d、o、n、E进行显示译码,其译码对照表如表5.1所示。第16
6、页/共55页表5.1 YMQ47的译码对照表 第17页/共55页5.3 主要VHDL源程序5.3.1 状态控制器KZQ的VHDL源程序-KZQ.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY KZQ IS PORT(RESET,SET_T,START,TEST,CLK,DONE:IN STD_LOGIC;第18页/共55页 COOK,LD_8888,LD_CLK,LD_DONE:OUT STD_LOGIC);END ENTITY KZQ;ARCHITECTURE ART OF KZQ
7、 IS TYPE STATE_TYPE IS(IDLE,LAMP_TEST,SET_CLOCK,TIMER,DONE_MSG);SIGNAL NXT_STATE,CURR_STATE:STATE_TYPE;BEGIN PROCESS(CLK,RESET)IS BEGIN IF RESET=1 THEN第19页/共55页 CURR_STATE=IDLE;ELSIF CLKEVENT AND CLK=1 THEN CURR_STATE=NXT_STATE;END IF;END PROCESS;PROCESS(CLK,CURR_STATE,SET_T,START,TEST,DONE)IS BEGIN
8、 NXT_STATE=IDLE;-DEFAULT NEXT STATE IS IDLE;第20页/共55页 LD_8888=0;LD_DONE=0;LD_CLK=0;COOK LD_8888=1;COOK LD_CLK=1;COOK LD_DONE=1;COOK IF(TEST=1)THEN NXT_STATE=LAMP_TEST;第21页/共55页 LD_8888=1;ELSIF SET_T=1 THEN NXT_STATE=SET_CLOCK;LD_CLK=1;ELSIF (START=1)AND(DONE=0)THEN NXT_STATE=TIMER;COOK IF DONE=1 THE
9、N NXT_STATE=DONE_MSG;LD_DONE=1;第22页/共55页 ELSE NXT_STATE=TIMER;COOK=1;END IF;END CASE;END PROCESS;END ARCHITECTURE ART;第23页/共55页5.3.2 数据装载器ZZQ的VHDL源程序-ZZQ.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY ZZQ IS PORT(DATA1:IN STD_LOGIC_VECTOR(15 DOWNTO 0);LD_8888:IN STD_
10、LOGIC;LD_CLK:IN STD_LOGIC;LD_DONE:IN STD_LOGIC;第24页/共55页 DATA2:OUT STD_LOGIC_VECTOR(15 DOWNTO 0);LOAD:OUT STD_LOGIC);END ENTITY ZZQ;ARCHITECTURE ART OF ZZQ IS BEGIN PROCESS(DATA1,LD_8888,LD_CLK,LD_DONE)IS CONSTANT ALL_8:STD_LOGIC_VECTOR(15 DOWNTO 0):=1000100010001000;CONSTANT DONE:STD_LOGIC_VECTOR(1
11、5 DOWNTO 0):=1010101111001101;第25页/共55页VARIABLE TEMP:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGIN LOAD DATA2 DATA2 DATA2 NULL;END CASE;END PROCESS;END ARCHITECTURE ART;第27页/共55页5.3.3 烹调计时器JSQ的VHDL源程序-DCNT10.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DCNT10 IS PORT(CLK:I
12、N STD_LOGIC;LOAD:IN STD_LOGIC;ENA:IN STD_LOGIC;DATAIN:IN STD_LOGIC_VECTOR(3 DOWNTO 0);CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);CARRY_OUT:OUT STD_LOGIC);第28页/共55页END ENTITY DCNT10;ARCHITECTURE ART OF DCNT10 IS SIGNAL CQI:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS(CLK,LOAD,ENA)IS BEGIN IF LOAD=1 THEN CQI=D
13、ATAIN;ELSIF CLKEVENT AND CLK=1 THEN第29页/共55页IF ENA=1 THEN IF CQI=0000 THEN CQI=1001;ELSE CQI=CQI-1;END IF;END IF;END IF;END PROCESS;PROCESS(CLK,CQI)IS BEGIN IF CLKEVENT AND CLK=1 THEN IF CQI=0000 THEN CARRY_OUT=1;第30页/共55页 ELSE CARRY_OUT=0;END IF;END IF;END PROCESS;CQ=CQI;END ARCHITECTURE ART;-DCNT6
14、.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;第31页/共55页ENTITY DCNT6 IS PORT(CLK:IN STD_LOGIC;LOAD:IN STD_LOGIC;ENA:IN STD_LOGIC;DATAIN:IN STD_LOGIC_VECTOR(3 DOWNTO 0);CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);CARRY_OUT:OUT STD_LOGIC);END ENTITY DCNT6;ARCHITECTURE ART OF DCNT
15、6 IS第32页/共55页SIGNAL CQI:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS(CLK,LOAD,ENA)IS BEGIN IF LOAD=1 THEN CQI=DATAIN;ELSIF CLKEVENT AND CLK=1 THEN IF ENA=1 THEN IF CQI=0000 THEN CQI=0101;ELSE CQI=CQI-1;END IF;END IF;END IF;第33页/共55页END PROCESS;PROCESS(CLK,CQI)IS BEGIN IF CLKEVENT AND CLK=1 THEN IF CQI
16、=0000 THEN CARRY_OUT=1;ELSE CARRY_OUT=0;END IF;END IF;END PROCESS;CQ=CQI;END ARCHITECTURE ART;第34页/共55页-JSQ.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY JSQ IS PORT(COOK:IN STD_LOGIC;DATA3:IN STD_LOGIC_VECTOR(15 DOWNTO 0);LOAD:IN STD
17、_LOGIC;第35页/共55页 CLK:IN STD_LOGIC;SEC_L:OUT STD_LOGIC_VECTOR(3 TO 0);SEC_H:OUT STD_LOGIC_VECTOR(3 TO 0);MIN_L:OUT STD_LOGIC_VECTOR(3 TO 0);MIN_H:OUT STD_LOGIC_VECTOR(3 TO 0);DONE:OUT STD_LOGIC);END ENTITY JSQ;ARCHITECTURE ART OF JSQ IS COMPONENT DCNT10 IS PORT(CLK,LOAD,ENA:IN STD_LOGIC;第36页/共55页DATA
18、IN:IN STD_LOGIC_VECTOR(3 DOWNTO 0);CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);CARRY_OUT:OUT STD_LOGIC);END COMPONENT DCNT10;COMPONENT DCNT6 IS PORT(CLK,LOAD,ENA:IN STD_LOGIC;DATAIN:IN STD_LOGIC_VECTOR(3 DOWNTO 0);CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);CARRY_OUT:OUT STD_LOGIC);第37页/共55页 END COMPONENT DCNT6;SIG
19、NAL NEWCLK:STD_LOGIC;SIGNAL S1:STD_LOGIC;SIGNAL S2:STD_LOGIC;SIGNAL S3:STD_LOGIC;SIGNAL S4:STD_LOGIC;BEGIN第38页/共55页U1:DCNT10 PORT MAP(CLK,LOAD,COOK,DATA3(3 DOWNTO 0),SEC_L,S1);U2:DCNT6 PORT MAP(S1,LOAD,COOK,DATA3(7 DOWNTO 4),SEC_H,S2);U3:DCNT10 PORT MAP(S2,LOAD,COOK,DATA3(11 DOWNTO 8),MIN_L,S3);U4:D
20、CNT6 PORT MAP(S3,LOAD,COOK,DATA3(15 DOWNTO 12),MIN_H,S4);DONEDOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7=0000000;END CASE;END PROCESS;END ARCHITECTURE ART;第42页/共55页 5.3.5 微波炉控制器WBLKZQ的VHDL源程序 请读者根据图5.2微波炉控制器WBLKZQ的内部组成原理图自行完成。第43页/共55页 5.4 系统仿真/硬件验证 5.4.1 系统的有关仿真 状态控制
21、器KZQ、数据装载器ZZQ和烹调计时器JSQ的仿真分别如图5.7、图5.8和图5.9所示。第44页/共55页图5.7 状态控制器KZQ的仿真图 第45页/共55页图5.8 数据装载器ZZQ的仿真图 第46页/共55页图5.9 烹调计时器JSQ的仿真图 第47页/共55页 经过对图5.7图5.9进行分析,我们可以看出KZQ、ZZQ、JSQ的设计是正确的。其他未仿真的模块请读者自行完成并进行分析。第48页/共55页 5.4.2 系统的硬件验证 请读者根据自己所拥有的实验设备自行完成。第49页/共55页5.5 设计技巧分析 (1)在状态控制器KZQ中,利用状态机的设计方法简化了设计。(2)在数据装载
22、器ZZQ的设计中,利用三个装载信号的组合LD_8888&LD_DONE&LD_CLK赋给变量TEMP,巧妙地解决了装载数据的选择问题。第50页/共55页 (3)在烹调计时器JSQ的设计中,利用两个减法十进制计数器和两个减法六进制计数器的串级组合,非常简便地实现了5959数之间的计时和初始数据的装载。第51页/共55页5.6 系统扩展思路 (1)本微波炉控制器要求系统时钟CLK固定为1 Hz,而预置时间数据输入总线DATA0位数太多(为16位),因此我们可对该系统进行改进,增加一个分频电路FPQ和一个“虚拟式”按键预置数据输入电路YZDL(如图5.10所示),以使系统的通用性更好写。第52页/共55页图5.10 微波炉控制器WBLKZQ扩充后的内部组成原理图第53页/共55页 (2)设计外围电路:系统用方波信号源,直流工作电源。(3)若为毕业设计,可要求设计调试程序、外围电路等,还可要求设计制作整个系统,包括PCB的制作。第54页/共55页感谢您的观看!第55页/共55页