网站大量收购独家精品文档,联系QQ:2885784924

数字电路课程设计-基于DE2的数字钟设计报告.doc

数字电路课程设计-基于DE2的数字钟设计报告.doc

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字电路课程设计-基于DE2的数字钟设计报告

题目:数字钟 1 设计要求 该数字钟具有如下六种功能: (1)具有‘时’、‘分’、‘秒’的十进制数字显示(小时从00~23)的计时器(具有清零功能和设置起始时间功能); (2)具有手动校时、校分、校秒的功能,利用DE2 Key键,分别对每一个数码管进行校时(校正模式下,时钟处于停滞状态),校时之后的时间可以通过开关赋给24小时计数器模块和倒计时模块; (3)定时与闹钟功能,能在设定的时间发出闹铃声(用开发板上红色的LED灯全亮来表示),程序中实现闹铃30秒; (4)能进行零点报时,要求发出仿中央人民广播电台的整点报时信号,即从23时59分50秒起,每隔2秒钟发出一次低音“嘟”的信号,连续5次,最后一次要求高音“嘀”的信号,此信号结束即达到零点(用开发板上的绿色LED灯亮来表示); (5)设计一个秒表,显示1%秒、60秒、手动停止,手动清零; (6)设计一个倒计时,显示小时、分钟、秒、%1秒,可清零,可设置起始时间。 2 设计分析及系统方案设计 系统总共有5个状态,分别对应设计要求中的 (1)24小时计数器 (2)时钟校准 (3)闹铃 (4)倒计时 (5)秒表 程序开始利用50MHz的时钟分别构造1Hz的时钟和100Hz的时钟。先用50MHz时钟构造模500000计数器,用作分频产生100HZ信号,然后用100HZ信号构造模100计数器,用作分频产生1HZ信号,从而构造出周期是1秒和0.01秒的时钟。 时间显示 此部分是用1HZ的时钟驱动秒的个位,然后通过进位关系分别带动其余5位时间,从而完成时间显示功能。当清零位置‘0’时,时间一直显示为0。 手动校时 此部分通过三个DE2的KEY按键来实现。第一个是状态转换按键,通过它 来将状态转换到校时状态;第二个是校准位置选择按键,通过它来选择此时校准哪一位;第三个是对所选位置进行加一的按键。设置好时间之后可以通过两个开关分别将设置好的时间送到正常显示模块和倒计时模块。 闹铃功能 此部分通过和手动校时部分相同的操作过程来设置闹铃,系统提供一个可以打开和关闭闹铃的开关。闹铃部分的信号是一个单独的信号,对该信号的设置并不影响时钟的正常运行。当闹铃的小时、分钟和秒的信号分别和时钟的小时、分钟和秒的信号对应相等时,闹铃启动,进行30秒的闹铃提醒。 零点报时 在正常显示24小时的状态中,当时间信号运行到23:59:50时,开始零点报时,程序中以驱动绿色LED灯亮来代表。 秒表功能 此部分由100HZ的时钟驱动%1秒位,通过进位关系分别带动其余7位时间完成计时功能。秒表的信号是一个单独的信号,使用秒表并不影响时钟的正常运行。对秒表可以进行清零和暂停操作,通过两个开关来实现。 (6)倒计时功能 此部分就是24小时正常显示模块的逆过程。用100HZ的时钟驱动%1秒的个位,然后通过退位关系分别带动其余7位完成倒计时功能。倒计时的信号为独立的信号,使用倒计时并不影响时钟的正常运行。倒计时设有清零位,用开关控制。 数字钟原理框图如下: 3系统以及模块硬件电路设计 (1)输入信号 clk0:系统时钟(50MHZ) state:状态转换按键 positionselect:位置选择按键 jiayi:校准、设闹钟时对所选的位进行加一的按键 queding:校时之后的确定开关 queding1:设置倒计时之后再确定开关 kainaozhong:闹钟开关控制 qingling: 秒表清零开关 zanting:秒表暂停开关 qingling1: 正常显示的清零开关 qingling2:倒计时的清零开关 (2)输出信号 输出到数码管显示: bighour:out std_logic_vector(6 downto 0); --时针十位 smallhour:out std_logic_vector(6 downto 0); --时针个位 bigminute:out std_logic_vector(6 downto 0); --分针十位 smallminute:out std_logic_vector(6 downto 0); --分针个位 bigsecond:out std_logic_vector(6 downto 0); --秒针十位 smallsecond:out std_logic_vector(6 downto 0); --秒针个位 bigpercentsecond:out std_logic_vector(6 downto 0); --%1秒十位

文档评论(0)

138****7331 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档