- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课程设计:三分钟可编程倒计时报警器
目 录
一、设计任务与要求 …………………………………2
二、总体框图 …………………………………………2
三、选择器件 ……………………………………3
1.同步预置四位十进制计数器74LS160 ………………3
2.数码显示器 ………………………………………4
3.二输入与非门 ……………………………………5
4.二输入与门 ………………………………………6
5.非门 ………………………………………6
6.六输入与门 ………………………………………6
7. 555定时器 ………………………………………7
四、功能模块 …………………………………………9
1.秒脉冲发生器………………………………………9
2.秒、分、时计数器 …………………………………9
3.校时电路 …………………………………………11
4.报时电路 …………………………………………13
五、总体设计电路图 …………………………………15
六、心得与总结 ……………………………………17
三分钟可编程倒计时报警器
设计任务与要求
设计任务:三分钟可编程倒计时报警器
设计要求:1.具有可编程及报时的功能,并能够随时显示计数结果。
2.设有外部操作开关,控制计数器实现直接置数、启动和清零等操作。
3.计数器可设置为0~3分钟(即180秒)内任意时段的倒计时。
4.计数器递减计数到零时,数码显示管不能灭灯,同时发出持续发光报警信号。
总体框图
预置数模块:在开启相应开关(setgw、setsw、setbw)后,通过来脉冲计数分别给个位十位百位预置数,使得在启动开关后从此数开始倒计时。
倒计时模块:在启动开关(clk)后,从预置的数开始倒计时,倒计到0时,倒计时结束,此时数码显示管持续不灭灯。另外,可在任意时刻通过控制摁钮实现清零。
报警模块:每倒计到整十秒时,发出一次报警。同时,当倒计时结束时会再次发出报警声,以及报警灯亮起。此时,可通过开关(shutalert)关闭报警灯,报警声,以停止报警。
数码管显示模块:通过对输入信息的判断,选择在哪个数码管上显示哪个图形符号(即数字)。
倒计时模块 数码管显示模块
报警模块
方案一:预置数部分,可以借助Quartus II提供的芯片(如:74LS192,74LS190,74LS160等)完成计数功能。倒计时部分,可以借助Quartus II提供的芯片(如:74LS192等)完成有借位的减法运算。但操作较为繁琐,涉及到的元器件较多,涉及到的问题可能会有芯片是否有所损坏使得设计结果不够理想。
方案二:完全用VHDL语言编写程序下指令,实验数据较为准确,设计结果较为理想,但思考量较大,思维过于复杂。
方案三:将完整的原理图按照功能需求分成几个不同模块,将各个部分在绘制原理图或者用VHDL语言编写程序后进行编译制成可供使用的模块,再借助各个模块绘制总的原理图。这样,总原理图清晰明了,各个模块的功能清晰,且设计结果较为理想。故选择此方案。
三、选择器件
EDA实验箱所使用到的芯片为Altera公司的Cyclone系列FPGA芯片EP1C12Q240C8N。外围接口电路为IO5与蜂鸣器接口相连,IO3与IO_CLK相连,IO9与一个红色发光二极管相连。
四、功能模块
模块一:预置数模块。当遇到上升沿后输出将自动加1。若输出是9再遇到上升沿时将自动变为0。符号如右图。
相应程序如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity count is
port(
clk:in std_logic;
co:out std_logic_vector(3 downto 0));
end entity count;
architecture fun of count is
signal count:std_logic_vector(3 downto 0);
begin
co=count;
process(clk)
begin
if(clkevent and clk=1)then
if(count=1001)then
count=0000;
else
count=count+1;
end if;
end if;
end process;
end fun;
其功能仿真图像为:
根据图像可知,在每次遇到上升沿后输出将自动加
原创力文档


文档评论(0)