51单片机通过蓝牙控制舵机旋转45度和九90度代码
时间: 2023-11-23 19:07:16 浏览: 96
以下是一个基于51单片机和HC-05蓝牙模块的舵机控制程序,可以通过蓝牙控制舵机旋转45度和90度:
```
#include<reg52.h>
#include<intrins.h>
sbit PWM=P1^0; //PWM输出引脚
sbit EN=P1^1; //使能引脚
void delay(int t) //延时函数
{
int i,j;
for(i=0;i<t;i++)
for(j=0;j<100;j++);
}
void main()
{
unsigned char data; //存储蓝牙模块接收到的数据
TMOD=0x20; //定时器1,模式2
TH1=0xFD; //波特率9600
TL1=0xFD;
TR1=1; //启动定时器1
SCON=0x50; //串口模式1,允许接收
EN=0; //使能引脚为低电平
while(1)
{
if(RI) //如果接收到数据
{
data=SBUF; //读取串口数据
RI=0; //清除接收标志
if(data=='a') //如果接收到'a',舵机转动45度
{
PWM=1; //PWM输出高电平
delay(50); //延时2ms
PWM=0; //PWM输出低电平
delay(1950); //延时78ms
}
else if(data=='b') //如果接收到'b',舵机转动90度
{
PWM=1; //PWM输出高电平
delay(100); //延时4ms
PWM=0; //PWM输出低电平
delay(1900); //延时76ms
}
}
}
}
```
在上述代码中,通过控制定时器1和PWM输出引脚,实现舵机的控制。在接收到蓝牙模块发送的字符'a'时,舵机转动45度;在接收到字符'b'时,舵机转动90度。注意,具体的舵机转动角度和延时时间需要根据具体的舵机型号和控制电路进行调整。
阅读全文