多功能数字钟设计实验报告.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文档。上传文档
查看更多
《多功能数字钟设计》实验报告 本文通过ALTERA公司的quartus II软件,用Verilog HDL语言完成多功能数字钟的设计。主要完成的功能为:计时功能,24小时制计时显示;通过七段数码管动态显示时间;校时设置功能,可分别设置时、分、秒;跑表的启动、停止 、保持显示和清除。 一、设计原理简述 本设计分为共分为六个模块,分别为分频模块 (fdiv),主控模块(main_control),计时与较时模块(time_counter_adjust),跑表模块(stopwatch),显示选择模块(time_mux),位码选择和译码模块(bieselect)。系统总体工作框图和顶层原理图分别如图1-1和1-2所示。 主控模块作为系统控制的主要部分,对各个模块进行控制。系统一上电即开始时间计时, key3键选择控制模式,在跑表和较时之间选择。当跑表使能端有效时,即允许跑表的时钟脉冲(f100hz)通过,传送给跑表的时钟输入端。当时间较时使能信号有效时,通过key2键来选择需要调整的位(秒、分、小时),此时通过key3键加1调整。主控模块同时还控制着显示选择模块来对不同的模式(较时、跑表)进行显示选择。显示输出到位码选择和译码模块进行最后的译码输出。 计时较 计时较 时模块 显示选择模块位码选择和译码模块主控模块分频模块 显示选择模块 位码选择 和译码模块 主控模块 分频模块 跑表模块 跑表模块 图1-1 体统总体框图 图1-2 顶层原理图 总图方针波形图如图1-3(a)和图1-3 (b)所示。 图1-3(a)总体的仿真波形1 图1-3(b)总体的仿真波形2 二、各模块详细设计原理 分频模块是将1kHz的时钟信号分频为100Hz和1Hz两组信号,1Hz 时钟信号的输出用来输送给计时模块用来计时;100Hz输送给跑表模块,用来产生1ms的计时输出。分频模块的bsf如图2-1(a)所示。 图2-1(a)分频模块 图2-1(b)主控模块 图2-1(c)计时与较时模式 分频模块的Verilog HDL代码如下。 module fdiv(clk,f100hz,f1hz); input clk; output f100hz,f1hz; reg f100hz,f1hz; integer cnt1=0,cnt2=0; always@(posedge clk) begin if(cnt19) begin cnt1=cnt1+1; f100hz=1b0; end else begin cnt1=1b0; f100hz=1b1; end end always@(posedge f100hz) begin if(cnt299) begin cnt2=cnt2+1; f1hz=1b0; end else begin cnt2=1b0; f1hz=1b1; end end endmodule 分频模块仿真波形如图2-2所示。 图2-2 分频模块的仿真波形 主控模块中,通过key3来选择模块做跑表模式和计时与较时模式的功能选择,时间计时则不受主控模块的限制,系统一上电计时即开始。当跑表的使能有效时,主控模块同时控制将100Hz的时间信号输送给跑表,作为计时信号。主控模块如图2-1(b)所示。当需要调整时间时,通过key2选择要调整的秒、分、小时,然后通过key1完成加1的调整动作。只有调整分和小时,key1来一个脉冲完成加1指令,而对秒则使其清零。输出的key_1,key_2则主要作为跑表的控制信号,接到跑表模块的holdreset和startpause两个输入控制端。主控模块的Verilog HDL代码如下。 module main_control( key1, key2, key3, key_1, key_2, f100hzin, f100hzout, Time_count_adjust_EN, Stopwatch_EN, count_sec, count_min, count_hour ); output Time_count_adjust_EN,Stopwatch_EN; output key_1,key_2,f100hzout; output count_sec,count_min,count_hour; input key1,key2,key3,f100hzin; reg Time_count_adj

文档评论(0)

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

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

1亿VIP精品文档

相关文档