verilog四位呼吸灯设计.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文档。上传文档
查看更多
呼吸灯 实现效果 呼吸灯:从最暗到最亮,再从最亮到最暗 2)原理 LED的亮度与流过的电流成正比。在一定的频率之下,如果占空比是0,则LED不亮;如果占空比是100%,则LED最亮;如果占空比刚好是50%,则LED亮度适中。如果我们让占空比从0~100%变化,再从100%~0不断变化,就可以实现LED一呼一吸的效果。? 其波形占空比示意图如下所示: 3)呼吸灯程序设计思路? (1)首先确定PWM的频率为2Khz? (2)由频率算出周期?T?=?1/f?=?2ms? (3)根据每次呼2s,吸2s,算出计数值?2s/2ms=1000? (4)然后将2ms分成1000份,每一份是2us? (5)写三个?2us、2ms、2s的3个计数器cnt_2us、?cnt2_ms、cnt_2s,最后cnt_2ms和cnt2s进行比较 程序 module hxd( input wire clk, input wire rst_n, output reg [3:0] led ); reg [10:0] cnt_2us; reg [15:0]cnt_2ms; reg [15:0]cnt_2s; parameter CNT_MIN=99;//99 parameter CNT_MAX=999;//999 wire flag_2us; wire flag_2ms; wire flag_2s; reg flag; always @(posedge clk or negedge rst_n) if(rst_n==0) cnt_2us=0; else if(cnt_2us==CNT_MIN) cnt_2us=0; else cnt_2us=cnt_2us+1; assign flag_2us=(cnt_2us==CNT_MIN)?1:0; always@(posedge clk or negedge rst_n) if(rst_n==0) cnt_2ms=0; else if(cnt_2ms==CNT_MAXcnt_2us==CNT_MIN) cnt_2ms=0; else if (cnt_2us==CNT_MIN) cnt_2ms=cnt_2ms+1; assign flag_2ms=(cnt_2ms==CNT_MAX)?(1flag_2us):0; always@(posedge clk or negedge rst_n) if(rst_n==0) cnt_2s=0; else if(cnt_2s==CNT_MAXcnt_2ms==CNT_MAXcnt_2us==CNT_MIN) cnt_2s=0; else if(cnt_2ms==CNT_MAXcnt_2us==CNT_MIN) cnt_2s=cnt_2s+1; assign flag_2s=(cnt_2s==CNT_MAX)?(1flag_2ms):0; always@(posedge clk or negedge rst_n) if(rst_n==0) flag=0; else if(flag_2s==1) flag=~flag; else flag=flag; always@(posedge clk or negedge rst_n) if(rst_n==0) led=4b0000; else if (flag==0cnt_2ms=cnt_2s) led=4b1111; else if (flag==1cnt_2s=cnt_2ms) led=4b1111; else led=4b0000; endmodule

文档评论(0)

展翅高飞2020 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档