ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:242.79KB ,
资源ID:9043152      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9043152.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微波炉控制器的设计与分析.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、微波炉控制器的设计与分析FPGA系统设计 组成员及负责模块:冀鹏超 状态控制器KZQ设计陆威 数据装载器ZZQ设计韩华凯 烹饪计时器JSQ设计凌智 烹饪计时器JSQ设计白浚材 显示译码器YMQ47设计孙兵剑 微波炉控制器WBLKZQ设计微波炉控制器的设计与分析一系统设计要求 现在设计一个微波炉控制器WBLKZQ,其外部接口如图1所示。通过该控制器再配以4个七段数码二极管完成微波炉的定时及信息显示。图1 微波炉控制器外部接口符号图 图1中的各信号的功能及要求如下:CLK是秒表时钟脉冲输入,它接收每秒一个时钟脉冲的节拍信号。RESET为复位信号,高电平有效,用于芯片的复位功能。TEST为测试信号,

2、高电平有效。用于测试4哥七段数码二极管工作是否正常。SET_TS是烹调时间设置控制信号,高电平有效。DATA0的一个人16位的总线输入信号,输入所设置的时间长短,它由高到低分为4组,每一组是BCD码输入,分别表示分、秒上十位个位的数字,如12分59秒。START是烹调开始的控制信号,高电平有效。COOK是烹调进行信号,它外接用于控制烹调的继电器开关,高电平时表明烹调已经开始或正在进行,低电平表示烹调结束或没有进行。MIN_H(十分位)、MIN_L(分位)、SEC_H(十秒位)和SEC_L(秒位)是4组七位总线信号,它们分别接4个七段数码管,动态地显示完成烹调所剩的时间以及测试状态信息“8888

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

4、EST键在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根据输入信号和自身当时所处的

5、状态完成状态的转换和输出相应的控制信号:LD_DONE指示ZZQ装入烹调完毕的状态信息“donE”的显示驱动信息数据;LD_CLK指示ZZQ装入设置的烹饪时间数据;LD_8888指示ZZQ装入用于测试的数据“8888”以显示驱动信息数据;COOK指示烹饪正在进行之中,并提示计时器进行减计数。 (2)数据装载器ZZQ的功能是根据KZQ发出的控制信号选择定时时间、测试数据或烹调完成信息的装入。当LD_DONE为高电平时,输出烹调完毕的状态信息数据;LD_CLK为高电平时,输出设置的烹饪时间数据;LD_8888为高电平时,输出测试数据。输出信号LOAD用于提示JSQ将处于数据装入状态。(3)计时器J

6、SQ的功能是负责烹调过程中的时间递减计数,并提供烹调完成时的状态信号提供KZQ产生烹调完成信号。LOAD为高电平时完成装入功能,COOK为高电平时执行逆计数功能。输入DONE指示烹调完成。MIN_H、MIN_L、SEC_H、和SEC_L为完成烹调所剩的时间以及测试状态信息“8888”、烹调完毕的状态信息“donE”的BCD码信息。(4)显示译码器YMQ47的功能就是负责将各种显示信息的BCD转换成七段数码管显示的驱动信息编码。需要译码的信息有:数字09,字母d、o、n、E。2状态控制器KZQ的设计状态控制器KZQ的功能是控制微波炉工作过程中的状态转换,并发出有关控制信息,因此我们可用一个状态机

7、来实现它。经过对微波炉工作过程中的状态转换条件及输出信号进行分析,我们可得到其状态转换图如图3所示,其输入、输出端口如图4所示。 图3 KZQ的输入输出端口图图4 KZQ的输入输出端口图3数据装载器ZZQ的设计ZZQ的输入、输出端口如5所示,根据其应完成的逻辑功能,它本质上就是一个三选一数据选择器。本设计采用一个进程来完成,但由于三个被选择的数据只有一个来自输入端口,因此另两个被选择的数据则通过在进程的说明部分定义两个常数来产生。由于用于显示“8888”的常数ALL-8需分解成4个8,分别经过四个47译码器译码后才是真正的显示驱动信息编码,因此该常数应是4个分段的是4位BCD码,故应设为“10

8、00100010001000”。 同理,显示“donE”的常数DONE可设为“1010101111001101”,其中d、o、n、E的BCD码分别为:“1010”、“1011”、“1100”、“1101”。该模块的主要程序如下:图5 ZZQ的输入输出端口PROCESS(DATA1,LD_8888.LD_CLK.LD_DONE)ISCONSTANT ALL_8:STD_LOGIC_VECTOR(15 DOWNTO 0):=1000100010001000; CONSTANT DONE:STD_LOGIC_VECTOR(15 DOWNTO 0):=1010101111001101; VARIABL

9、E TEMP:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN LOADDATA2DATA2DATA2NULL; END CASE;END PROCESS;4烹调计时器JSQ的设计烹调计时器JSQ为减数计时器,其最大计时时间为59:59。因此我们可用两个减计数十进制计数器DCNT10和两个减计数六进制计数器DCNT6级联构成。JSQ的内部组成原理如图6所示。图6 JSQ的内部组成原理图5.显示译码器YMQ47的设计本显示译码器YMQ47不但要对数字09进行显示译码,还要对字母d、o、n、E进行显示译码,其译码对照表如表1所示。表1 YMQ47的译码对照表显示的数字或字母B

