已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
信息与通信工程学院数字电路与逻辑设计实验题目:基于VHDL语言的数字钟设计班级:姓 名:学号:日期: 指 导 教 师: 一.摘要数字钟是一个将“时”、“分”、“秒”显示于人的视觉器官的计时装置。它的基本功能是计时,计时周期为24小时,显示满刻度23时59分59秒;或者计时周期为12小时并配有上下午指示,显示满刻度为11时59分59秒,通过六个七段数码管显示出来。本实验主要在理论分析和具体的软硬件实现上,基于VHDL语言编写源代码,使用软件Quartus II 进行处理,再配合具体电路连接,实现一个多功能的数字钟。关键词:数字钟;VHDL语言;七段数码管 2 设计任务要求 设计实现一个数字钟。 1.24小时制,显示刻度从0:0:0到23:59:59 。 2.12小时制,显示刻度从0:0:0到11:59:59 。 3.12/24小时制可切换,12小时制下上下午有不同显示(上午发光二极管不亮, 下午发光二极管亮)。 4.可手动校对时间,能对时和分进行校正。 5.整点报时功能。 6.闹铃功能,可设置闹铃时间,当计时到预定时间时,蜂鸣器发出闹铃信号, 闹铃时间为5秒, 可提前终止闹铃。 7.可认为设置时间为倒计时模式 8.可切到屏保模式,六个数码管显示为“supper”字样。3 设计思路和总体设计框图 1.设计思路 程序设计主要分为四个模块,第一部分,做分频器,分出一秒的时钟用来计数,再分出一个中频时钟用来扫描显示数码管,我选择的频率是50kHZ;第二部分,做计数器,秒随时钟沿计数进1,分钟随着秒计数60次进一,而小时,由于有12/24小时制的切换,时的计数有两个信号来进行,一个信号hour1是分60进一在0到23循环计数,另一个信号hour2是分60进一在0到11循环计数;第三部分,做扫描显示六个七段数码管,通过选通信号6矢量cat来依次使六个数码管亮,数码管每两位对应相应的时分秒;第四部分,其他输入输出单元,比如数字钟的时间修正,闹铃等,这些都是基于前三个部分,做起来难度不大。 设计的关键是做好计数器和数码管显示,这是本实验最核心的部分。 2.总体设计框图拨码开关按键其他数码管蜂鸣器译码器计数器控制电路分频器1时钟校时分频器24 使用的硬件清单 maxII可编程器件EPM1270T144C5,6个共阴极7段数码管,一个频率为50MHZ的时钟,一个发光二极管,两个按键,4个拨码开关,一个蜂鸣器。5 程序的状态转移图和逻辑流程图 状态转移图 屏保 fix namename 校时 显示 24时计数fixchclarm 闹铃 12时计数ch逻辑流程图 启动 分频 计数 调时 校时 是 否 响铃1 整点 是否 响铃2 定时 闹钟 是 是否 显示6 完整的源程序 6数码管显示时钟,带调时功能,能设置闹钟,闹钟响可人为停止,整点报时,12/24小时制手动切换,可人为设置时间为倒计时,并修正了一个11:59:59(或23:59:59)跳变到00:00:00的bug(即11:59:59跳变到00:00:00时会先跳到11:00:00再跳到00:00:00的错误),不足是防抖动设计缺少经验。 -made by supperlibrary ieee; use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity memclock is port(clk:in std_logic;mfix,hfix:in std_logic;change:in std_logic;last:in std_logic;ld0:out std_logic;name :in std_logic;alarm:in std_logic;cat:out std_logic_vector(5 downto 0);spk:out std_logic;light:out std_logic_vector(6 downto 0);end memclock; architecture behave of memclock issignal temp:integer range 0 to 15;signal j:integer range 0 to 5;signal clk1,clk2:std_logic;signal minute:integer range 0 to 59;signal second:integer range 0 to 59;signal hour,hour1:integer range 0 to 23;signal hour2:integer range 0 to 11;signal h0,h1,m0,m1,s0,s1:integer range 0 to 15;signal tmp1:integer range 0 to 499999999;signal tmp2:integer range 0 to 999;signal ho:integer range 0 to 23;signal min:integer range 0 to 59;begin p0:process(clk)beginif(clkevent and clk=1)thenif tmp1=49999999 thentmp1=0;elsetmp1=tmp1+1;end if;if(tmp2=999) thentmp2=0;elsetmp2=tmp2+1;end if;end if;end process; p5:process(tmp1)beginif tmp1=49999999 thenclk1=1;elseclk1=0;end if;if tmp2=999 thenclk2=1;elseclk2=0;end if;end process; p1:process(clk1)begin if(clk1event and clk1=1) then if(last=1) then-back to the time .if (second=0) thensecond=59;if(minute=0) thenminute=59;hour1=hour1-1;if(hour1=0) thenhour1=23;end if;hour2=hour2-1;if(hour2=0) thenhour2=11;end if;elseminute=minute-1;end if;elsesecond=second-1;end if; elseif (second=59) then-normal time rulessecond=0;if(minute=59) thenminute=0;hour1=hour1+1;if(hour1=23) thenhour1=0;end if;hour2=hour2+1;if(hour2=11) thenhour2=0;end if;elseminute=minute+1;end if;elsesecond=second+1;end if; end if; if(change=1)then-12/24 style changeif (hour2=23 and minute=59 and second=59) thenhour=0;elsehour11) thenld0=1;elseld0=0;end if;ElseIf (hour1=23 and minute=59 and second) thenhour1=0;elsehour=hour1;end if;ld0=0;end if; if(alarm=0) then-alarm clockif(mfix =1) then-minute changeif(minute=59) thenminute=0;elseminute=minute+1;end if;end if; if(hfix=1) then-hour changeif(hour1=23) thenhour1=0;elsehour1=hour1+1;end if;if(hour2=11)thenhour2=0;elsehour2=hour2+1;end if;end if; elseif(mfix =1) then-alarm min changeif(min=59) thenmin=0;elsemin=min+1;end if;end if; if(hfix=1) then-alarm ho changeif(ho=23) thenho=0;elseho=ho+1;end if;end if; end if; if(minute=0 and second3) then-right time ringspk=1;elsif(minute=min and hour=ho and second 5) then-alarm clockif(alarm=1) thenspk=0;elsif(alarm=0)thenspk=1;end if;elsespk=0;end if; end if;end process; p2:process(clk2)-encoderbeginif(clk2event and clk2=1) thenif(j=5) then j=0;elsej=j+1;end if; if(alarm=0 and name=0) then-show alarm timeh0=(hour-h1)/10;H1=hour rem 10;M0=(minute-m1)/10;M1=minute rem 10;S0=(second-s1)/10;S1=second rem 10;elsif(alarm=1and name=0) thenh0=(ho-h1)/10;H1=ho rem 10;M0=(min-m1)/10;M1=min rem 10;S0=0;S1=0;elsif(name=1) thenh0=10;h1=11;m0=12;m1=13;s0=14;s1cat=011111;tempcat=101111;tempcat=110111;tempcat=111011;tempcat=111101;tempcat=111110;templightlightlightlightlightlightlightlightlightlightlightlightlightlightlightlightlight=0000000;End case; end if;end process; end behave;-made by liaoning7 时序仿真波形图仿真的部分,之前已经说过,计数器和数码管显示是本实验核心的部分,所以将这两部分做下仿真,仿真得到预期的效果,再加入分频器下载到实验板上进行调试,之后再加入其他输入输出的功能。计数器仿真:观察时分秒的进制是否正确。数码管仿真:观察数码管的显示是否正确。8 故障和故障分析故障1:验收时出现的bug,在11:59:59跳到00:00:00时会先显示11:00:00 再显示00:00:00。解决办法:由于时的跳变比分秒慢一个时钟沿,导致这样的错误。用补丁的办法解决,即我承认计数的标准算法在这个时刻是有漏洞的,那么我在算法外附加一个条件使它能弥补这一漏洞。在计数结束后,加一个判断条件,假如在时钟沿来临时计数值是11,59,59,那么直接将计数值都归零,这样就可以很好的解决这个bug。故障2:数码管显示闪烁太快,看不清显示的数值。解决办法:这是分频的问题,闪烁太快说明频率太高,应增大分频系数。故障3:数码管显示秒是每次跳两秒,而不是跳1秒。解决办法:计数算法没有问题,数码管显示模块有时钟沿的冲突导致,可通过修改数码管扫描的分频来解决,需要仔细的调试。9 实验心得与总结 在这次数字系统综合实验中,我设计并实现了数字钟这一课题,在基本功能的基础上增添了一些有意思的附加功能,在出现bug后也迅速的找到了解决的办法,从这方面上说,这次实验我还是做的不错的。 同时,反思这次实验中出现的问题,还是暴露了自己各方面的问题:1.仿真做的不是太好,对仿真的理解不深,说明自己在仿真上的经验还是不够。2. 编程语言的理解不深,在编程过程中多次因为琐碎的语法问题耽误了很多宝贵的实验时间。3. 没有充分面向硬件进行设计,占用资源过多。4. 按键的防抖设计没有做充分的评估,导致验收时的操作并不尽如人意。以上的问题,都是我宝贵的收获,是我必须深刻总结并且在以后的学习实验中厄待解决的,只有这样,我才能有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 代工免责协议书模板
- 广州市花都区人民法院2025年下半年公开招聘政府雇员工作易考易错模拟试题(共500题)试卷后附参考答案
- 医疗服务外包协议书
- 校园高利贷合同范本
- 广东惠州博罗县中小企业管理局招聘政府购买服务岗位工作人员易考易错模拟试题(共500题)试卷后附参考答案
- 公司提供宿舍协议书
- 企业消防联动协议书
- 山东日照市住房公积金管理中心2025年下半年招考工作人员易考易错模拟试题(共500题)试卷后附参考答案
- 宝鸡石油钢管限责任公司博士后科研工作站招考易考易错模拟试题(共500题)试卷后附参考答案
- 不锈钢安装合同范本
- 【MOOC】民事诉讼法学-西南政法大学 中国大学慕课MOOC答案
- 《民航安全检查(安检技能实操)》课件-第三章 航空安全保卫法律、法规知识
- 通识写作:怎样进行学术表达学习通超星期末考试答案章节答案2024年
- 粮油食材配送投标方案(大米食用油食材配送服务投标方案)(技术方案)
- 《全面质量管理》习题集(含答案)
- GB/T 44193-2024全国一体化政务服务平台一网通办基本要求
- 手术室竞选护士长
- 学校食堂冰箱清洗、除霜记录
- 叠加定理课件
- 公共政策导论全套教学课件
- 2024年青海电工考试题库电工高级工考试题库(全国通用)
评论
0/150
提交评论