PWM技术的原理和应用——基于89C52/89C51演示 一、技术概念 PWM,中文名称为“脉冲宽度调制”,该技术是用于在数字电路对模拟电路的控制。在数字电路中,只存在0和1信号,即“电压为0V”和“电压为5V”,而在模拟电路中,不同的电压值会对器件的工作状态会有不同的效果。例如:一颗LED的工作电压为1.7V-3.6V不等,不同的电压值,影响着LED的亮度。那么如何通过数字电路的“0”、“1”来控制LED两端出现不同的电压? 二、技术原理 在日常时候中,我们用的生活电压为220V,这个是用直流电压表测试的。如果用交流电压,那么示数会在±340V之间振荡。因为220V是其有效值,±340V是其峰峰值。如果单片机的I/O口也会输出一个从“5V”到“0V”的振荡信号,会不会也在I/O口存在一个“0”到“5V”之间的有效值。 既然是一个振荡的信号,那么就要考虑两个指标:“周期/频率”、“高电平的持续时间/低电平的持续时间”。 频率一定大,既周期时间要短,因为LED有余晖作用,在短时间内电压为0时,灯光并不会立刻消失。我们假设频率为100Hz,也就是说1S之内有100个波形(1个高电平和1个低电平为一个波形)。T=0.01s 先设置高电平持续时间为0.005s,占周期的50%=(0.005/0.01)×100%,而这个50%被称为PWM的占空比。 那么我们可以根据这些数据通过公式来推出其等效的直流电压(直流电压表的示数),是计算其有效值还是其平均值? 是有效值,因为交流电的有效值在相同时间内消耗的能量是一样的,公式推导如下: ※U是有效值,u(t)是交流电的对t的函数,T为周期 平均值:仅仅是电压在时间上的平均值,是不能等效成元件两端的电压。 通过公式计算出占空比50%时,其有效值为U=2.5*1.414=3.54V 不同的占空比,对应着不同的有效值:
三,流程图 从原理可以得知一个51系列的单片机通过控制I/O口的输出信号的占空比就可以控制LED的亮度。 那么我们设定4种占空比(10%、30%、50%、90%)的情况,并且通过摁键可以互相改变。 信号的周期可以通过单片机的定时器来控制,一个周期为0.01s=10ms,当定时器工作在方式1,单片机晶振为12MHz时,一次定时器中断最大时间为65.536ms。我们设定一次定时器中断时间为100μs,这样一个波形的周期需要经过100次的定时器中断,设置一个变量count,用来判断是否到达100,从而重新开始一个周期。 可以先设置I/O口的初始为高电平,定义一个标志变量FLAG,FLAG的作用是用来和count做比较从而单片机判断是否达到了占空比的要求,例如,占空比设定为50%,当count=50的时候,将高电平变为低电平,就会出现占空比为50%的波形。
|