10、CD编码七段显示驱动编码(ga)000000111111100010000110200101011011300111001111401001100110501011101101601101111101701110000111810001111111910011101111d10101011110o10111011100n11001010100E11011111001三主要VHDL源程序1状态控制器KZQ的VHDL源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY KZQ IS PORT(

11、RESET,SET_T,START,TEST,CLK,DONE:IN STD_LOGIC; COOK,LD_8888,LD_CLK,LD_DONE:OUT STD_LOGIC);END ENTITY KZQ;ARCHITECTURE ART OF KZQ 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 BEGINIF RESET=1 THEN CURR_STATE=IDLE; ELS

12、IF CLKEVENT AND CLK=1 THEN CURR_STATE=NXT_STATE; END IF;END PROCESS;PROCESS(CLK,CURR_STATE,SET_T,START,TEST,DONE)IS BEGIN NXT_STATE=IDLE; -DEFAULT NEX STATE IS IDLE LD_8888=0; LD_DONE=0; LD_CLK=0; COOKLD_8888=1;COOKLD_CLK=1;COOKLD_DONE=0;COOK IF(TEST=1)THEN NXT_STATE=LAMP_TEST; LD_8888=1; ELSIF SET_

13、T=1THEN NXT_STATE=SET_CLOCK; LD_CLK=1; ELSIF (START=1)AND(DONE=0)THEN NXT_STATE=TIMER; COOK IF DONE=1THEN NXT_STATE=DONE_MSG; LD_DONE=1; ELSE NXT_STATE=TIMER; COOK=1; END IF; END CASE; END PROCESS;END ARCHITECTURE ART;2数据装载器ZZQ的VHDL源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH

14、.ALL;ENTITY ZZQ IS PORT(DATA1:IN STD_LOGIC_VECTOR(15 DOWNTO 0); LD_8888:IN STD_LOGIC; LD_CLK:IN STD_LOGIC; LD_DONE:IN STD_LOGIC; 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_LOG

15、IC_VECTOR(15 DOWNTO 0):=1000100010001000; CONSTANT DONE:STD_LOGIC_VECTOR(15 DOWNTO 0):=1010101111001101; VARIABLE TEMP:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN LOADDATA2DATA2DATA2NULL; END CASE; END PROCESS;3烹调计时器JSQ的VHDL源程序-DCNT10.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.A

16、LL;ENTITY DCNT10 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 DCNT10ARCHITECTURE ART OF DCNT10 IS SIGNAL CQI:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS(CLK,LOAD,ENA)IS

17、BEGIN IF LOAD=1 THEN CQI=DATAIN; ELSIF CLKEVENT AND CLK=1 THEN IF ENA=1 THEN IF CQI=000 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; ELSE CARRY_OUT=0;END IF; END IF; END PROCESS; CQ=CQI;END ARCHIT

18、ECTURE ART;-DCNT6.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;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;ARCHITECTUR

19、E ART OF DCNT6 IS 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; END PROCESS; PROCESS(CLK,CQI)IS BEGIN IF CLKEVENT AND CLK=1 THEN IF

20、CQI=0000 THEN CARRY_OUT=1; ELSE CARRY_OUT=0;END IF; END IF; END PROCESS; CQ=CQI;END ARCHITECTURE ART;-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

21、_LOGIC; CLK:IN STD_LOGIC; SEC_L:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); SEC_H:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); MIN_L:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); MIN_H:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); DONE:OUT STD_LOGIC);END ENTITY JSQ;ARCHITECTURE ART OF JSQ IS COMPONENT DCNT10 IS PORT(CLK,LOAD,ENA:IN STD_LOGIC;

22、DATAIN: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); END COMPONENT DCNT6;

23、SIGNAL NEWCLK:STD_LOGIC; SIGNAL S1:STD_LOGIC; SIGNAL S2:STD_LOGIC; SIGNAL S3:STD_LOGIC; SIGNAL S4:STD_LOGIC; BEGINU1: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),

24、 MIN_L, S3); U4:DCNT6 PORT MAP(S3, LOAD, COOK, DATA3(15 DOWNTO 12), MIN_H, S4); DONEDOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7=0000000; END CASE; END PROCESS;END ARCHITECTURE ART;5微波炉控制器WBLKZQ的VHDL源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNE

25、D.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY WBLKZQ IS PORT(RESET,SET_T,START,TEST,CLK:IN STD_LOGIC; DATA0:IN STD_LOGIC_VECTOR(15 DOWNTO 0); COOK:OUT STD_LOGIC; SEC_L,SEC_H,MIN_L,MIN_H:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END ENTITY WBLKZQ;ARCHITECTURE ART OF WBLKZQ IS COMPONENT KZQ IS PORT(RESET,SET_T,STA

26、RT,TEST,CLK,DONE:IN STD_LOGIC; COOK,LD_8888,LD_CLK,LD_DONE:OUT STD_LOGIC); END COMPONENT KZQ; COMPONENT ZZQ IS PORT(DATA1:IN STD_LOGIC_VECTOR(15 DOWNTO 0); LD_8888:IN STD_LOGIC; LD_CLK:IN STD_LOGIC; LD_DONE:IN STD_LOGIC; DATA2:OUT STD_LOGIC_VECTOR(15 DOWNTO 0); LOAD:OUT STD_LOGIC); END COMPONENT ZZQ; COMPONENT JSQ IS PORT(COOK:IN STD_LOGIC; DATA3:IN STD_LOGIC_VECTOR(15 DOWNTO 0); LOAD:IN STD_LOGIC; CLK:IN STD_LOGIC; SEC_L:OUT STD_LOGIC_V

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1