通过软件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;
}