智能闹钟整点报时系统的设计总汇.pptVIP

  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文档。上传文档
查看更多
题目:智能闹钟整点报时系统的设计 一、大作业摘要 普通的闹钟只能用来定时响铃,在快要到时间的时候不能给人们提醒作用,是人们心中没有那么强烈的时间观念,经常使人猝不及防。那么,我想要解决的问题来了,怎样才能让人们更清楚的确定目前处于的时间段, 我在普通闹钟定时响铃的基础上增加了整点报时的功能。 二、设计的背景、目的和意义 本次设计以智能闹铃为主,实现时钟计数:完成时分、秒的正确计时并且显示所计的数字;对秒、分——60进制计数,即从0到59循环计数,对时——24进制,即从0到23循环计数,在数码管上显示。以及时间设置:手动调节分钟,可以对所设计的时钟任意调时间,这样使数字钟真正具有使用功能。我们可以通过实验板上的键7和键4进行任意的调整,因为我们用的时钟信号均是1HZ的,所以每LED灯变化一次就来一个脉冲,即计数一次。清零功能:reset为复位键,低电平时实现清零功能,高电平时正常计数。LED灯在时钟显示时有花样显示信号产生。即根据进位情况,LED不停的闪烁,从而产生“花样”信号。同时加入了整点响铃功能。 三、设计任务及要求 为了人们的方便,除了定时响铃之外,在八点,九点,十点和所有整点处于响铃状态 四、确定输入和输出变量 输入变量: clk, reset,setmin, sethour, [6:0] dain 输出变量: [6:0] daout,enhour,[5:0] daout,speak 五、确定输入状态 程序开始时,内部计时显示在共阳数码管上,整点八点,十五点响铃,定时在十三点三十九分响铃。 六、整体设计框图 本系统可以由秒计数器、分钟计数器、小时计数器、整点报时、分的调整以及小时的调整和一个顶层文件构成。采用自顶向下的设计方法,子模块利用Verilog HDL语言设计,顶层文件用原理图的设计方法。显示:小时采用24进制,而分钟和秒均60进制。 七、对应部件说明 clk:时钟信号 reset:复位信号 setmin:分钟的设定信号 sethour:小时的设定信号 enhour:小时的输出信号 speak:报时信号 八、方案论证 方案1:基于Verilog HDL原理实现 方案2:基于单片机原理实现 确定选择方案1,理由是对于单片机的不了解,对Verilog HDL的了解和对计算机以及试验箱的熟练使用。 九、状态机设计(状态转换图) State1:未到时的初始状态 state2:到时响铃状态 State3:响铃完毕停止状态 十、状态编码 秒计数器: module second (clk, reset, setmin, enmin, daout); input clk; input reset; input setmin; wire enmin; output[6:0] daout; wire[6:0] daout; reg[6:0] count; reg enmin_1;向分进位信号 wire enmin_2; assign daout = count 个位计时 assign enmin_2 = (setmin clk) assign enmin = (enmin_1 | enmin_2) always @(posedge clk or negedge reset) begin if (reset == 1b0) begin count = 7b0000000 end else begin if (count[3:0] == 4b1001 begin if (count 8h60 begin if (count == 7b1011001) begin enmin_1 = 1b1 count = 7b0000000 end else begin count = count + 7 end end else begin count = 7b0000000 end end else if (count 8h60) begin count = count + 1 enmin_1 = #100 1b0 end else begin count = 7b0000000 end end end endmodule 分钟

文档评论(0)

奇缘之旅 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档