可设置数字钟的设计计划书.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
可设置数字钟的设计计划书 一、 设计任务要求 具有时、分、秒计数显示功能(6位LED构成),24小时循环。 具有准确调节小时和分钟以及秒清零的功能(具体有1个或者2个键位来控制,要有操作说明)。 具有整点报时功能,时钟整点报时,并且响铃一分钟(可自定义闪烁方式,要有说明)。 二、设计方案 1、系统功能 (1)具有时、分、秒计数显示功能 (2)具有准确调节小时和分钟以及秒清零的功能 (3)具有整点报时功能 2、操作说明 (1)首先接通电源,数字钟复位,显示00:00:00,开始正常计数 (2)然后对数字中进行调整时间,按下Key 1,秒位清零 (3)再按Key 1 ,分位闪烁,按Key 2,分位加一调整 (4)再按Key 1 ,时位闪烁,按Key 2,时位加一调整 3、系统方案设计说明 该数字钟具有准确的计时功能,计时的时钟信号是1HZ,即秒输入,但是实验箱上的时钟信号都是高频信号,因此需要对其进行分频来产生低频信号。 数字钟用两个键来进行调时,其中按键KEY1按下秒位开始闪烁同时对其进行清零操作,如果再按下KEY1,分位开始闪烁,表示分位可以进行调整,则按下KEY2,每按一下,分钟数加一,分位调整完成以后,再按KEY1,则进入时位调整,时位闪烁,按KEY2,时位加一。在调整时间过程中,用按键来完成的,因此要加去抖模块。 显示是用6位数码管完成,6位数码管循环显示。 整点报时用一个小闹铃来实现。 这些功能小模块需要一个总的控制模块来协调个模块的工作过程。其总模块的硬件原理图如下: 去抖电路 总体硬件原理图 4各功能模块分析说明 (1) 分频器模块 接入的时钟是1KHZ的,因此需要进行分频,产生1HZ的秒信号。此分频过程可经过三个10分频器。每一个十分频器相当于一个5进制计数器,即每经过5个时钟信号,输出电平变换一次,这样原来10个周期就可转换为一个周期,三个10分频器串联起来(可以减小分频误差),就组合为一个1000分频器,把1KHZ的时钟信号变为1HZ的秒输入信号。 另外在进行时间的调整时,用闪烁来确定调整位,此闪烁的时间间隔是400ms,即2.5HZ,因此要对经过第二个分频器出来的信号进行4分频。气分频起的工作原理和十分频器一样。 其程序模块如下: 十分频器程序: module fenpinqi(fin,f10); output f10; reg f10; input fin; //输入时钟信号// reg [7:0] j; always @ (posedge fin )//上升沿触发// begin if (j == 4) begin j = 0; f10 = ~f10; //计数到一半取反// end else begin j = j + 1; end end endmodule 10分频模块图 四分频器程序: module fenpinqi4(fin,f4); output f4; reg f4; input fin; reg [7:0] j; always @ (posedge fin ) begin if (j == 2) begin j = 0; f4= ~f4; end else begin j = j + 1; end end endmodule 4分频模块图 (2) 计数模块 数字钟是时、分、秒的显示,因此计数模块是由两个60进制的计数器来表示秒位和分位,一个24进制的计数器来表示时位。三个计数器级联起来,秒进位的信号接入到分的时钟信号,分的进位信号接入时的计时模块作为时位的时钟输入信号。其程序如下: module sec (clk,mindatah,mindatal,co,rst); //秒计数// input clk,rst; output[3:0] mindatah,mindatal; output co; reg[3:0] mdatah,mdatal; reg cog; always @(posedge clk) begin if(rst==1) begin mdatal=0; mdatah=0; //清零// end else if(mdatal==9) //计数// begin if(mdatah==5) begin mdatal=0; mdatah=0; cog=1; end else begi

文档评论(0)

你好世界 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档