通过软件PWM调整LED1、LED2和LED3的亮度,适用于如下所示的单片机电路。CFG_LED1、CFG_LED2和CFG_LED3分别是3个LED的亮度设置,取值范围从0到255。将LED1、LED2和LED3换成3色LED即可实现七彩灯的效果。
main.c片段
#define CFG_LED1 192 #define CFG_LED2 96 #define CFG_LED3 32 sbit LED1 = P1^0; sbit LED2 = P1^1; sbit LED3 = P1^2; unsigned char vPWM; main() { start: vPWM ++; if (vPWM > CFG_LED1) LED1 = 1; else LED1 = 0; if (vPWM > CFG_LED2) LED2 = 1; else LED2 = 0; if (vPWM > CFG_LED3) LED3 = 1; else LED3 = 0; goto start; }