• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

基于PWM波的流星灯设计Verilog代码Quartus仿真

08/15 08:13
398
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-240R91T555452.doc

共1个文件

名称:基于PWM波的流星灯设计Verilog代码Quartus仿真

软件:Quartus

语言:Verilog

代码功能:

基于PWM波的流星灯设计

1、控制16个led的亮度变化,使其表现出的显示效果和流星划过

2、该设计要求通过pwm波控制LED的亮度,pwm占空比越大,亮度越大

3、产生16个不同占空比的PWM波形,依次移动产生流星效果

4、使用quartus9.0版本

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

演示视频:

设计文档:

1.工程文件

2.程序文件

3.程序运行

4.RTL图

5.状态图

6.程序仿真

部分代码展示:

module?meteor_led(
input?clk,//时钟
input?reset,//复位,高电平复位
output?[15:0]?led//输出流星灯
);
//产生16个不同占空比的PWM波形
reg?[7:0]?pwm_count=8'd0;
always@(posedge?clk)
if(reset)
pwm_count<=8'd0;
else
if(pwm_count>=8'd16)
pwm_count<=8'd0;
else
pwm_count<=pwm_count+8'd1;
reg?PWM_1=0;//占空比最小
reg?PWM_2=0;
reg?PWM_3=0;
reg?PWM_4=0;
reg?PWM_5=0;
reg?PWM_6=0;
reg?PWM_7=0;
reg?PWM_8=0;
reg?PWM_9=0;
reg?PWM_10=0;
reg?PWM_11=0;
reg?PWM_12=0;
reg?PWM_13=0;
reg?PWM_14=0;
reg?PWM_15=0;
reg?PWM_16=0;//占空比最大
always@(posedge?clk)
if(pwm_count<8'd1)
PWM_1<=1;
else
PWM_1<=0;
always@(posedge?clk)
if(pwm_count<8'd2)
PWM_2<=1;
else
PWM_2<=0;
always@(posedge?clk)
if(pwm_count<8'd3)
PWM_3<=1;
else
PWM_3<=0;
always@(posedge?clk)
if(pwm_count<8'd4)
PWM_4<=1;
else
PWM_4<=0;
always@(posedge?clk)
if(pwm_count<8'd5)
PWM_5<=1;
else
PWM_5<=0;
always@(posedge?clk)
if(pwm_count<8'd6)
PWM_6<=1;
else
PWM_6<=0;

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=994

  • 2-240R91T555452.doc
    下载

相关推荐