三分钟可编程倒计时报警器课程设计

上传人:aa****6 文档编号:29216652 上传时间:2018-01-22 格式:DOC 页数:24 大小:3.30MB
返回 下载 相关 举报
三分钟可编程倒计时报警器课程设计_第1页
第1页 / 共24页
三分钟可编程倒计时报警器课程设计_第2页
第2页 / 共24页
三分钟可编程倒计时报警器课程设计_第3页
第3页 / 共24页
三分钟可编程倒计时报警器课程设计_第4页
第4页 / 共24页
三分钟可编程倒计时报警器课程设计_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《三分钟可编程倒计时报警器课程设计》由会员分享,可在线阅读,更多相关《三分钟可编程倒计时报警器课程设计(24页珍藏版)》请在金锄头文库上搜索。

1、电子课程设计-三分钟可编程倒计时报警器 目 录一、设计任务与要求 2二、总体框图 2三、选择器件 3四、功能模块41.预置数模块42.倒计时模块52.1 个位模块 52.2 十位模块 72.3 百位模块 93.报警模块 104.数码显示模块134.1 分频器模块 134.2 数码管选择控制模块144.3 3_8 译码器模块 164.4 数码管段选模块17 五、总体设计电路图 19六、心得与总结 22三分钟可编程倒计时报警器一、 设计任务与要求设计任务:三分钟可编程倒计时报警器设计要求:1.具有可编程及报时的功能,并能够随时显示计数结果。2.设有外部操作开关,控制计数器实现直接置数、启动和清零等

2、操作。3.计数器可设置为 03 分钟(即 180 秒)内任意时段的倒计时。4.计数器递减计数到零时,数码显示管不能灭灯,同时发出持续发光报警信号。二、 总体框图倒计时预置数数码显示报警预置数模块:在开启相应开关(setgw、setsw、setbw)后,通过来脉冲计数分别给个位十位百位预置数,使得在启动开关后从此数开始倒计时。倒计时模块:在启动开关(clk) 后,从预置的数开始倒计时,倒计到 0 时,倒计时结束,此时数码显示管持续不灭灯。另外,可在任意时刻通过控制摁钮实现清零。报警模块:每倒计到整十秒时,发出一次报警。同时,当倒计时结束时会再次发出报警声,以及报警灯亮起。此时,可通过开关(shu

3、talert)关闭报警灯,报警声,以停止报警。数码显示模块:通过对输入信息的判断,选择在哪个数码管上显示哪个图形符号(即数字) 。倒计时模块 数码显示模块个位十位百位数码管 选择控制38 译码器数码管段选分频器报警模块 每 10 秒报时一次计时结束报警方案一:预置数部分,可以借助 Quartus II 提供的芯片(如:74LS192,74LS190,74LS160 等)完成计数功能。倒计时部分,可以借助Quartus II 提供的芯片(如:74LS192 等)完成有借位的减法运算。但操作较为繁琐,涉及到的元器件较多,涉及到的问题可能会有芯片是否有所损坏使得设计结果不够理想。 方案二:完全用 V

4、HDL 语言编写程序下指令,实验数据较为准确,设计结果较为理想,但思考量较大,思维过于复杂。方案三:将完整的原理图按照功能需求分成几个不同模块,将各个部分在绘制原理图或者用 VHDL 语言编写程序后进行编译制成可供使用的模块,再借助各个模块绘制总的原理图。这样,总原理图清晰明了,各个模块的功能清晰,且设计结果较为理想。故选择此方案。三、选择器件EDA 实验箱所使用到的芯片为 Altera 公司的 Cyclone 系列 FPGA 芯片EP1C12Q240C8N。外围接口电路为 IO5 与蜂鸣器接口相连,IO3 与 IO_CLK 相连,IO9 与一个红色发光二极管相连。LED 灯处于高电平,所以给

5、低电平 LED 灯亮;数码管共阴,给高电平数码管亮;数码管段选为低电平有效。实验板上的按键常处于高电平,按下为低电平。四、功能模块1.预置数模块。当遇到上升沿后输出将自动加 1。若输出是 9 再遇到上升沿时将自动变为 0。符号如右图。 相应程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count isport(clk:in std_logic;co:out std_logic_vector(3 downto 0);end entity count;architecture

6、 fun of count issignal count:std_logic_vector(3 downto 0);beginco=10)THENCOUNT1=99999 THENFRE_N=10)THENCOUNTDAOUTDAOUTDAOUT=bw(3 DOWNTO 0);END CASE;END PROCESS;END FUN;其时序仿真波形为:SEL 输出为 00 时第一个数码管亮显示预置的个位数;SEL 输出为 01 时第二个数码管亮显示预置的十位数;SEL 输出为 10 时第三个数码管亮显示预置的百位数;循环显示。可知仿真图结果正确。4. 3 3_8 译码器模块:译码器电路是控制实

