实验11数字时钟.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验11数字时钟

数字时钟 实验目的 学习数字时钟的硬件设计; 实验原理 一个完整的时钟应由3部分组成:秒脉冲发生器、计数显示部分和时钟调整部分。一个时钟的准确与否主要取决于秒脉冲的精确度。为了保证计时准确,我们对48MHz系统时钟进行分频,得到1Hz的秒脉冲。至于显示部分与LED数码管原理相同,而对于时钟调整部分可以自由发挥。本实验的只实现暂停、清零基本功能。 因涉及到按键和显示,显示需要400Hz左右的扫描显示频率,按键需要200Hz的消抖扫描键盘频率。故48MHz的系统时钟,先分频到400Hz,再分频到200Hz,然后分频到1Hz。 时钟就是涉及到计数器而已。需要60进制和24进制的计数器,且显示的数值是十进制。为了方便起见,我们设计10进制和6进制的计数器组合成60进制的计数器;而24进制计数器的处理就有点小技巧,数字电路都是二进制表示,4位组合在一起就是16进制。我们把24进制用一个8位的2进制表示,其高4位为小时的十位数,低4为为小时的个位数。一般情况下的计数器,个位数会0→1...→9→A→B...→F→0,循环计数,如何实现0→1...→9→0的循环计数呢?计数器本身是每个clock,累加器加1,我们在低4位等于9时要跳变到X10,这时累加器不是加“1”而是加了“7”。累加器本身是16进制,只不过跳过了A~F”23”,是即清零;不是再判断累加器的低4位是否为9,如是则累加器加7,不是则加1。同样60进制的计数器也可以这样处理。 既然带有暂停、清零基本功能,那么计数器本身就需要带有异步reset和同步enable功能。需要说明的是计数器的enable功能同步和异步使能其结果一样,但是在HDL语言中,在沿触发前只能有一个if语句,故此处使用同步enable功能。一般情况下,数字电路的同步和异步是相对于时钟沿来说的,同步复位功能就是在沿触发时,若复位有效,才进行复位,和时钟“同步”;而异步复位功能就是一旦复位有效,就马上进行复位,和时钟沿到来与否无关。体现在HDL语言中就是复位功能的if语句在沿触发判断语句前(异步)或后(同步)。 实验步骤 新建工程 新建文件夹,在该文件夹下新建工程clock。 编写低层HDL文件 编写带异步复位、同步使能、带进位的10进制计数器HDL文件。 编写带异步复位、同步使能、带进位的6进制计数器HDL文件。 编写带异步复位、同步使能、带进位的24进制计数器HDL文件,实现小时显示功能。 按键消抖模块。 扫描显示模块。 分频模块。 编写顶层原理图文件 编写顶层原理图文件clock,各个模块封装后的元件符号添加到该原理图文件中。 并设定为顶层文件,进行编译,如有错误,纠正直至成功为止。 锁定管脚 按键key1控制enable,key2控制reset。 按表 锁定管脚。 并重新进行编译,把管脚信息编译到下载文件中。 下载 下载后,数字时钟效果。并观察复位和使能键的功能。 修改程序完成如下功能 数码管1、2显示小时、数码3显示“-”,数码管4、5显示分钟,数码6显示“-”,数码管7、显示秒。显示过程中,数码管6每秒闪烁一次,且量灭时间均为0.5秒。 提示:可以有多种方法实现数码“-”及其闪烁功能。因译码显示电路不显示A~F,故可以把译码显示电路的译码规则改变一下,在A~F的任意两个输入情况下,分别译码出“-”和全灭的状态即可。如设译码电路输入Din为”1110”即14时,译码显示为“-”,译码电路输入Din为”1111”即15时,译码显示为即不显示。数码管3需要一直显示“-”,故32位的扫描显示数值对应数码管3的四位二进制数一直赋值为“1110”;数码管6需要闪烁显示“-”,故32位的扫描显示数值对应数码管6的四位二进制数0.5秒赋值为“1110”,0.5秒赋值为“1111”,使用一个二选一电路,选择信号为1Hz(占空比1:1)的秒脉冲信号即可完成,其原理图如图11.1所示。闪烁功能也可以利用段码完成,把数码管6的段码和占空比为1:1的1Hz秒脉冲信号相“或”即可完成(此时不需要在译码显示电路译码出全灭的状态)。 图11.1 数字时钟原理图 如有可能,增加闹钟、秒表、调时功能,并且尽量使用较少的按键。 实验参考程序 程序清单 cnt10.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY cnt10 IS PORT(clk :IN STD_LOGIC; en,rst :IN STD_LOGIC; cnt :OUT STD_LOGIC_VECTOR(3 DOWNTO

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档