功能模块设计
常规的 LED 灯只有亮(高电平) 及暗(低电平) 两种状态。 如果产生一个周期性的脉冲信号用于驱动 LED 灯, 则 LED 灯会出现闪烁状态。 如果脉冲信号的频率足够高(大于人眼的分辨频率 24Hz),则由于人眼的分辨率问题, 看起来 LED 灯仍然是恒亮的。此时, 只要控制脉冲信号的占空比(一个周期内高电平持续的时间占整个周期的比值),相当于控制了通过 LED 灯的平均电流大小, 就可以控制 LED 灯的亮度。 这种通过控制脉冲信占空比改变 LED 灯亮度的方法也称为脉冲宽度调制(Pulse Width Modulation, PWM)。
设计呼吸灯需要明确呼吸的频率。 比如要求呼吸灯的呼吸频率为 0.25Hz, 呼吸周期为 4s,即呼的状态(由亮至暗) 时长为 2s, 吸的状态(由暗到亮) 时长为 2s。 根据 PMW 调整 LED亮度的原理, 还需要确定呼的状态或吸的状态过程中总共出现多少种亮度状态。 如果亮度状态太少, 则 LED 灯的呼吸状态会显得断断续续, 感觉呼吸不顺畅。 亮度状态越多, 则呼吸状态越顺畅。
目标:设计一个亮度状态为 1000, 呼吸频率为 0.25Hz 的呼吸灯电路。
采用2个功能模块完成呼吸灯电路。文章来源:https://www.toymoban.com/news/detail-534235.html
亮度实现模块
设计1000中不同的亮度,也就是1000中不同占空比信号,level为0则最暗不亮,为999则最亮。
时钟频率50MHz,时钟周期:0.02us
每种状态持续2ms,共1000种状态,采用999进制的计数器文章来源地址https://www.toymoban.com/news/detail-534235.html
到了这里,关于【FPGA笔记系列13】呼吸灯电路设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!