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