3种效果的程序编写
发布时间:2013/11/16 15:18:08 访问次数:670
程序的PWM频率设置为最高的37.5kHz。BYM11-600-E3/76之所以选择这么高的频率是为了不影响动态扫描。试想,如果PWM频率为100Hz,那么还怎么动态扫描呢?在程序中,动态扫描实际的频率为62Hz。这已经足够骗过人的眼睛,让我们看不到灯的闪烁。
在单片机的中断代码中,程序每过26 us就会产生溢出中断一次,通过变量count计数中断次数。当中断的次数达到50次时,就更换下~个LED灯,显示它对应的亮度。LED的亮度存储到led[]这个数组中,每个LED灯通过载入对应的亮度值,即通过改变PWM产生寄存器的OCROA与OCROB,来实际控制高低电平脉宽长度,最终实现亮度的控制。当然,每次通过PWM控制亮度,都要先根据LED的驱动电平方式,重新设置PWM的控制模式。在此之前,还要记得设置不相关的引脚为高阻态。
LED的3种效果控制程序能够实现LED灯不断地变换,只要调用就能分别实现如下功能:所有LED灯的呼吸效果;逐个点亮和熄灭LED灯.LED灯流水显示的效果。从编程的思路上讲,led数组存放了12个元素,每个元素所存内容,即对应每个LED灯亮度值。耍改变某个LED灯亮度,都是通过设置led[]数组中对应元素的PWM缓冲数值来实现自动变换。要让所有的灯全亮只需设置数组中的每个元素的数值都为255即可。如果要一半的亮度就设置为1 28。要让某个灯单独最亮,只要设置这个LED灯元素数值为255.其他的元素为0。如果任意LED要产生渐渐变亮的效果,那么只要对应数组元素中的数值从O逐渐变为255即可。同理,渐渐变暗,数值就从255变成0。要实现什么样的效果,大家可以通过改变led[]数组来实现。
在单片机的中断代码中,程序每过26 us就会产生溢出中断一次,通过变量count计数中断次数。当中断的次数达到50次时,就更换下~个LED灯,显示它对应的亮度。LED的亮度存储到led[]这个数组中,每个LED灯通过载入对应的亮度值,即通过改变PWM产生寄存器的OCROA与OCROB,来实际控制高低电平脉宽长度,最终实现亮度的控制。当然,每次通过PWM控制亮度,都要先根据LED的驱动电平方式,重新设置PWM的控制模式。在此之前,还要记得设置不相关的引脚为高阻态。
LED的3种效果控制程序能够实现LED灯不断地变换,只要调用就能分别实现如下功能:所有LED灯的呼吸效果;逐个点亮和熄灭LED灯.LED灯流水显示的效果。从编程的思路上讲,led数组存放了12个元素,每个元素所存内容,即对应每个LED灯亮度值。耍改变某个LED灯亮度,都是通过设置led[]数组中对应元素的PWM缓冲数值来实现自动变换。要让所有的灯全亮只需设置数组中的每个元素的数值都为255即可。如果要一半的亮度就设置为1 28。要让某个灯单独最亮,只要设置这个LED灯元素数值为255.其他的元素为0。如果任意LED要产生渐渐变亮的效果,那么只要对应数组元素中的数值从O逐渐变为255即可。同理,渐渐变暗,数值就从255变成0。要实现什么样的效果,大家可以通过改变led[]数组来实现。
程序的PWM频率设置为最高的37.5kHz。BYM11-600-E3/76之所以选择这么高的频率是为了不影响动态扫描。试想,如果PWM频率为100Hz,那么还怎么动态扫描呢?在程序中,动态扫描实际的频率为62Hz。这已经足够骗过人的眼睛,让我们看不到灯的闪烁。
在单片机的中断代码中,程序每过26 us就会产生溢出中断一次,通过变量count计数中断次数。当中断的次数达到50次时,就更换下~个LED灯,显示它对应的亮度。LED的亮度存储到led[]这个数组中,每个LED灯通过载入对应的亮度值,即通过改变PWM产生寄存器的OCROA与OCROB,来实际控制高低电平脉宽长度,最终实现亮度的控制。当然,每次通过PWM控制亮度,都要先根据LED的驱动电平方式,重新设置PWM的控制模式。在此之前,还要记得设置不相关的引脚为高阻态。
LED的3种效果控制程序能够实现LED灯不断地变换,只要调用就能分别实现如下功能:所有LED灯的呼吸效果;逐个点亮和熄灭LED灯.LED灯流水显示的效果。从编程的思路上讲,led数组存放了12个元素,每个元素所存内容,即对应每个LED灯亮度值。耍改变某个LED灯亮度,都是通过设置led[]数组中对应元素的PWM缓冲数值来实现自动变换。要让所有的灯全亮只需设置数组中的每个元素的数值都为255即可。如果要一半的亮度就设置为1 28。要让某个灯单独最亮,只要设置这个LED灯元素数值为255.其他的元素为0。如果任意LED要产生渐渐变亮的效果,那么只要对应数组元素中的数值从O逐渐变为255即可。同理,渐渐变暗,数值就从255变成0。要实现什么样的效果,大家可以通过改变led[]数组来实现。
在单片机的中断代码中,程序每过26 us就会产生溢出中断一次,通过变量count计数中断次数。当中断的次数达到50次时,就更换下~个LED灯,显示它对应的亮度。LED的亮度存储到led[]这个数组中,每个LED灯通过载入对应的亮度值,即通过改变PWM产生寄存器的OCROA与OCROB,来实际控制高低电平脉宽长度,最终实现亮度的控制。当然,每次通过PWM控制亮度,都要先根据LED的驱动电平方式,重新设置PWM的控制模式。在此之前,还要记得设置不相关的引脚为高阻态。
LED的3种效果控制程序能够实现LED灯不断地变换,只要调用就能分别实现如下功能:所有LED灯的呼吸效果;逐个点亮和熄灭LED灯.LED灯流水显示的效果。从编程的思路上讲,led数组存放了12个元素,每个元素所存内容,即对应每个LED灯亮度值。耍改变某个LED灯亮度,都是通过设置led[]数组中对应元素的PWM缓冲数值来实现自动变换。要让所有的灯全亮只需设置数组中的每个元素的数值都为255即可。如果要一半的亮度就设置为1 28。要让某个灯单独最亮,只要设置这个LED灯元素数值为255.其他的元素为0。如果任意LED要产生渐渐变亮的效果,那么只要对应数组元素中的数值从O逐渐变为255即可。同理,渐渐变暗,数值就从255变成0。要实现什么样的效果,大家可以通过改变led[]数组来实现。