PWM工作原理
PWM 是 Pulse Width Modulation 的缩写,中文意思就是脉冲宽度调制,简称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,其控制简单、灵活和动态响应好等优点而成为电力电子技术最广泛应用的控制方式,其应用领域包括测量,通信,功率控制与变换,电动机控制、伺服控制、调光、开关电源,甚至某些音频放大器,因此研究基于 PWM 技术的正负脉宽数控调制信号发生器具有十分重要的现实意义。
PWM 是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM 信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用 PWM 进行编码。
#include "reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;
sbit PWM=P2^1;
bit DIR;
u16 count,value,timer1=1;
void TimerInit()
{
TMOD|=0X10;
TH1=0XFF;
TL1=0Xff;
ET1=1;
EA=1;
TR1=1;
}
void main()
{
TimerInit();
while(1)
{
if(count>100)
{
count=0;
if(DIR==1)
{
value++;
}
if(DIR==0)
{
value--;
}
}
if(value==1000)
{
DIR=0;
}
if(value==0)
{
DIR=1;
}
if(timer1>1000)
{
timer1=0;
}
if(timer1>value)
{
PWM=1;
}
if(timer1<value)
{
PWM=0;
}
}
}
void Time1(void) interrupt 3
{
TH1=0XFF;
TL1=0Xff;
timer1++;
count++;
}
更多【学习-普中51单片机学习(DA转换)】相关视频教程:www.yxfzedu.com