标题:
蓝牙舵机小车单片机程序
[打印本页]
作者:
孙小伟
时间:
2019-2-25 18:24
标题:
蓝牙舵机小车单片机程序
蓝牙舵机小车
关于这个程序有什么问题尽管提问
#include <reg51.h>
typedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char u8;
sbit IRIN=P3^2;
sbit IN1=P1^0;
sbit IN2=P1^1;
sbit ENA=P0^2;
sbit pwm=P2^1;//输出PWM信号
sbit k1=P3^2;
u8 a,b,c;
void delay(int i)
{
while(i--);
}
void uart_init()
{
TMOD|=0x20;
PCON =0x00;
SCON = 0x50;
TH1 = 0xFd; //设置波特率 9600
TL1 = 0xFd;
TR1 = 1; //启动定时器1
ES = 1; //开串口中断
EA = 1; //开总中断
}
void uart() interrupt 4
{
if(RI==1)
RI=0;
a=SBUF;
}
void InitTimer()
{
TMOD|=0x01;//开定时器0,1
TH0=0xff;//定时1.5MS,这时舵机处于0度
TL0=0xf6;
EA=1;//开总断
ET0=1;
TR0=0;
}
void timer0() interrupt 1//定时器0中断函数
{
TH0=0xff;//定时1.5MS,这时舵机处于0度
TL0=0xf6;
b++;
if(b==1) pwm=0;
else if(b==2) pwm=1;
else if(b==c) b=0;
TR0=0;
}
void Int0Init()
{
EX0=0;
IT0=0;
EA=1;
}
void Int0() interrupt 0
{
while(k1==0)
{
if(a==0x03)
{
c=26;
k1=1;
EX0=0;
}
else if(a==0x04)
{
c=37;
k1=1;
EX0=0;
}
else if(a==0x01)
{
c=31;
k1=1;
EX0=0;
}
}
}
void main()
{
InitTimer();
uart_init();
Int0Init();
TR0=0;
while(1)
{
if(a==0x01)
{
IN1=0;
IN2=1;
EX0=1;
TR0=1;
k1=0;
} //左转 28 2
else if(a==0x02)
{
EX0=1;
TR0=0;
IN1=1;
IN2=0;
}
//else if(a==0x00)
else if(a==0x03)
{
EX0=1;
TR0=1;
k1=0;
}
else if(a==0x04)
{
EX0=1;
TR0=1;
k1=0;
}
else if(a==0x05)
{
IN1=0;
IN2=0;
}
}
}
作者:
admin
时间:
2019-2-25 22:54
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
作者:
AZybz
时间:
2019-9-13 18:30
为啥连接了两个P32口
作者:
毕达哥拉斯1.1
时间:
2019-12-19 11:17
烧录后肿么没有反应呢
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1