微波炉控制器的设计与分析_第1页
微波炉控制器的设计与分析_第2页
微波炉控制器的设计与分析_第3页
微波炉控制器的设计与分析_第4页
微波炉控制器的设计与分析_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微波炉控制器的设计与分析第一页,共五十六页,2022年,8月28日5.1系统设计要求现需设计一个微波炉控制器WBLKZQ,其外部接口如图5.1所示。通过该控制器再配以4个七段数码二极管完成微波炉的定时及信息显示。第二页,共五十六页,2022年,8月28日图5.1微波炉控制器外部接口符号图第三页,共五十六页,2022年,8月28日图5.1中的各信号的功能及要求如下:

CLK是秒时钟脉冲输入,它接收每秒一个时钟脉冲的节拍信号。RESET为复位信号,高电平有效,用于芯片的复位功能。TEST为测试信号,高电平有效,用于测试4个七段数码二极管工作是否正常。第四页,共五十六页,2022年,8月28日5.2系统设计方案

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

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

(1)状态控制器KZQ的功能是控制微波炉工作过程中的状态转换,并发出有关控制信息;输入信号为CLK、TEST、START、SET_T、RESET和DONE,输出信号为LD_DONE、LD_CLK、LD_8888和COOK信号。

(2)数据装载器ZZQ的功能是根据KZQ发出的控制信号选择定时时间、测试数据或烹调完成信息的装入。第七页,共五十六页,2022年,8月28日

(3)计时器JSQ的功能是负责烹调过程中的时间递减计数,并提供烹调完成时的状态信号供KZQ产生烹调完成信号。

(4)显示译码器YMQ47的功能就是负责将各种显示信息的BCD转换成七段数码管显示的驱动信息编码。需要译码的信息有:数字0~9,字母d、o、n、E。第八页,共五十六页,2022年,8月28日

5.2.2状态控制器KZQ的设计状态控制器KZQ的功能是控制微波炉工作过程中的状态转换,并发出有关控制信息,因此我们可用一个状态机来实现它。经过对微波炉工作过程中的状态转换条件及输出信号进行分析,我们可得到其状态转换图如图5.3所示,其输入、输出端口如图5.4所示。第九页,共五十六页,2022年,8月28日图5.3KZQ的状态转换图第十页,共五十六页,2022年,8月28日图5.4KZQ的输入、输出端口图第十一页,共五十六页,2022年,8月28日

5.2.3数据装载器ZZQ的设计

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

第十二页,共五十六页,2022年,8月28日图5.5ZZQ的输入、输出端口图第十三页,共五十六页,2022年,8月28日PROCESS(DATA1,LD_8888,LD_CLK,LD_DONE)ISVARIABLETEMP:STD_LOGIC_VECTOR(2DOWNTO0);BEGINLOAD<=LD_8888ORLD_DONEORLD_CLK;第十四页,共五十六页,2022年,8月28日TEMP:=LD_8888&LD_DONE&LD_CLK;CASETEMPISWHEN"100"=>DATA2<=ALL_8; --LOAD_8888=1WHEN"010"=>DATA2<=DONE; --LOAD_DONE=1WHEN"001"=>DATA2<=DATA1; --LOAD_CLK=1WHENOTHERS=>NULL;ENDCASE;ENDPROCESS;第十五页,共五十六页,2022年,8月28日

5.2.4烹调计时器JSQ的设计烹调计时器JSQ为减数计数器,其最大计时时间为59:59。因此我们可用两个减计数十进制计数器DCNT10和两个减计数六进制计数器DCNT6级联构成。JSQ的内部组成原理如图5.6所示。第十六页,共五十六页,2022年,8月28日图5.6JSQ的内部组成原理图第十七页,共五十六页,2022年,8月28日

5.2.5显示译码器YMQ47的设计本显示译码器YMQ47不但要对数字0~9进行显示译码,还要对字母d、o、n、E进行显示译码,其译码对照表如表5.1所示。第十八页,共五十六页,2022年,8月28日表5.1YMQ47的译码对照表第十九页,共五十六页,2022年,8月28日5.3主要VHDL源程序5.3.1状态控制器KZQ的VHDL源程序--KZQ.VHDLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;ENTITYKZQISPORT(RESET,SET_T,START,TEST,CLK,DONE:INSTD_LOGIC;第二十页,共五十六页,2022年,8月28日

COOK,LD_8888,LD_CLK,LD_DONE:OUTSTD_LOGIC);ENDENTITYKZQ;ARCHITECTUREARTOFKZQISTYPESTATE_TYPEIS(IDLE,LAMP_TEST,SET_CLOCK,TIMER,DONE_MSG);SIGNALNXT_STATE,CURR_STATE:STATE_TYPE;BEGINPROCESS(CLK,RESET)ISBEGINIFRESET='1'THEN第二十一页,共五十六页,2022年,8月28日

