当前位置: 首页 > news >正文

苏州商城网站建设电话网站推广线上推广

苏州商城网站建设电话,网站推广线上推广,建设银行 网站查询密码,网址的输入格式是什么样的参考野火例程 实现呼吸灯即要调整led亮的占比时间,完成视觉上看起来由灭到亮或者由亮到灭的过程。 如果主频为50MHz,理论上一秒钟我们可以控制50_000_000次led的亮和灭,肉眼不可能分辨出来每一次亮灭,如果这50M我们设定为间隔一…

参考野火例程

实现呼吸灯即要调整led亮的占比时间,完成视觉上看起来由灭到亮或者由亮到灭的过程。

  • 如果主频为50MHz,理论上一秒钟我们可以控制50_000_000次led的亮和灭,肉眼不可能分辨出来每一次亮灭,如果这50M我们设定为间隔一次亮一次,那么看起来led应该是常亮的,且亮度应该只有全亮的一半。通过这两种设定的比较,其实我们已经实现了pwm控制输出比,接下来需要考虑的是如何实现变化的过程。
  • 上文所述的亮灭最小控制时间是1s/50_000_000(时间除以主频),下文所述方法把单次亮灭的持续时间设定为1us,也就是1us内灯是全亮或全灭的。
  • 将led单次由灭到亮或由亮到灭的变换时间设定为1s。那么接下来就是设定亮的占比。
  • 1s=1000ms=1000_000us,也即1s我们可以控制1_000_000次亮灭。
  • 我们把1s分为1000个阶段,每个阶段可以控制1000次亮灭,那么只需要让第一个阶段亮1次,第二个阶段亮2次,第三个阶段亮3次·····第999个阶段亮999次,第1000各阶段亮1000次,那么这个过程就完成了从全灭到全亮的变化。也即1s的变化中,第1ms亮1us,第2ms亮2us······

design code:

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2024/04/13 09:31:22
// Design Name: 
// Module Name: breath_led
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//module breath_led#(parameter CNT_1US = 6'd49,parameter CNT_1MS = 10'd999,parameter CNT_1S = 10'd999
)
(input sys_clk,input sys_rst_n,output reg led
);reg [5:0] cnt_1us;//1us内灯全灭或全亮
reg [9:0] cnt_1ms;//1ms的1000个us,cnt_1s是多少就有多少个us亮
reg [9:0] cnt_1s;//1s内的第几个msreg led_state;//0:从灭到亮;1:从亮到灭,用于计算cnt_1s是加还是减//us计数
always @(posedge sys_clk or negedge sys_rst_n) beginif(sys_rst_n == 1'b0)cnt_1us <= 6'b0;else if(cnt_1us == CNT_1US)cnt_1us <= 6'b0;elsecnt_1us <= cnt_1us + 1'b1;
end
//ms计数
always @(posedge sys_clk or negedge sys_rst_n) beginif(sys_rst_n == 1'b0)cnt_1ms <= 10'b0;else if(cnt_1us == CNT_1US && cnt_1ms == CNT_1MS)//这里注意一定是同时满足才清零,下面的判定条件同理cnt_1ms <= 10'b0;else if(cnt_1us == CNT_1US)cnt_1ms <= cnt_1ms + 1'b1;
end
//s计数
always @(posedge sys_clk or negedge sys_rst_n) beginif(sys_rst_n == 1'b0)cnt_1s <= 10'b0;else if(cnt_1us == CNT_1US && cnt_1ms == CNT_1MS && led_state == 1'b0)cnt_1s <= cnt_1s + 1'b1;else if(cnt_1us == CNT_1US && cnt_1ms == CNT_1MS && led_state == 1'b1)cnt_1s <= cnt_1s - 1'b1;
end
//state转换
always @(posedge sys_clk or negedge sys_rst_n) beginif(sys_rst_n == 1'b0)led_state <= 1'b0;else if(cnt_1us == CNT_1US && cnt_1ms == CNT_1MS && cnt_1s == CNT_1S)led_state <= 1'b1;else if(cnt_1us == 6'b0 && cnt_1ms == 10'b0 && cnt_1s == 10'b0)led_state <= 1'b0;elseled_state <= led_state;
end
//led输出逻辑
always @(posedge sys_clk or negedge sys_rst_n)beginif(sys_rst_n == 1'b0)led <= 1'b1;else if(cnt_1ms < cnt_1s)//当前是第几个ms则该ms内就有多少个us是亮的led <= 1'b0;elseled <= 1'b1;
endendmodule

simulation code

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2024/04/13 10:17:13
// Design Name: 
// Module Name: vtf_breath_led_test
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//module vtf_breath_led_test();reg sys_clk;
reg sys_rst_n;
wire led;initial beginsys_clk = 1'b0;sys_rst_n <= 1'b0;
#20sys_rst_n <= 1'b1;
endalways #10 sys_clk <= ~sys_clk;breath_led #(.CNT_1US(1'b1),.CNT_1MS(5'd19),.CNT_1S(5'd19)
) bled(.sys_clk(sys_clk),.sys_rst_n(sys_rst_n),.led(led)
);
endmodule
http://www.yayakq.cn/news/450512/

相关文章:

  • 哈尔滨定制网站建设海外酒店网站建设
  • 做3d效果的网站网站建设要花钱吗
  • 站长工具天美传媒嘉兴个人建站
  • 怎么做卖橘子的网站查询网 域名查询
  • 做淘宝推广开网站合适企业商务网站建设的基本方法
  • 企业网站建设找外包公司做广州网站优化多少钱
  • 网站锚点怎么做网上注册公司系统
  • 设计网站公司 都赞湖南岚鸿案例10新开传奇手游发布网站
  • 深圳建设网站公司排名一级a做爰电影免费观看网站
  • 沧州模板建站开源项盿wordpress分类的feed
  • 郑州营销型网站制作策划外贸网站建设如何做
  • 南昌公司建设网站费用网站如何做301跳转
  • 下载导航到手机上安装seo网站优化培训要多少钱
  • 免费建站 永久商贸有限公司取名免费
  • 有关网站建设的外文参考文献饰品公司网站建设方案
  • 巨耀网站建设公司朋友圈广告怎么投放
  • 网站推广技巧有哪些石家庄市网站制作价格
  • 崇左市住房和城乡建设局网站如何做汽车的创意视频网站设计
  • wordpress 简约模板优化网络
  • 做医疗器械网站北京家装设计师排名
  • 南昌网站开发技术西安三桥网站建设
  • 山东济宁省建设厅官方网站成都个人做网站
  • 天津地产网站建设国外做兼职的网站有哪些
  • wordpress換域名seo和sem的联系
  • 有特点的个人网站wordpress 字体代码
  • 东莞做网站优化哪家好西安网站托管商家
  • 自助建网站系统看电影深圳创同盟科技有限公司
  • 网站建设襄阳文件下载网站源码
  • 怎么自己制作网站链接深圳最好的区排名
  • 服务好的高端网站建设企业wordpress 制作安装包