7、验箱 8 个数码管,控制数码管的亮灭。SEL=0 时第一个数码管亮;SEL=1 时第二个数码管亮;SEL=2时第三个数码管亮。其符号如右图所示。3_8 译码器(decode3_8)程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DECODE2_4 ISPORT(SEL:IN STD_LOGIC_VECTOR(1 DOWNTO 0);Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END DECODE2_4;ARCHITECTURE A OF DECODE2

8、_4 ISBEGINQ=WHEN SEL=0 ELSEWHEN SEL=1 ELSEWHEN SEL=2 ELSE; END A;3_8 译码器时序图如下:时序仿真分析:当 SEL=00 时,选择了第一个数码管亮,输出为;当 SEL=10 时,选择了第三个数码管亮,输出为;当 SEL=01 时,选择了第二个数码管,输出为。4.4 数码管段选模块:输入端 NUM3.0为要编译 0 到 9 十进制数的二进制编码,输出对应到数码管显示。数码管段选模块程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;

9、ENTITY DELED ISPORT(NUM:IN STD_LOGIC_VECTOR(3 DOWNTO 0);LED:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END DELED;ARCHITECTURE FUN OF DELED ISBEGINLED=WHEN NUM=0000ELSEWHEN NUM=0001ELSEWHEN NUM=0010ELSEWHEN NUM=0011ELSEWHEN NUM=0100ELSEWHEN NUM=0101ELSEWHEN NUM=0110ELSEWHEN NUM=0111ELSEWHEN NUM=1000ELSEWHEN NU

10、M=1001ELSEWHEN NUM=1010ELSEWHEN NUM=1011ELSEWHEN NUM=1100ELSEWHEN NUM=1101ELSEWHEN NUM=1110ELSEWHEN NUM=1111;END FUN;时序仿真图如下:时序仿真分析:图中显示了从 9 到 0 的数码管对应状态,如下:when num=0000 when num=0001 when num=0010 when num=0011 when num=0100 when num=0101 when num=0110 when num=0111 when num=1000 when num=1001仿真结果

11、正确。五、总体设计电路图1. 整体工作情况:当分别置 setgw、setsw、setbw 为高电平时,通过coclk 输入端口将分别给个位、十位、百位进行异步置数。当通过输入端 clk输入秒脉冲时,个位、十位、百位将按照预定的规则进行减法运算,即 180 秒之内的倒计时。当倒计时到整十秒时报警一发出蜂鸣声进行报时,当倒计时至0 时倒计时结束,报警二发出蜂鸣声以及发光二极管发光。此时可以通过开关shutalert 关闭报警系统。同时,数码管将持续显示 000,直至断电或者重新置数。当摁下摁钮 reset 时,系统将进行异步清零。2. 连接关系:预置模块分别连接个位、十位、百位进行预置,个位、十位

12、、百位的输出均接入数码管选择控制端的输入端,用以选择输出这三个数位上的数。它们的输出端还将接入个位的输出端,以控制其是否进行减法(倒计时)运算。个位的借位输出端接十位的 clk 触发端,它的输出端还将控制报警一的工作状态。十位的借位输出端接百位的 clk 触发端,控制百位的减法运算。Reset 键分别接入个位、十位、百位和数码管选择控制端,可进行异步清零。下图为总体原理图。总体原理图3. 管脚分布图如下:在 EDA 实验箱上验证设计电路的功能,外围接口电路为 IO5 与蜂鸣器接口相连,IO3 与 IO_CLK 相连,IO9 与一个红色发光二极管相连。在多次调试和修改下,功能已趋于完善,与预定的

13、功能已基本一致。以下为部分截图。总体功能仿真图:根据图像可知,通过控制置数端,可分别置数给各位、十位、百位,由置得的数开始倒计时。六、心得与总结经过长达两个星期的设计与思考,最终在 Quartus II 上完成了对倒计时报警器的设计与制作,其间遇到了许多问题,但最后都一一得到解决。现将心得体会总结如下:(一)软件1设计初期要考虑周到,否则后期改进很困难。应该在初期就多思考几个方案,进行比较论证,选择最合适的方案动手设计。总体设计在整个设计过程中非常重要,应该花较多的时间方案确定后,再开始设计。设计时,多使用已学的方法,如列真值表,化简逻辑表达式,要整体考虑,不可看一步,做一步。在整体设计都正确

14、后,再寻求简化的方法。2在设计某些模块的时候无法把握住整体,这时可以先进行小部分功能的实现,在此基础上进行改进,虽然可能会多花一些时间,但这比空想要有效的多。3通过这次对倒计时报警器的设计与制作,让我受益匪浅。让我更深刻的了解和熟悉了 Quartus II 软件和 VHDL 语言以及 EDA、数字电子技术课程,也让我了解了倒计时报警器的原理和设计理念。(二)硬件在硬件操作过程中,我按照管脚连实物图,发现并没有仿真时那么容易实现功能,第一次连完后,数码管并没有数字,在检查了芯片无误后,我发现线路中出现了错误, CLK 端没有输入脉冲,计数器并没有实现减法功能,在重新接线后,终于得以实现功能。在设

15、计过程中,我更进一步地熟悉了数电课上学过各种芯片的结构、工作原理和其具体的使用方法以及对 Quartus II 软件的操作。在连接六十进制的进位及十进制中,我对 74LS192 置数法和清零法也有了更深的了解。在调试电路的过程中出错的主要原因都是程序设定的不够合理以及接线的错误,因此设计的时候要细心,不要出错。我努力将理论中所学的知识灵活地运用起来,并在调试中会遇到各种各样的问题,电路的调试提高了我们解决问题的能力,学会了在设计中独立解决问题,也包括怎样去查找问题。似乎所有的事都得自己新手去操作才会在脑海中留下深刻的印象,这个小小的课程设计让我可以熟练的操作 Quartus II 软件,也了解了不少器件的功能的应用,也加深了对数字电路

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号