基于FPGA技术的微波炉控制器_第1页
基于FPGA技术的微波炉控制器_第2页
基于FPGA技术的微波炉控制器_第3页
基于FPGA技术的微波炉控制器_第4页
基于FPGA技术的微波炉控制器_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、-PAGE . z. . .可修编. .*大学*学院现代电子系统设计*系院*专业题目:基于FPGA技术的微波炉控制器学生*:班级:*:指导教师:完成日期:年月摘要本文介绍了应用FPGA芯片和硬件描述语言VHDL设计微波炉控制器系统的方法。系统使用VHDL编程实现各底层模块的功能,顶层的设计采用图形输入完成。本文主要阐述模块化设计的思想和状态图的描述方法,以及它们在硬件描述语言中的应用,并展示了其在Quartus开发系统下的仿真结果和烧写到EPM570T100C5后的现象。 主要有以下几个模块:状态控制器KZQ、数据装载器ZZQ、烹调计时器JSQ、显示译码器YMQ47以及分频器和动态显示电路。

2、该控制器具有系统复位、状态控制、时间设定、烹饪计时、动态显示译码等功能。关键字:FPGA;VHDL;微波炉;控制器;状态图;定时器目录TOC o 1-3 h z uHYPERLINK l _Toc3128638051.绪论1HYPERLINK l _Toc3128638061.1任务的提出1HYPERLINK l _Toc3128638071.2设计的根本要求1HYPERLINK l _Toc3128638081.3设计的目的和意义1HYPERLINK l _Toc3128638092.系统总体设计2HYPERLINK l _Toc3128638102.1系统总体方案设计2HYPERLINK

3、l _Toc3128638112.2系统功能模块描述具体的电路图和VHDL设计文件将在附件中给出2HYPERLINK l _Toc3128638123.系统详细设计2HYPERLINK l _Toc3128638133.1 状态控制器KZQ的设计2HYPERLINK l _Toc3128638143.2 数据装载器ZZQ的设计5HYPERLINK l _Toc3128638153.3 烹调计时器JSQ的设计5HYPERLINK l _Toc3128638163.4 显示译码器YMQ47的设计5HYPERLINK l _Toc3128638174系统仿真6HYPERLINK l _Toc3128

4、638184.1状态转换控制器KZQ仿真图6HYPERLINK l _Toc3128638194.2数据装载器ZZQ仿真图6HYPERLINK l _Toc3128638204.3计时器JSQ仿真7HYPERLINK l _Toc3128638214.4显示译码器YMQ47仿真图8HYPERLINK l _Toc3128638225.设计总结8HYPERLINK l _Toc3128638236.参考文献8HYPERLINK l _Toc3128638247.附件9HYPERLINK l _Toc3128638257.1整体的原理图9HYPERLINK l _Toc3128638267.2各个

5、根本模块的VHDL语言9HYPERLINK l _Toc31286382772.1分频器9HYPERLINK l _Toc312863828控制器KZQ10HYPERLINK l _Toc312863829装载器ZZQ11HYPERLINK l _Toc312863830计时器JSQ,和其中需用到的DT6和DT1012HYPERLINK l _Toc312863831译码器YMQ4715HYPERLINK l _Toc312863832动态显示电路需要用到的DT4和decoder15-. z.1.绪论随着人民生活水平的提高,微波炉开场进入越来越多的家庭,它给人们的生活带来了极大的方便。它省事、

6、省电、方便和卫生。作为现代的烹饪工具,微波炉控制器表达着它的重要性能指标。目前大局部微波炉控制器采用单片机进展设计,电路比拟复杂,性能不够灵活。本文采用先进的EDA技术,利用Quartus工作平台和VHDL设计语言,设计了一种新型的微波炉控制器系统。该控制器具有系统复位、状态控制、时间设定、烹饪计时、动态显示译码等功能。1.1任务的提出设计一个微波炉控制器1.2设计的根本要求1七段数码管及发光二极管完成微波炉的定时及状态显示;2控制器的输入信号包括定时控制信号、定时数据的输入、复位信号、开场煮饭的控制信号等;3其他我们自己添加了测试数码管是否能够正常显示的TEST信号。1.3设计的目的和意义目

7、前大局部微波炉控制器采用单片机进展设计,电路比拟复杂,性能不够灵活。本文采用先进的EDA技术,利用Quartus工作平台和VHDL设计语言,设计了一种新型的微波炉控制器系统。该控制器具有系统复位、状态控制、时间设定、烹饪计时、动态显示译码等功能。2.系统总体设计2.1系统总体方案设计根据该微波炉控制器的功能设计要求,本系统可由以下6个模块组成:1.分频器;2.状态控制器KZQ;3. 数据装载器ZZQ;4. 烹调计时器JSQ;5. 显示译码器YMQ47;6.动态显示电路。其内部组成原理图如图1所示。图12.2系统功能模块描述具体的电路图和VHDL设计文件将在附件中给出各个模块的功能介绍1分频器f

