您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 微波炉定时控制器设计
华东交通大学论文报告纸第1页共23页微波炉定时控制器摘要:本文针对日常生活用品微波炉进行设计,使用VHDL语言实现多种常用功能,然后进行组合拼装,形成一个具有一定功能的硬件。关键词:EDA,VHDL硬件描述语言,微波炉定时控制器。华东交通大学论文报告纸第2页共23页目录一、设计题目和要求-----------------------------------------------------------------3二、方案分析与方案比较-----------------------------------------------------------4三、单元模块设计--------------------------------------------------------------------63.1、FENPIN模块设计-------------------------------------------------------63.2、FIRST模块设计--------------------------------------------------------73.3、JIANJISHU模块设计--------------------------------------------------83.4、CHOICE和VIEW模块设计--------------------------------------------10四、硬件实验-------------------------------------------------------------------------12五、收获与体会----------------------------------------------------------------------14附页:程序代码---------------------------------------------------------------------15参考文献-------------------------------------------------------------------------------23华东交通大学论文报告纸第3页共23页一、设计题目和要求设计题目为:微波炉定时控制器设计要求:1、复位开关:2、启动开关:3、烹调时间设置:4、烹调时间显示:5、七段码测试:6、启动输出:7、按TEST键可以测试七段码管,显示为“8888”;8、设定时间后,按启动键开始烹调,同时七段码显示剩余时间,时间为0时,显示烹调完成信息“CDEF”华东交通大学论文报告纸第4页共23页二、方案分析与方案比较方案一:刚开始准备用状态机做,鉴于题目的要求应该有五个状态,状态图为SET_CLOCK烹调时间设置状态完成信息显示状态DONE/LD_DONE减数定时状态复位状态数码管测试状态LD_DONE/COOKOTHERWISE/ALLOUTPUTS=0START&DONE&TEST&SET_T/COOKRESETTEST/LD_8888X/LD_8888SET_T&TEST/LD_CLKX/LD_CLKX/LD_DONEIDLEDONE_MSGTIMERLAMP_TEST注:标线上文字为输入/输出此方案的缺点是:在设定时间时需要四个按钮分别控制秒,十秒,分,十分4个数值的初始化加,另外有些状态转换不是很稳定,效果很难在实验板看出来,刚开始试了一下,没有成功;方案二:用一般的VHDL语言写,没有牵涉到状态,反而比较简单,而且设定时间可以采用两个按钮分别提供一个移位信号和一个加信号(这与实际比较相符),管脚绑定简单(特别是数码管),这里采用的是动态扫描位选输出数据,不需对四个数码管都进行绑定;综合比较发现还是方案二好,不仅程序简单,而且符合实际。华东交通大学论文报告纸第5页共23页A.先有一个大概的模块化设计,就如下图:预设初值倒计时减计数输出数据B:再在上面大模块的基础上进行改进增加复位端和测试端复位输出数据预设倒计时实现闪烁初值减计数测试C:具体的设计过程:1、刚开始设计是先完成了FENPIN模块的设计,因为这个模块比较简单。2、然后是对设初值大模块的设计,在这一部分的设计遇到两方案:(1)设计四个按钮的初始话模块,四个按钮分别控制秒,十秒,分,十分4个数值的初始化加;(2)设计两个按钮的初始化模块,两个按钮分别提供一个移位信号和一个加信号;两个方案都用了一下,发现还好是2号方案比较好,不仅程序上比较简单而且省了很多按钮的使用,比较符合实际应用的要求;3、在完成了初始化模块的设计之后,接下来就是减计数模块的设计,只要把由初始化模块所提供的数据进行减计数即可;4、在完成以上三个模块时,程序的已经初见雏形了,然后把这三个模块连接起来,添加上复位和测试按钮就可以了;5、用动态扫描的方法队数据进行输出,其中在输入数据是使相应的数据进行闪烁。华东交通大学论文报告纸第6页共23页三.单元模块设计单元模块设计部分主要有4部分组成:(一)、FENPIN模块,用于给后面的JIANJISHU模块和VIEW模块提供合适的频率。(二)、FIRST模块,用于设定微波炉的初试时间而用。(三)、JIANJISHU模块,配合FENPIN模块提供的时钟频率实现每秒减一的计数。(四)、CHOICE模块和VIEW模块,利用动态扫描的方法显出对应数字。3.1FENPIN模块的设计FENPIN模块主要利用1Khz的时钟信号进行分频。得到1s的outclk时钟信号(用于后期JIANJISHU模块的使用)和0.5s的screen的时钟信号(用于VIEW的显示闪烁使用)。说明:试验箱上有1Khz,2Khz等多个时钟信号。而在这里采用1Khz的信号使用。1Khz/1000=1s,所以采用1Khz进行千分频得到1s的信号。输出1s的时钟信号为数码管的闪烁提供时钟信号华东交通大学论文报告纸第7页共23页实验波形图:每秒产生一个时钟脉冲(程序代码见附录。)Move此时数码管有输出Move选中时数码管无输出3.2FIRST模块设计FIRST模块主要用于对时间设定初始值而用,其中设有ABLE和CLK两时钟信号,分别用于外接按钮信号而用,其中CLK用于进行加计数,ABLE用于移位而用。输出o1,o2,o3和o4分别是输出秒,十秒,分,十分。而输出o5是为VIEW实现闪烁而用的。其中的RES和TEST要配合JIANJISHU模块中的RES和TEST同时控制才能有效(具体会在JIANJISHU模块中详细介绍)。说明:开始设计时,由于没有考虑全面设计了一个有4个按键分别控制秒,十秒,分,输出初始数据华东交通大学论文报告纸第8页共23页十分的方案,因为课设要接近与实际设计,而实际不可能给予如此多的按键,这样不仅占用大量空间而且产品也是非常的不美观,所以之后就改成现在的由ABLE控制移位,再由CLK给予时钟脉冲的方式进行设计,最后发现这样的设计不仅没有上述的缺点更加使我的程序变的更加的简单。波形图仿真:每个上升沿都会进行加计数当res和test为零时输出分别是“0000”和“8888”Able在每个脉冲到来是都会进行移位,而o5正好显示出正在加的位数注意:编写此段代码是要注意秒位和分位都是记从1记到9然后进位自己变成0的,而十秒位和十分位是记到5然后变成0的。(程序代码见附页)3.3JIANJISHU模块的设计JIANJISHU模块的主要用于对FIRST的数据进行选择性的处理和输出:(一)、当JIANJISHU模块中的res=0时,由于res作为输入同样也连接这FRIST模块中的res,他们是由一个输入共同控制的,所以此时输出的就是“0000”;(二)、当JIANJISHU模块中的test=0时,同res一样的道理,此时输出为“8888”;(三)、当q4=15(输出为F)或start=0时,LED就不会亮了,表示工作完成或处于等待状态,此时不对FIRST模块中的数据进行任何处理就直接输出;(四)、在以上条件都不满足的情况下,若此时start=1,那么JIANJISHU模块才开始了真正的工作状态,即配合FENPIN模块中时钟outclk开始每秒减一的记时计数;华东交通大学论文报告纸第9页共23页本程序中复位键res和test的详细说明:这里的res和test和模块FRIST中的res和test是用同一个控制端,而且JIANJISHU的res和test是必不可少的。因为每次进行计数完后由于是利用信号进行减计数,在记完一次数之后q1,q2,q3和q4都会保持最后一次的状态,如果不及时清零的话,那么下一次的res,test以及加计数就是只能对前一级的输入进行复位和测试,输出的将是前一级的各个位数减去q1,q2,q3和q4的值,所以在JIANJISHU模块中进行清零是十分重要的。波形图仿真:输入初值为“0015”当start=1时开始配合clks的始终上升沿开始减计数在各位都记到0时,就数码管就会显示“FEDC”同时LED熄灭这就是上次提到的复位是清零了所有的中间信号,这样输出为FIRST中提供原始数据(程序代码见附页)华东交通大学论文报告纸第10页共23页3.4CHOICE模块和VIEW模块CHOICE模块和VIEW模块必须放在一起进行使用,CHOICE模块是进行数据选则而使用的,VIEW模块是用于在相应的为进行输出对应的数,两者和起来就是一个动态扫描的过程。A:CHOICE模块;说明:这里的clk时钟信号是使用和FENPIN模块中一样的时钟信号(1Khz),因为人的眼睛对时间的分辨为20个微秒,用1Khz的信号完全能满足这样的要求;要注意CHOICE有两个输出,o2显然输出的是对应的数据信号,而o1要输出的是一个位选信号,是为下一个模块VIEW显示而用。B:VIEW模块;说明:f1是接受位信号用的,f2是接受数据而用的。详细说明一下screen和able的作用:Screen是有FENPIN模块通过对时钟信号分频得到的,当在模块FRIST选中某一进行加数初始化是,VIEW就可以在时钟screen在为1是正常输出able所指的那位,当screen为0时,able所指的那位不能对应输出,这样就能达到让相应的数码管闪烁的效果。华东交通大学论文报告纸第11页共23页波形图:(程序代码见附页)华东交通大学论文报告纸第12页共23页四.硬件实验管脚设置注释:Clk1:选用的是1Khz的信号;Clk2,Move,Rest,Testt:选用的是按钮信号;Startt:使用的是开关信号;Lighto:LED输出;华东交通大学论文报告纸第13页共23页整体仿真波形实验结果:本设计实现了要求的所有功能,有复位开关,启动开关。按TEST键可以测试七段数码管,显示为“8888”。可以对烹调时间进行设置,以及烹调时间可以在数码管上显示出来。当随意设置一个烹调时间时,按下启动键时,数码管上时间为烹调完成还需要的时间,当时间减少到0000时,即烹调完成时,数码管显示DONE,表明烹调已完成。华东交通大学论文报告纸第14页共23页五、收获与体会这一个多星期以来我们都在进行这次的课程设计。通过这次课程设计我感觉自己学到了许多,也提高了我的动手能力。从一选到这个设计题目后我就开始紧张的工作,上网查资料,到图书馆查找有关的书籍,以及最后确定设计方法及设计思路。由于在宿舍有电脑,所以工作起来也方便了许多。刚开始主要在自己电脑上运行程序,查找错误,检验自己的设计思路及方法是否正确。最后几天主要到实验室用实验板进行操作,最后顺利实现了设计要求的功能。在整个的设计过程中现在回头好好回想一下我觉得还是有很多不足的,做任何事情起步的时候就应该有一个全局观,但是刚开始由于我没有考虑完全,在FIRST模块种设计了有四个按键控制的初始化程序,之后发现这样不仅程序非常的繁琐,而且这种课设应该和实际好好联系一下,有谁家的微波炉就光是刚开始设定初值都有这么多按钮,那么不仅难看而且比较耗资源,使用也不
本文标题:微波炉定时控制器设计
链接地址:https://www.777doc.com/doc-4350142 .html