然后,应用程序代码可以测量供电电压(利用片上集成的10位A/D转换器)和供电电流,从而保证驱动LED工作在恒定功率模式。随着电池输入电压的变化,D/A电路(采用CCP外设实现)将产生新的参考电压值进行补偿。
设置LED亮度
由于单片机内核在稳定功率方面仅需要花费很小一部分时间,因此更多的时间可用于用户界面以及提供更多功能,如电池状态监控和亮度控制。利用这一电路及软件调整LED亮度有两种方法。其中一种技术基于LED亮度随驱动电流而变化的原理,事实上,利用这种方法可以实现近似线性的LED亮度控制。然而改变电流实现调光并非控制LED亮度的最高效方法,只有在生产商指定的最大驱动电流水平下,LED才能够达到最高的发光效率。
可利用一个低频PWM信号来调制LED驱动电流。采用这种方法,电流并未减小,即在点亮时,LED始终通过最大电流。但PWM信号的占空比设定了LED点亮的平均时间。PWM频率要选择得足够高,以使LED电流的开关速率足够快,从而使人眼感受不到光在闪烁;同时,PWM频率也要足够低,这样稳流电路在PWM导通时间内就有足够的时间稳定。如果这些条件都能够满足,那么人眼会对一段时间内的LED的光输出进行平均。PWM调光信号的频率通常在60Hz 到 1000Hz之间。
总结
PIC16HV785几乎包含了实现大功率LED驱动电路所需要的元器件。根据输入电压范围,可以方便地配备成升压或降压-升压工作模式。这一应用仅使用了单片机RAM和闪存的一小部分,为其他用户应用程序代码留下了足够的空间。实际上,PIC16HV785单片机中还有足够的未用外设,可用来实现其它LED驱动器、电池充电器或开关电路。