十三、直流电机驱动
- 介绍
- 直流电机调数
介绍
PWM
PWM是脉冲宽度调制,在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,等效的获取需要的模拟参量,常应用于电机控速、开关电源等领域。通过改变一个周期信号的占空比,来控制输出电平的平均值。越高的占空比提供的功率越大。占空比=高电平和低电平所占时间之比
产生PWM方法
直流电机调数
#include <REGX52.H>
#include "Delay.h"
#include "Key.h"
#include "Nixie.h"// 数码管
#include "Timer0.h"// 计数器
sbit Motor=P1^0;
unsigned char Counter,Compare; //计数值和比较值,用于输出PWM
unsigned char KeyNum,Speed;
void main()
{
Timer0_Init();
while(1)
{
KeyNum=Key();
if(KeyNum==1)
{
Speed++;
Speed%=4;
if(Speed==0){Compare=0;} //设置比较值,改变PWM占空比
if(Speed==1){Compare=50;}
if(Speed==2){Compare=75;}
if(Speed==3){Compare=100;}
}
Nixie(1,Speed);
}
}
void Timer0_Routine() interrupt 1
{
TL0 = 0x9C; //设置定时初值
TH0 = 0xFF; //设置定时初值
Counter++;
Counter%=100; //计数值变化范围限制在0~99
if(Counter<Compare) //计数值小于比较值
{
Motor=1; //输出1
}
else //计数值大于比较值
{
Motor=0; //输出0
}
}