51pwm控制电机程序
时间: 2023-06-26 10:06:44 浏览: 37
以下是一个简单的51单片机PWM控制电机的程序:
```c
#include <reg51.h>
sbit IN1 = P1^0; //连接到电机控制器的引脚1
sbit IN2 = P1^1; //连接到电机控制器的引脚2
void delay(unsigned int i) //延时函数
{
while(i--);
}
void main()
{
unsigned int i;
TMOD = 0x01; //定时器0工作在模式1
TH0 = 0xFC; //设置定时器0的初始值为 65536 - 5000
TL0 = 0x18;
TR0 = 1; //启动定时器0
while(1)
{
for(i=0;i<100;i++)
{
if(i<50)
{
IN1 = 1; //IN1高电平
IN2 = 0; //IN2低电平
delay(500);
IN1 = 0; //IN1低电平
IN2 = 0; //IN2低电平
delay(500);
}
else
{
IN1 = 0; //IN1低电平
IN2 = 1; //IN2高电平
delay(500);
IN1 = 0; //IN1低电平
IN2 = 0; //IN2低电平
delay(500);
}
}
}
}
```
在这个程序中,我们使用定时器0来生成PWM信号,并通过P1口的引脚控制电机的转动方向和速度。其中IN1和IN2分别连接到电机控制器的引脚1和引脚2,通过改变它们的电平状态来控制电机的转向;而定时器0则产生一个周期为1ms,占空比可调的PWM信号,通过改变PWM信号的占空比来控制电机的转速。