8、enpinqi模块的功能是实现对实验箱上的50Mhz的分频,是整个系统能够正常显示的根底。(2) 状态控制器KZQ的功能是控制微波炉工作过程中的状态转换,并发出有关控制信息;输入信号为CLK、TEST、START、SET_T、RESET和DONE,输出信号为LD_DONE、LD_CLK、LD_8888和COOK信号。 3) 数据装载器ZZQ的功能是根据KZQ发出的控制信号选择定时时间、测试数据或烹调完成信息的装入。(4) 计时器JSQ的功能是负责烹调过程中的时间递减计数,并提供烹调完成时的状态信号供KZQ产生烹调完成信号。(5) 显示译码器YMQ47的功能就是负责将各种显示信息的BCD转换成七

9、段数码管显示的驱动信息编码。需要译码的信息有:数字09,字母d、o、n、E。(6)动态显示电路的功能是将显示译码器YMQ47驱动信息编码在数码管有限的条件下显示出来。3.系统详细设计3.1 状态控制器KZQ的设计 状态控制器KZQ的功能是控制微波炉工作过程中的状态转换,并发出有关控制信息,因此我们可用一个状态机来实现它。经过对微波炉工作过程中的状态转换条件及输出信号进展分析,我们可得到其状态转换图如图2所示,其输入、输出端口如图3所示。图2 KZQ的状态转换图图3 KZQ的输入、输出端口图3.2 数据装载器ZZQ的设计ZZQ的输入、输出端口如图4所示,根据其应完成的逻辑功能,它本质上就是一个三

10、选一数据选择器。本设计采用一个进程来完成,但由于三个被选择的数据只有一个来自输入端口,因此另两个被选择的数据则通过在进程的说明局部定义两个常数来产生。图4 ZZQ的输入、输出端口图3.3 烹调计时器JSQ的设计烹调计时器JSQ为减数计数器,其最大计时时间为59:59。因此我们可用两个减计数十进制计数器DT10和两个减计数六进制计数器DT6级联构成。3.4 显示译码器YMQ47的设计本显示译码器YMQ47不但要对数字09进展显示译码,还要对字母d、o、n、E进展显示译码,其译码对照表如表1所示。表1 YMQ47的译码对照表4系统仿真4.1状态转换控制器KZQ仿真图4.2数据装载器ZZQ仿真图4.

11、3计时器JSQ仿真因为计时器是由两个减计数十进制计数器DT10和两个减计数六进制计数器DT6级联构成,所以,先完成两个减计数十进制和六进制计数器的仿真。以下分别是两减计数器的功能仿真图。十进制计数器DT10仿真图六进制计数器DT6仿真图在前面仿真正确的根底上,生成相应的元件,对两计数器进展级联,进展编译、仿真得到仿真结果图。下列图是对59分59秒的仿真结果。由以上仿真结果可以看出,该JSQ模块实现了烹调计时的定时作用。4.4显示译码器YMQ47仿真图5.设计总结本设计使用Quartus软件进展编写,并在实验箱上实现。本设计有六个小模块模块,也可以分成两个大模块,一个模块是由KZQ、ZZQ、JS

12、Q组成的,这个模块是本设计的根本,另一个模块是有分频器、译码器、动态显示电路组成的,这个模块是为了配合实验箱。第一次实验的时候,发现管脚不够分配,知道这是因为实验箱上只有一个静态显示数码管,有8个动态显示数码管。于是,进展改良,在原来的根底上增加了动态显示模块。第二次实验的时候,发现数码管跳的过快,根本分辨不出来数字的变化,于是,想到是分频分的不够,于是,又改了一下分频器的分频系数。最后一次实验时,能够正确的进展显示,并能够完成系统复位、状态控制、时间设定、烹饪计时、动态显示译码等功能。唯一的缺陷是,当计时到00:00时,显示灯是灭了一下,然后继续亮。这是需要改良的地方。对于时间的设定,我们虽

