一 PWM(脉冲宽度调制)
PWM 有 3 个参数,分别是频率、占空比、周期,下面分别给大家介绍 一下这 3 个参数
- PWM 的频率是指每秒钟信号从高电平到低电平再回到高电平的次数。
- PWM的占空比就是在输出的PWM中,高电平持续的时间和该 PWM 信 号的周期持 ? 续的时间之比。
- PWM 的周期就是指一个完整 PWM 信号持续的时间
二 通过软件方式来实现PWM的输出
通过执行软件延时循环程序交替改变端口某个二进制位输出逻辑状态来 产生脉宽调制信号,设置不同的延时时间得到不同 的占空比
利用51单片机的定时器T0来产生PWM波的输出,首先我们需要确定PWM的频率,以频率1KHZ,周期为1ms为例,占空比为D(D可以根据实际情况设置)
三 以下为产生占空比为百分之50,频率为1KHZ的pwm
#include "reg51.h"
sbit pwm_led = P2^0;
unsigned char time = 0;
void main()
{
TMOD = 0x01;//设置TMOD寄存器,定时方式,工作方式1
TH0 = 0xFF;//定时时长为0.1ms
TL0 = 0x9C;
TR0 = 1;//启动计数
ET0 = 1;//T0中断
EA = 1;//开启总中断
while(1);
}
/*定时T0中断服务函数*/
void Timer0() interrupt 1
{
TH0 = 0xFF;//重新赋初始值
TL0 = 0x9C;
time++;
if(time>=10) //确保频率时1KHZ,每次0.1ms,计数10次就是1ms
time = 0;
if(time<=5)
pwm_led = 1;
else
pwm_led = 0;
}
通过利用Protues仿真,如下图:
|