Verilog-HDL语言-四位数字频率计-课程设计.docxVIP

Verilog-HDL语言-四位数字频率计-课程设计.docx

  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文档。上传文档
查看更多
课程设计说明书 PAGE 6 1、设计目的和要求 1、设计一个4位十进制数字频率计。 2、测量范围1~9999Hz,采用4位数码管显示,有溢出指示。 3、量程有1KHz,1MHz两档,用LED灯指示。 4、读数大于9999时,频率计处于超量程状态,发出溢出指示,下次量程,量程自动增大一档。 5、读数小时,频率计处于前量程状态,下次测量,量程自动减小一档。 6、采用记忆显示方式,在计数与显示电路中间加以锁存电路,每次计数结束,将计数结果送锁存器锁存,并保持到下一个计数结束。 2、设计原理 1、基本原理 频率测量的基本原理是计算每秒钟内待测信号的脉冲个数。这就要求sysclk能产生一个1s脉宽的周期信号,并对频率计的每一个计数器cntp的使能端进行同步控制。当clK_cnt高电平时允许计数,并保持其所计的数。在停止计数期间,首先需要一个锁存信号将计数器在前1s的计数值锁存进锁存器reg中,并由外部的7段译码器译出并稳定显示。原理图如图1-1 脉冲形成模块计数模块译码模块 脉冲形成模块 计数模块 译码模块 控制模块 分频模块 量程切换模块 被测信号 锁存 清零 使能 基准信号 2、模块原理 根据数字频率计的基本原理,本文设计方案的基本思想是分为五个模块来实现其功能,即整个数字频率计系统分为分频模块、控制模块、计数模块、译码模块和量程自动切换模块等几个单元,并且分别用VHDL对其进行编程,实现了闸门控制信号、计数电路、锁存电路、显示电路等。 3、设计内容 1、分频模块 由于晶体振荡器提供的为50MHz的时钟,而在整个频率计里将用到周期为2s,半个周期为1s的闸门信号,所以我们在此模块先分频产生0.5Hz的分频信号。 always@(posedge sysclk) begin if(cnt==26’b10_1111_1010_1111_0000_1000_0000) begin clk_cnt=~clk_cnt;cnt=0;end else begin cnt=cnt+1;end end 二进制的26’b10_1111_1010_1111_0000_1000_0000,即为十进制的50x10^7,由程序中的clk_cnt=~clk_cnt;cnt=0;得知会产生我们想要的周期为2s的clk_int信号。仿真结果如图1-2. 图1-2 2、 4位十进制计数器模块 4位十进制计数器模块包含4位十进制的计数器,用来对施加到时钟脉冲输入端的待测信号产生的脉冲进行计数,十进制计数器具有清零控制和进位扩展输出的功能。 always@(posedge clkint) begin if(clk_cnt) begin if(cntp1==’b1001) begin cntp1=’b0000; cntp2=cntp2+1; if(cntp2==’b1001) begin cntp2=’b0000; cntp3=cntp3+1; if(cntp3==’b1001) begin cntp3=’b0000; cntp4=cntp4+1; if(cntp4==’b1001) begin cntp4=’b0000; led=1; 本程序采用的是以累加的方法结合巧妙地if语句进行四重循环,实现四位十进制不同的高低级别,实现计数。一位十进制原理图仿真如图1-3。 图1-3 四位十进制原理图仿真如图1-4。 图1-4 3、锁存模块 如果计数器输出直接与译码器相连接,那么在计数过程中输出端则随输入脉冲数的增加而不断跳变,那么显示数码管则也会不断闪烁跳变,让人不能看到稳定的输出,设锁存器后,则不再跳变,便可清晰读出计数结果。其生成的功能模块如图所示: if(cntp1!=’b0000|cntp2!=’b0000|cntp3!=’b0000|cntp4!=’b0000) begin cntq1=cntp1;cntq2=cntp2;cntq3=cntp3;cntq4=cntp4; cntp1=b0000;cntp2=’b0000;cntp3=’b0000;cntp4=’b0000; 4、动态扫描模块 本设计采用扫描方式来实现LED数码管动态显示,控制好数码管之间的延迟时间相当重要。根据人眼视觉暂留原理,LED数码管每秒导通16次以上,人眼就无法LED数码管短暂的不亮,认为是一直点亮的(其实LED数码管是以一定频率在闪动的)。但是,延时(导通频率)也不是越小越好,因为LED数码管达到一定亮度需要一定时间。如果延时控制的不好则会出现闪动,或者亮度不够,根据经验,延时0.005S可以达到满意的效果。另外,显示的字符有变化时,可在延时到达后送一个地电平(共阴极数码管)LED数

文档评论(0)

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

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

1亿VIP精品文档

相关文档