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

做商城网站需要备案吗建网站免费

做商城网站需要备案吗,建网站免费,武汉培训网站建设,域名主机 网站建设一、原理 呼吸灯的原理主要基于‌PWM(脉冲宽度调制)技术,通过控制LED灯的占空比来实现亮度的逐渐变化。这种技术通过调整PWM信号的占空比,即高电平在一个周期内所占的比例,来控制LED灯的亮度。当占空比从0%逐渐变化到1…

一、原理

       呼吸灯的原理主要基于‌PWM(脉冲宽度调制)技术,通过控制LED灯的占空比来实现亮度的逐渐变化。这种技术通过调整PWM信号的占空比,即高电平在一个周期内所占的比例,来控制LED灯的亮度。当占空比从0%逐渐变化到100%,再从100%变化回0%,就实现了灯光亮度由暗到亮,再由亮到暗的循环变化,模拟了人的呼吸效果。‌

       具体来说,PWM信号的周期是固定的,通过改变高电平的时间长度(即占空比),可以控制LED灯的亮度。例如,当占空比为0%时,LED灯不亮;当占空比为100%时,LED灯最亮。通过编程或微电脑控制,可以实时调整这些参数,从而实现灯光亮度的动态变化。‌

       此外,还有一些非PWM的实现方式,例如通过编程控制亮和灭的时间比例,虽然这种方法较为复杂且可能不如PWM技术普及,但它提供了一种不同的实现思路。总的来说,PWM技术因其简单有效和广泛的应用支持,是实现呼吸灯的主要技术手段。‌

二、实现思路

       这里我们在设计的时候采用三个周期计数器,分别是us级,ms级以及s级计数器,通过对开发板系统时钟的20ns进行分频,接着实现us计数器的设计,最后利用us计数器实现毫秒计数器,利用ms计数器实现s计数器的方法逐一完成三个计数器,最后的占空比的调整是在ms计数器进行里面设置。在计数器设计好之后利用s级计数器对于状态标志进行一个设定,用于实现呼吸灯状态的改变标志。最后实现呼吸灯的相关功能。(这里实现的是2s的呼吸灯)

三、代码编写

设计文件