CURR_STATE<=IDLE;ELSIFCLK'EVENTANDCLK='1'THENCURR_STATE<=NXT_STATE;ENDIF;ENDPROCESS;PROCESS(CLK,CURR_STATE,SET_T,START,TEST,DONE)ISBEGINNXT_STATE<=IDLE;--DEFAULTNEXTSTATEISIDLE;第二十二页,共五十六页,2022年,8月28日

LD_8888<='0';LD_DONE<='0';LD_CLK<='0';COOK<='0';CASECURR_STATEISWHENLAMP_TEST=>LD_8888<='1';COOK<='0';WHENSET_CLOCK=>LD_CLK<='1';COOK<='0';WHENDONE_MSG=>LD_DONE<='1';COOK<='0';WHENIDLE=>IF(TEST='1')THENNXT_STATE<=LAMP_TEST;第二十三页,共五十六页,2022年,8月28日

LD_8888<='1';ELSIFSET_T='1'THENNXT_STATE<=SET_CLOCK;LD_CLK<='1';ELSIF((START='1')AND(DONE='0'))THENNXT_STATE<=TIMER;COOK<='1';ENDIF;WHENTIMER=>IFDONE='1'THENNXT_STATE<=DONE_MSG;LD_DONE<='1';第二十四页,共五十六页,2022年,8月28日

ELSENXT_STATE<=TIMER;COOK<='1';ENDIF;ENDCASE;ENDPROCESS;ENDARCHITECTUREART;第二十五页,共五十六页,2022年,8月28日5.3.2数据装载器ZZQ的VHDL源程序--ZZQ.VHDLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;ENTITYZZQISPORT(DATA1:INSTD_LOGIC_VECTOR(15DOWNTO0);LD_8888:INSTD_LOGIC;LD_CLK:INSTD_LOGIC;LD_DONE:INSTD_LOGIC;第二十六页,共五十六页,2022年,8月28日

DATA2:OUTSTD_LOGIC_VECTOR(15DOWNTO0);LOAD:OUTSTD_LOGIC);ENDENTITYZZQ;ARCHITECTUREARTOFZZQISBEGINPROCESS(DATA1,LD_8888,LD_CLK,LD_DONE)IS第二十七页,共五十六页,2022年,8月28日VARIABLETEMP:STD_LOGIC_VECTOR(2DOWNTO0);BEGINLOAD<=LD_8888ORLD_DONEORLD_CLK;TEMP:=LD_8888&LD_DONE&LD_CLK;CASETEMPISWHEN"100"=>DATA2<=ALL_8; --LOAD_8888=1WHEN"010"=>DATA2<=DONE; --LOAD_DONE第二十八页,共五十六页,2022年,8月28日WHEN"001"=>DATA2<=DATA1; --LOAD_CLKWHENOTHERS=>NULL;ENDCASE;ENDPROCESS;ENDARCHITECTUREART;第二十九页,共五十六页,2022年,8月28日5.3.3烹调计时器JSQ的VHDL源程序--DCNT10.VHDLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYDCNT10ISPORT(CLK:INSTD_LOGIC;LOAD:INSTD_LOGIC;ENA:INSTD_LOGIC;DATAIN:INSTD_LOGIC_VECTOR(3DOWNTO0);CQ:OUTSTD_LOGIC_VECTOR(3DOWNTO0);CARRY_OUT:OUTSTD_LOGIC);第三十页,共五十六页,2022年,8月28日ENDENTITYDCNT10;ARCHITECTUREARTOFDCNT10ISSIGNALCQI:STD_LOGIC_VECTOR(3DOWNTO0);BEGINPROCESS(CLK,LOAD,ENA)ISBEGINIFLOAD='1'THENCQI<=DATAIN;ELSIFCLK'EVENTANDCLK='1'THEN第三十一页,共五十六页,2022年,8月28日IFENA='1'THENIFCQI="0000"THENCQI<="1001";ELSECQI<=CQI-'1';ENDIF;ENDIF;ENDIF;ENDPROCESS;PROCESS(CLK,CQI)ISBEGINIFCLK'EVENTANDCLK='1'THENIFCQI="0000"THENCARRY_OUT<='1';第三十二页,共五十六页,2022年,8月28日

ELSECARRY_OUT<='0';ENDIF;ENDIF;ENDPROCESS;CQ<=CQI;ENDARCHITECTUREART;

