详细分析单片机IO口利用PWM脉宽调制实现LED灯的渐亮渐灭

程序思路说明:
LED背光板的渐亮渐灭实际上就是LED的亮度等级由低到高(渐亮)再由高到低(渐灭)的
过程,那么首先要通过PWM脉宽调制实现LED显示不同的亮度等级。(脉宽调制的基本原理
可以参考http://hi.baidu.com/gdmgb520/blog/item/077f0601810d1a047bec2cb7.html)
怎么实现不同的亮度等级呢?假设在某个长度的周期(一个适当的时间长度)内如果LED
的管脚一直输出0(我这里输出0时LED背光板点亮),那么很显然LED肯定是最亮的;相
反如果一直输出1,那LED肯定是最暗的(也就是不亮)。如果在这个周期内管脚输出的是
脉冲波(10101010……)那么LED的亮度就只有最亮时的一半,或者说如果前一半时间是
高电平后一半时间是低电平,那LED的亮度也是最亮的一半,这是由于LED的余晖效应,但
这个时间必须恰当,不然LED就不是亮而是闪烁。下面这段代码即可实现LED显示在某个亮度
等级: