EDA课程设计(微波炉定时控制器)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
一、设计题目和要求-----------------------------------------------------------------2
二、设计思路--------------------------------------------------------------------------2
三、单元模块设计--------------------------------------------------------------------3 --------------------------------------------------------------------------------------------8
3.1、FENPIN模块设计-----------------------------------------------------(3,4)
3.2、FIRST模块设计------------------------------------------------------(4,5)
3.3、JIANJISHU模块设计------------------------------------------------(5,6)
3.4、CHOICE和VIEW模块设计------------------------------------------(7,8)
四、硬件实验---------------------------------------------------------------------------8
五、心得体会---------------------------------------------------------------------------9 附页:程序代码------------------------------------------------------------------------10 ---------------------------------------------------------------------------------------------17
一、设计题目和要求
设计题目为:微波炉定时控制器
要求:1、复位开关:
2、启动开关:
3、烹调时间设置:
4、烹调时间显示:
5、七段码测试:
6、启动输出:
7、按TEST键可以测试七段码管,显示为“8888”;
8、设定时间后,按启动键开始烹调,同时七段码显示剩余时间,时间为0
时,显示烹调完成信息“CDEF”
二、设计思路
A.先有一个大概的模块话设计,就如下图:
B:再在上面大模块的基础上进行改进
增加复位端和测试端
复位
测试
C:具体的设计过程:
1、刚开始设计是先完成了FENPIN模块的设计,因为这个模块比较简单。
2、然后是对设初值大模块的设计,在这一部分的设计遇到两方案:
(1)设计四个按钮的初始话模块,四个按钮分别控制秒,十秒,分,十分4个数值的初始化加;
(2)设计两个按钮的初始化模块,两个按钮分别提供一个移位信号和一个加信号;
两个方案都用了一下,发现还好是2号方案比较好,不仅程序上比较简单而且省了很多按钮的使用,比较符合实际应用的要求;
3、在完成了初始话模块的设计之后,接下来就是减计数模块的设计,只要把由初始化模块所提供的数据进行减计数即可;
4、在完成以上三个模块时,程序的已经初见雏形了,然后把这三个模块连接起来,添加上复位和测试按钮就可以了;
5、用动态扫描的方法队数据进行输出,其中在输入数据是使相应的数据进行闪烁。
三.单元模块设计
单元模块设计部分主要有4部分组成:
(一)、FENPIN模块,用于给后面的JIANJISHU模块和VIEW模块提供合适的频率。
(二)、FIRST模块,用于设定微波炉的初试时间而用。
(三)、JIANJISHU模块,配合FENPIN模块提供的时钟频率实现每秒减一的计数。
(四)、CHOICE模块和VIEW模块,利用动态扫描的方法显出对应数字。
3.1 FENPIN模块的设计
FENPIN模块主要利用1Khz的时钟信号进行分频。得到1s的outlck时钟信号(用于后期JIANJISHU模块的使用)和0.5s的screen的时钟信号(用于VIEW的显示闪烁使用)。
输出1s的时钟信号
为数码管的闪烁
提供时钟信号
说明:试验箱上有1Khz,2Khz等多个时钟信号。而在这里采用1Khz的信号使用。
1Khz/1000=1s,所以采用1Khz进行千分频得到1s的信号。
实验波形图:
每秒产生一个时钟脉冲
(程序代码见附录。)
Move此时数码管有输出
Move选中时数码管无输出
3.2 FIRST模块设计
FIRST模块主要用于对时间设定初始值而用,其中设有ABLE和CLK两时钟信号,分别用于外接按钮信号而用,其中CLK用于进行加计数,ABLE用于移位而用。输出o1,o2,o3和o4分别是输出秒,十秒,分,十分。而输出o5是为VIEW实现闪烁而用的。其中的RES和TEST要配合JIANJISHU模块中的RES和TEST同时控制才能有效(具体会在JIANJISHU模块中详细介绍)。
说明:开始设计时,由于没有考虑全面设计了一个有4个按键分别控制秒,十秒,分,十分的方案,因为课设要接近与实际设计,而实际不可能给予如此多的按键,这样不仅占用大量空间而且产品也是非常的不美观,所以之后就改成现在的由ABLE控制移位,再由CLK给予时钟脉冲的方式进行设计,最后发现这样的设计不仅没有上述的缺点更加使我的程序变的更加的简单。
波形图仿真:
每个上升沿都会进行加计数
当res和test“0000”和“8888”
Able在每个脉冲到来是都会进行移位,而o5正好显示出正在加的位数
注意:编写此段代码是要注意秒位和分位都是记从1记到9然后进位自己变成0的,而十秒位和十分位是记到5然后变成0的。
(程序代码见附页)
3.3 JIANJISHU模块的设计
输出初始数据