51单片机两轮双电机调速代码
时间: 2023-10-27 14:04:52 浏览: 63
以下是一个基于51单片机的双电机调速代码:
```C
#include<reg51.h> //头文件
sbit IN1=P0^0; //定义第一个电机的引脚
sbit IN2=P0^1;
sbit IN3=P0^2; //定义第二个电机的引脚
sbit IN4=P0^3;
void delay(unsigned int i) //延时函数
{
while(i--);
}
void main()
{
unsigned char speed1=50; //定义第一个电机的初始速度
unsigned char speed2=50; //定义第二个电机的初始速度
while(1)
{
if(P1&0x01==0) //当按下按键1时,第一个电机加速
{
speed1++;
if(speed1>100)
{
speed1=100;
}
}
if(P1&0x02==0) //当按下按键2时,第一个电机减速
{
speed1--;
if(speed1<0)
{
speed1=0;
}
}
if(P1&0x04==0) //当按下按键3时,第二个电机加速
{
speed2++;
if(speed2>100)
{
speed2=100;
}
}
if(P1&0x08==0) //当按下按键4时,第二个电机减速
{
speed2--;
if(speed2<0)
{
speed2=0;
}
}
if(speed1>0) //控制第一个电机的旋转方向和速度
{
IN1=1;
IN2=0;
delay(speed1);
}
else if(speed1<0)
{
IN1=0;
IN2=1;
delay(-speed1);
}
else
{
IN1=0;
IN2=0;
}
if(speed2>0) //控制第二个电机的旋转方向和速度
{
IN3=1;
IN4=0;
delay(speed2);
}
else if(speed2<0)
{
IN3=0;
IN4=1;
delay(-speed2);
}
else
{
IN3=0;
IN4=0;
}
}
}
```
本代码使用了一个无限循环来不断地读取按键输入和更新电机速度。其中,按键1和按键2控制第一个电机的速度,按键3和按键4控制第二个电机的速度。每次循环中,根据当前速度控制电机的旋转方向和延时时间,从而达到调速的效果。