【FPGA】PWM控制呼吸灯
PWM控制呼吸灯
一、PWM
1、PWM基本概念
利用微处理器FPGA的数字输出对模拟电路进行控制的一种有效技术,数字信号从微处理器到被控系统都为数字形式(控制占空比),为一种连续的具有一定占空比的脉冲信号(方波)。
2、占空比
占空比的概念:
占空比是指在一个脉冲循环内,通电时间相对于总时间所占的比例。占空比(Duty Ratio)在电信领域中有如下含义:例如:脉冲宽度1μs,信号周期4μs的脉冲序列占空比为0.25。
如图所示,该图片中脉冲的占空比为Ton/T。
3、PWM信号
如图所示,上述图片为占空比为25%的信号,则该信号的对应电压为高电平电压的25%。
4、呼吸灯实现方法
通过PWM可以进行数模转换的特性,控制每一个时间段的LED灯的亮度,实现LED灯的亮度变换来实现呼吸灯。
二、呼吸灯实现思路
呼吸灯PWM实现:
由于LED灯先逐渐变亮后逐渐熄灭,可知其波形图为占空比先增大后占空比逐渐减小。
由图可知,占空比由1us逐渐增加到1000us再由1000us逐渐减小到1us。
三、PWM实现
1.PWM模块
代码如下:
module PWM(
input sysclk ,
input rst_n ,
output reg led
);
parameter TIME_ms = 50_000;
parameter TIME_us = 50;
parameter T = 2000;
reg [15:0] cnt_ms;
reg [5:0