呼吸灯的软件是系统设计的重点,其主要功能是要输出合适的PWM波形来驱动三极管开关以使得RCL电路上获得适当的电源,而输出PWM波形的重点是对于51单片机的定时器/计数器的控制。
呼吸灯需要输出的PWM波形应该是一个脉冲宽度逐步增加,然后,再逐步减小的脉冲序列,可以使用定时器/计数器来控制完成,其应用系统的软件流程如图1.30所示。
图1.30 呼吸灯应用系统的软件流程
呼吸灯应用系统软件的应用代码如例1.1所示。
应用代码定义了一个标志位bit ArrowFlg,使用其来判别计数方向,当到达输出波形的最大宽度或者最小宽度时,修改这个标志位,然后在进行相应的计数之前,对该标志位进行判断,以决定增加计数器upCounter和减小计数器downCounter的计数方向。
【例1.1】 呼吸灯应用系统软件的应用代码。