名称:基于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
阅读全文
662