- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
目 录
数字系统课程设计 1
一、题目要求 1
1、功能 1
2、工作介绍 1
二、设计方案 1
三、模块实现及代码 1
1、分频模块 1
2、响铃模块 4
3、数码管显示模块 8
4、流水灯显示模块 11
5、主控模块 12
6、消抖模块: 28
四、仿真分析 32
五、实物展示 34
六、实验总结和感想 36
1、实验错误排查和解决 37
2、 实验感想 37
一、题目要求
本次设计的是three star watch,它所具有的功能和具体的工作介绍如下:
1、功能
1)具有显示年、月、日、时、分、秒的功能,能准确显示时间
2)能够手动设置时间、闹钟。
3)具有闹钟功能,可以设置闹钟的时间,然后再实际时间与设定时间相等是闹钟响,并有闹钟开关,可控制其是否响,闹钟响时伴有流水灯效果。
4)具有秒表功能,可以累计计时
2、工作介绍
此电子时钟开机后即会进入原始状态(全0),按下s3即会显示初始时间,按下s5一次即会显示时分,再按下s5即会显示秒,再按下s5即会显示闹钟,再按下s5即会显示秒表。
设置秒表:进入秒表界面之后,按下s4后,秒表开始计数,再按下s4后,秒表停止计数。再按下s4,秒表复位。
设置日期、时间:在相应的显示界面,按下s4后,前两位数码管会跳动,此时为可设置状态,按下s5可调整时间,再按下s4,后两位跳动,此时按下s5进行调整,再按下s4即可确定。
设置闹钟:进入闹钟界面后,调整方法跟设置时间的方法一样。打开拨盘开关s1,d3灯亮表示闹钟处于开启状态。到达指定时间之后,闹钟响,流水灯跳动。关闭拨盘开关s1,d3灯灭表示闹钟处于关闭状态。
二、设计方案
设计一个电子手表,必然要用到计时器,而需要设置时间和闹钟,又需要控制器来控制系统所处的状态。我们采用外部一个按键来切换系统的状态,用另一个按键来调整时间和启动秒表,再有一个按键来确认操作,并返回显示状态,继续等待命令。在控制器中,需要接受外部信号,并给出信号给计时器,使其做出相应的动作。
三、模块实现及代码
本设计主要分成分频模块,响铃模块,数码管显示模块,流水灯显示模块,主控模块和消抖模块。各个模块的分析和代码如下:
1、分频模块
此模块主要通过连接外部50MHz时钟信号来控制计数频率,使其产生不同频率的信号,用来进行显示时间和日期。只要检测时钟上升沿到来,计数器就加1,直至计到相应的数字,又从0开始计时。
代码如下:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
--Frequency Divide
entity clkdiv is
port(
clk_50MHz:in std_logic;
clk_2KHz:out std_logic;
clk_100Hz:out std_logic;
clk_1Hz:out std_logic;
clk_4Hz:out std_logic_vector(7 downto 0);
clk_4Hz2:out std_logic;
clk_xHz:out std_logic
);
end clkdiv;
architecture behav of clkdiv is
begin
process(clk_50MHz)
VARIABLE time_flag: integer RANGE 0 TO 500000; --100HZ
VARIABLE time_flag1: integer RANGE 0 TO --1HZ
VARIABLE time_flag2:integer RANGE 0 TO 25000; --2KHZ
VARIABLE time_flag3: integer RANGE 0 TO --4HZ
VARIABLE time_flag4: integer RANGE 0 TO 5000000; --10HZ
begin
if(rising_edge(clk_50MHz) )then
time_flag:=time_flag+1;
time_flag1:=time_flag1+1;
time_flag2:=time_flag2+1;
time_flag3:=time_flag3+1;
您可能关注的文档
最近下载
- 2023-2024学年上海市长宁区高中数学人教A版选修二第四章-数列章节测试-19-含解析.pdf VIP
- 大学英语六级词汇汇总.pdf VIP
- 乡愁英文版.pptx
- 2023-2024学年江苏省南通市高中数学人教A版选修二第四章-数列章节测试-19-含解析.pdf
- 2022年黑龙江省大庆市中考道德与法治试卷(word精校版).docx
- JTT329-2010 公路桥梁预应力钢绞线用锚具、夹具和连接器.docx VIP
- 水电站大坝主体混凝土施工组织设计.doc
- 2023-2024学年北京市西城区高中数学人教A版选修二第四章-数列章节测试-9-含解析.pdf
- 20秋新疆电大一体化 社会保障学 (50627)章节测验1-24答案.pdf
- 2023年全国乙卷理科综合高考试卷(原卷+答案).pdf
文档评论(0)