脉冲宽度调制(PWM)是英文“Pulse Width Modulation”的缩写,简称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用于测量,通信,功率控制与变换等许多领域。一种模拟控制方式,根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶 体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定。
脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。
多数负载(无论是电感性负载还是电容性负载)需要的调制频率高于10Hz,通常调制频率为1kHz到200kHz之间。
用于使***1模块产生分辨率为10位的PWM波形,占空比为50%
#include "p18f458.h"
/****1模块的PWM工作方式初始化子程序*/
void ***1INIT()
{
***R1L=0X7F;
***1CON=0X3C; /*设置***1模块为PWM工作方式,且其工作
循环的低2位为11,高8位为01111111=7F*/
INTCON=0X00; /*禁止总中断和外围中断*/
PR2=0XFF; /*设置PWM的工作周期*/
TRISC=0XFB; /*设置***1引脚为输出方式*/
}
/*主程序*/
main()
{
***1INIT(); /****1模块的PWM工作方式初始化*/
T2CON=0X04; /*打开TMR2,且使其前分频为0,
*同时开始输出PWM波形*/
do
{
;
}while(1); /*系统开始输出PWM波形。如果系统是
*多任务的,则可以在此执行其它任务,而
*不会影响PWM波形的产生*/
}
文章评论(0条评论)
登录后参与讨论