logo资料库

EDA设计--微波炉定时控制器.doc

第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
资料共18页,剩余部分请下载后查看
目录 一、设计题目和要求-----------------------------------------------------------------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
一、设计题目和要求 设计题目为:微波炉定时控制器 要求:1、复位开关: 2、 启动开关: 3、 烹调时间设置: 4、 烹调时间显示: 5、 七段码测试: 6、 启动输出: 7、 按 TEST 键可以测试七段码管,显示为“8888”; 8、 设定时间后,按启动键开始烹调,同时七段码显示剩余时间,时间为 0 时,显示烹调完成信息“CDEF” 二、设计思路 A.先有一个大概的模块话设计,就如下图: 预设初值 倒计时减计数 输出数据 B:再在上面大模块的基础上进行改进 增加复位端和测试端 复位 测试 预设 初值 倒计时 减计数 输出数据 实现闪烁 C:具体的设计过程: 1、刚开始设计是先完成了 FENPIN 模块的设计,因为这个模块比较简单。 2、然后是对设初值大模块的设计,在这一部分的设计遇到两方案: (1)设计四个按钮的初始话模块,四个按钮分别控制秒,十秒,分,十分 4 个数值的初始化加; 2
(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 的信号。 3
实验波形图: 每秒产生一个时钟脉冲 (程序代码见附录。) Move 此时数码管有输出 Move 选中时数码管无输出 3.2 FIRST 模块设计 FIRST 模块主要用于对时间设定初始值而用,其中设有 ABLE 和 CLK 两时钟信 号,分别用于外接按钮信号而用,其中 CLK 用于进行加计数,ABLE 用于移位而用。 输出 o1,o2,o3 和 o4 分别是输出秒,十秒,分,十分。而输出 o5 是为 VIEW 实现 闪烁而用的。其中的 RES 和 TEST 要配合 JIANJISHU 模块中的 RES 和 TEST 同时控 制才能有效(具体会在 JIANJISHU 模块中详细介绍)。 输出初始数据 说明:开始设计时,由于没有考虑全面设计了一个有 4 个按键分别控制秒,十秒,分, 十分的方案,因为课设要接近与实际设计,而实际不可能给予如此多的按键, 4
这样不仅占用大量空间而且产品也是非常的不美观,所以之后就改成现在的由 ABLE 控制移位,再由 CLK 给予时钟脉冲的方式进行设计,最后发现这样的设 计不仅没有上述的缺点更加使我的程序变的更加的简单。 波形图仿真: 每个上升沿都会进行加计数 当 res 和 test 为零时输出分别是“0000”和“8888” Able 在每个脉冲到来是都会进行移位,而 o5 正好显示出正在加的位数 注意:编写此段代码是要注意秒位和分位都是记从 1 记到 9 然后进位自己变成 0 的, 而十秒位和十分位是记到 5 然后变成 0 的。 (程序代码见附页) 3.3 JIANJISHU 模块的设计 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 开始每秒减一的记时计数; 5
本程序中复位键 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 中提供原始数据 (程序代码见附页) 6
3.4 CHOICE 模块和 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 所指的那位不能对应输出,这样就能达到让相应的数码管闪烁 的效果。 7
波形图: ( 程序代码见附页) 四.硬件实验 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 To Clk1 Clk2 Move Rest Testt Startt Lighto Sel[2] Sel[1] Sel[0] Seg[7] Seg[6] Seg[5] Seg[4] Seg[3] Seg[2] Seg[1] Seg[0] 管脚设置 Location PIN_152 PIN_135 PIN_136 PIN_137 PIN_138 PIN_156 PIN_165 PIN_5 PIN_4 PIN_3 PIN_2 PIN_1 PIN_180 PIN_ 179 PIN_178 PIN_177 PIN_176 PIN_175 I/O Bank I/O Standard 3 3 3 3 3 3 3 1 1 1 1 1 3 3 3 3 3 3 LVTTL LVTTL LVTTL LVTTL LVTTL LVTTL LVTTL LVTTL LVTTL LVTTL LVTTL LVTTL LVTTL LVTTL LVTTL LVTTL LVTTL LVTTL 注释:Clk1:选用的是 1Khz 的信号; Clk2,Move,Rest,Testt:选用的是按钮信号; Startt:使用的是开关信号; Lighto:LED 输出; 8
分享到:
收藏