module led(input clk,input rst_n,output  reg [3:0] led_out
);//参数定义
parameter TIME_2us=1_000_000;
parameter TIME_2ms=1000-1;
parameter TIME_2s=1000-1;//内部信号定义
reg  [6:0]  cnt_us;
reg  [9:0]  cnt_ms;
reg  [26:0]  cnt_s;
reg          flag;//呼吸灯亮灭标志位
wire        add_cnt_us;
wire        end_cnt_us;
wire        add_cnt_ms;
wire        end_cnt_ms;
wire        add_cnt_s;
wire        end_cnt_s;//2us计数器
always @(posedge clk or negedge rst_n)begin if(!rst_n)cnt_us<= 0;else if(add_cnt_us)beginif(end_cnt_us)cnt_us<=0;elsecnt_us<= cnt_us+1'b1;end 
end 
assign add_cnt_us = 1'b1;
assign end_cnt_us = (cnt_us==7'd99) && add_cnt_us;//ms计数器
always @(posedge clk or negedge rst_n)begin if(!rst_n)cnt_ms<= 0;else if(add_cnt_ms)beginif(end_cnt_ms)cnt_ms<=0;elsecnt_ms<= cnt_ms+1'b1;end 
end 
assign add_cnt_ms = end_cnt_us;
assign end_cnt_ms = add_cnt_ms && (cnt_ms==TIME_2ms);//s计数器
always @(posedge clk or negedge rst_n)begin if(!rst_n)cnt_s<= 0;else if(add_cnt_s)beginif(end_cnt_s)cnt_s<=0;elsecnt_s<= cnt_s+1'b1;end 
end 
assign add_cnt_s = end_cnt_ms;
assign end_cnt_s = add_cnt_s && (cnt_s==TIME_2s);//flag亮灭状态描述
always @(posedge clk or negedge rst_n)beginif(!rst_n)flag<= 0;else if(end_cnt_s)flag<=~flag;elseflag<= flag;
end//功能实现
always @(posedge clk or negedge rst_n)beginif(rst_n==1'b0)led_out <= 4'b0000;// 由灭到亮else if((flag == 1'b0)&&(cnt_s <= cnt_ms))led_out <= 4'b0000;else if((flag == 1'b0)&&(cnt_s > cnt_ms))led_out <= 4'b1111;// 由亮到灭else if((flag == 1'b1)&&(cnt_s < cnt_ms))led_out <= 4'b1111;	else if((flag == 1'b1)&&(cnt_s >= cnt_ms))led_out <= 4'b0000;elseled_out <= led_out;
end endmodule

测试文件的编写

//定义时间尺度
`timescale 1ns/1ps
module led_tb();//重定义
defparam  led_inst.TIME_2us=10;
defparam  led_inst.TIME_2ms=10;
defparam  led_inst.TIME_2s=10;//内部变量定义
reg clk;
reg rst_n;
wire  led_out;//模块实例化
led led_inst(/*input              */ .rst_n    (rst_n     ),/*input            */ .clk      (clk       ),/*output reg [3:0] */ .led_out  (led_out   )
);//时钟
parameter CLK_CLY =20;
initial clk=0;
always  #(CLK_CLY/2) clk=~clk;//复位
initial beginrst_n =1'b0;#(CLK_CLY*2);#3;rst_n =1'b1;
end 
//激励endmodule

四、仿真波形图

由于我们设置的计数器技术周期和系统的周期相差过大,所以在测试文件中进行重定义来更好在波形途中观察ms周期中高低占空比的改变。

 通过波形图我们可以观察到低电平从最开始的100%慢慢变成0%,最后又会从0%变为100%,高电平从最开始的0%慢慢变成100%,最后又会从100%变为0%(这里,0000和1111的频率占空比),这里的波形图位置有限,没有拍完。

受格式的影响,这里就不放下板之后的效果,最终实现的效果就是4个LED会由暗变为亮,在由亮变暗的呼吸灯效果。

http://www.tj-hxxt.cn/news/100896.html

相关文章:

  • 毕业设计代做淘宝好还是网站好南宁网站推广公司
  • 成品网站和模板建站百度推广的价格表
  • 医院网站建设技术方案ppt爱网站关键词查询工具
  • 网站的网站搭建找营销推广团队
  • 网站模板 酒类郑州粒米seo外包
  • 有哪些网站是做视频的成都全网营销推广
  • 网页设计与网站建设ppt怎么线上推广自己的产品
  • 杭州有哪些网站建设惠州百度seo
  • 个人博客网站的建设结构图网站是否含有seo收录功能
  • 网站建设可以资本化吗seo优化顾问服务
  • 网站建设 语言易观数据
  • wordpress是建站最快的网店
  • 企业所得税税收筹划南宁seo费用服务
  • 上海高端网站建设高端网站建设手机如何创建网站
  • 做公司网站好处plc培训机构哪家最好
  • 网站在阿里云备案软文如何推广
  • 用asp做网站有哪些功能兰州百度推广的公司
  • 公司做网站哪个公司做得好网站建设制作教程
  • 上海跨境电商网站制作淘宝指数查询官网手机版
  • 天津网络优化网站建设企业邮箱登录
  • 免费做公司手机网站html网页制作成品
  • 服务范围 网站建设公司关键词优化哪家强
  • 自己建网站做微商seo搜索引擎优化工资多少钱
  • 东莞网站建设公司怎么做微信上怎么做广告推广
  • 网站有访问量 为什么没有询盘seo实战培训学校
  • 大学生网站模板互联网推广好做吗
  • 网站开发年薪网站点击快速排名
  • wordpress添加分类筛选手表百度seo优化关键词
  • 网站在线客服代码百度推广开户多少钱一个月
  • 营口做网站的公司网站搜索排名优化怎么做