13、然没有实现键盘控制,但是我们可以通过软件进展设置,并不是通过接地或者接高电平写死了,而是可以改变的。我们自己添加了测试数码管是否能够正常显示的TEST信号。6.参考文献1谭会生,*昌凡。EDA技术及其应用M.:*电子科技大学2江思敏.VHDL数字电路及系统设计.:机械工业3*院现代电子设计课本和实验指导书7.附件7.1整体的原理图7.2各个根本模块的VHDL语言72.1分频器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fenpinqi is port (nreset:in std

14、_logic; clk:in std_logic; co:out std_logic; qt:buffer std_logic_vector(19 downto 0) ); end fenpinqi;architecture behave of fenpinqi is begin process(clk,nreset) begin if(nreset=0)then qt=000; elsif(clkevent and clk=1)then qt=qt+1; end if; end process; co=qt(19); end behave;控制器KZQ-KZQ.VHDLIBRARY IEEE

15、;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY KZQ ISPORT(RESET,SET_T,START,TEST,CLK,DONE:IN STD_LOGIC; COOK,LD_8888,LD_CLK,LD_DONE:OUT STD_LOGIC);END ENTITY KZQ;ARCHITECTURE BEHAVE OF KZQ IS TYPE STATE_TYPE IS(IDLE,LAMP_TEST,SET_CLOCK,TIMER,DONE_MSG); SIGNAL N*T_STATE,CURR_STATE:S

16、TATE_TYPE; BEGIN PROCESS(CLK,RESET) IS BEGIN IF RESET=1 THEN CURR_STATE=IDLE; ELSIF CLKEVENT AND CLK=1 THEN CURR_STATE=N*T_STATE; END IF; END PROCESS; PROCESS(CLK,CURR_STATE,SET_T,START,TEST,DONE) IS BEGIN N*T_STATE=IDLE; -DEFAULT NE*T STATE IS IDLE; LD_8888=0; LD_DONE=0; LD_CLK=0; COOK LD_8888=1; C

17、OOK LD_CLK=1; COOK LD_DONE=1; COOK IF(TEST=1) THEN N*T_STATE=LAMP_TEST; LD_8888=1; ELSIF SET_T=1 THEN N*T_STATE=SET_CLOCK; LD_CLK=1; ELSIF (START=1) AND (DONE=0) THEN N*T_STATE=TIMER; COOK IF DONE=1 THEN N*T_STATE=DONE_MSG; LD_DONE=1; ELSE N*T_STATE=TIMER; COOK=1; END IF; END CASE; END PROCESS;END A

18、RCHITECTURE BEHAVE;装载器ZZQ-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_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

19、 ZZQ;ARCHITECTURE BHV OF ZZQ IS BEGINPROCESS(DATA1,LD_8888,LD_CLK,LD_DONE)IS CONSTANT ALL_8:STD_LOGIC_VECTOR(15 DOWNTO 0):=01000; CONSTANT DONE:STD_LOGIC_VECTOR(15 DOWNTO 0):= 01101; VARIABLE TEMP:STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN LOAD DATA2 DATA2 DATA2 NULL; END CASE; END PROCESS;END ARCHITECTURE

20、 BHV; 计时器JSQ,和其中需用到的DT6和DT10-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_LOGIC; CLK:IN STD_LOGIC; SEC_L:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); SEC_H:O

21、UT 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 PONENT DT10 IS PORT(CLK,LOAD,ENA:IN STD_LOGIC; DATAIN:IN STD_LOGIC_VECTOR(3 DOWNTO 0); CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); C

22、ARRY_OUT:OUT STD_LOGIC); END PONENT DT10; PONENT DT6 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 PONENT DT6; SIGNAL NEWCLK:STD_LOGIC; SIGNAL S1:STD_LOGIC; SIGNAL S2:STD_LOGIC; SIGNAL S3:STD_LOGIC; SIGNAL

23、 S4:STD_LOGIC; BEGIN U1:DT10 PORT MAP(CLK,LOAD,COOK,DATA3(3 DOWNTO 0),SEC_L,S1); U2:DT6 PORT MAP(S1,LOAD,COOK,DATA3(7 DOWNTO 4),SEC_H,S2); U3:DT10 PORT MAP(S2,LOAD,COOK,DATA3(11 DOWNTO 8),MIN_L,S3); U4:DT6 PORT MAP(S3,LOAD,COOK,DATA3(15 DOWNTO 12),MIN_H,S4); DONE=S4 AND S3 AND S2 AND S1;END ARCHITEC

24、TURE ART;-DT6.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY DT6 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 DT6; ARCHITECTURE A

25、RT OF DT6 ISSIGNAL 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 CQI=

26、0000 THEN CARRY_OUT=1; ELSE CARRY_OUT=0; END IF; END IF; END PROCESS; CQ=CQI;END ARCHITECTURE ART;-DT10.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DT10 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 DT10; ARCHITECTURE ART OF DT10 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 THENIF

温馨提示

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

评论

0/150

提交评论