--DCNT6.VHDLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;第三十三页,共五十六页,2022年,8月28日ENTITYDCNT6ISPORT(CLK:INSTD_LOGIC;LOAD:INSTD_LOGIC;ENA:INSTD_LOGIC;DATAIN:INSTD_LOGIC_VECTOR(3DOWNTO0);CQ:OUTSTD_LOGIC_VECTOR(3DOWNTO0);CARRY_OUT:OUTSTD_LOGIC);ENDENTITYDCNT6;ARCHITECTUREARTOFDCNT6IS第三十四页,共五十六页,2022年,8月28日SIGNALCQI:STD_LOGIC_VECTOR(3DOWNTO0);BEGINPROCESS(CLK,LOAD,ENA)ISBEGINIFLOAD='1'THENCQI<=DATAIN;ELSIFCLK'EVENTANDCLK='1'THENIFENA='1'THENIFCQI="0000"THENCQI<="0101";ELSECQI<=CQI-'1';ENDIF;ENDIF;ENDIF;第三十五页,共五十六页,2022年,8月28日ENDPROCESS;PROCESS(CLK,CQI)ISBEGINIFCLK'EVENTANDCLK='1'THENIFCQI="0000"THENCARRY_OUT<='1';ELSECARRY_OUT<='0';ENDIF;ENDIF;ENDPROCESS;CQ<=CQI;ENDARCHITECTUREART;第三十六页,共五十六页,2022年,8月28日--JSQ.VHDLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;ENTITYJSQISPORT(COOK:INSTD_LOGIC;DATA3:INSTD_LOGIC_VECTOR(15DOWNTO0);LOAD:INSTD_LOGIC;第三十七页,共五十六页,2022年,8月28日

CLK:INSTD_LOGIC;SEC_L:OUTSTD_LOGIC_VECTOR(3TO0);SEC_H:OUTSTD_LOGIC_VECTOR(3TO0);MIN_L:OUTSTD_LOGIC_VECTOR(3TO0);MIN_H:OUTSTD_LOGIC_VECTOR(3TO0);DONE:OUTSTD_LOGIC);ENDENTITYJSQ;ARCHITECTUREARTOFJSQISCOMPONENTDCNT10ISPORT(CLK,LOAD,ENA:INSTD_LOGIC;第三十八页,共五十六页,2022年,8月28日DATAIN:INSTD_LOGIC_VECTOR(3DOWNTO0);CQ:OUTSTD_LOGIC_VECTOR(3DOWNTO0);CARRY_OUT:OUTSTD_LOGIC);ENDCOMPONENTDCNT10;COMPONENTDCNT6ISPORT(CLK,LOAD,ENA:INSTD_LOGIC;DATAIN:INSTD_LOGIC_VECTOR(3DOWNTO0);CQ:OUTSTD_LOGIC_VECTOR(3DOWNTO0);CARRY_OUT:OUTSTD_LOGIC);第三十九页,共五十六页,2022年,8月28日

ENDCOMPONENTDCNT6;SIGNALNEWCLK:STD_LOGIC;SIGNALS1:STD_LOGIC;SIGNALS2:STD_LOGIC;SIGNALS3:STD_LOGIC;SIGNALS4:STD_LOGIC;BEGIN第四十页,共五十六页,2022年,8月28日U1:DCNT10PORTMAP(CLK,LOAD,COOK,DATA3(3DOWNTO0),SEC_L,S1);U2:DCNT6PORTMAP(S1,LOAD,COOK,DATA3(7DOWNTO4),SEC_H,S2);U3:DCNT10PORTMAP(S2,LOAD,COOK,DATA3(11DOWNTO8),MIN_L,S3);U4:DCNT6PORTMAP(S3,LOAD,COOK,DATA3(15DOWNTO12),MIN_H,S4);DONE<=S1ANDS2ANDS3ANDS4;ENDARCHITECTUREART;第四十一页,共五十六页,2022年,8月28日5.3.4显示译码器YMQ47的VHDL源程序--YMQ47.VHDLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYYMQ47ISPORT(AIN4:INSTD_LOGIC_VECTOR(3DOWNTO0);DOUT7:OUTSTD_LOGIC_VECTOR(6DOWNTO0));第四十二页,共五十六页,2022年,8月28日ENDENTITYYMQ47;ARCHITECTUREARTOFYMQ47ISBEGINPROCESS(AIN4)BEGINCASEAIN4ISWHEN"0000"=>DOUT7<="0111111"; --显示0的g~aWHEN"0001"=>DOUT7<="0000110"; --1WHEN"0010"=>DOUT7<="1011011"; --2WHEN"0011"=>DOUT7<="1001111"; --3WHEN"0100"=>DOUT7<="1100110"; --4第四十三页,共五十六页,2022年,8月28日

WHEN"0101"=>DOUT7<="1101101"; --5WHEN"0110"=>DOUT7<="1111101"; --6WHEN"0111"=>DOUT7<="0000111"; --7WHEN"1000"=>DOUT7<="1111111"; --8WHEN"1001"=>DOUT7<="1101111"; --9WHEN"1010"=>DOUT7<="1011110"; --dWHEN"1011"=>DOUT7<="1011100"; --oWHEN"1100"=>DOUT7<="1010100"; --nWHEN"1101"=>DOUT7<="1111001"; --EWHENOTHERS=>DOUT7<="0000000";ENDCASE;ENDPROCESS;ENDARCHITECTUREART;第四十四页,共五十六页,2022年,8月28日

5.3.5微波炉控制器WBLKZQ的VHDL源程序请读者根据图5.2微波炉控制器WBLKZQ的内部组成原理图自行完成。第四十五页,共五十六页,2022年,8月28日

5.4系统仿真/硬件验证

5.4.1系统的有关仿真状态控制器KZQ、数据装载器ZZQ和烹调计时器JSQ的仿真分别如图5.7、图5.8和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论