标题:
蓝牙遥控小车 前进,后退,避障,左右没问题但是按加速和减速时小车不动了怎么回事
[打印本页]
作者:
zhoutong11
时间:
2018-6-27 21:05
标题:
蓝牙遥控小车 前进,后退,避障,左右没问题但是按加速和减速时小车不动了怎么回事
Q$$~PX@A$MQ5V_7D2SPN)%J.png
(113.44 KB, 下载次数: 23)
下载附件
蓝牙APP图
2018-6-27 21:01 上传
蓝牙APP图
#include<AT89x51.H>
#define Left_moto_go {P2_7=1,P2_6=0;} //?????????
#define Left_moto_back {P2_7=0,P2_6=1;} //?????????
#define Left_moto_Stop {P2_7=0,P2_6=0;} //???????
#define Right_moto_go {P2_4=1,P2_5=0;} //??????????
#define Right_moto_back {P2_4=0,P2_5=1;} //??????????
#define Right_moto_Stop {P2_4=0,P2_5=0;} //???????
#define left 'C'
#define right 'D'
#define up 'A'
#define down 'B'
#define stop 'F'
#define jia '1'
#define jian '2'
#define uint unsigned int //??????????????????
#define uchar unsigned char //?????????????????
char code str[] = "?????????!\n";
char code str1[] = "?????????!\n";
char code str2[] = "??????????!\n";
char code str3[] = "??????????!\n";
char code str4[] = "????????!\n";
char code str5[] = "??????????!\n";
char code str6[] = "??????????!\n";
bit flag_REC=0;
bit flag =0;
bit flag_bz =0;
unsigned char i=0;
unsigned char dat=0;
unsigned char buff[5]=0; //??????????
#define Left_1_led P1_0 //??????
#define Right_1_led P1_1 //???????
/************************************************************************/
//???????
void delay(unsigned int k)
{
unsigned int x,y;
for(x=0;x<k;x++)
for(y=0;y<2000;y++);
}
/************************************************************************/
//????????????
void send_str( )
// ???????
{
unsigned char i = 0;
while(str[i] != '\0')
{
SBUF = str[i];
while(!TI); // ???????????
TI = 0; // ????????????
i++; // ????????
}
}
void send_str1( )
// ???????
{
unsigned char i = 0;
while(str1[i] != '\0')
{
SBUF = str1[i];
while(!TI); // ???????????
TI = 0; // ????????????
i++; // ????????
}
}
void send_str2( )
// ???????
{
unsigned char i = 0;
while(str2[i] != '\0')
{
SBUF = str2[i];
while(!TI); // ???????????
TI = 0; // ????????????
i++; // ????????
}
}
void send_str3()
// ???????
{
unsigned char i = 0;
while(str3[i] != '\0')
{
SBUF = str3[i];
while(!TI); // ???????????
TI = 0; // ????????????
i++; // ????????
}
}
void send_str4()
// ???????
{
unsigned char i = 0;
while(str4[i] != '\0')
{
SBUF = str4[i];
while(!TI); // ???????????
TI = 0; // ????????????
i++; // ????????
}
}
void send_str5()
// ???????
{
unsigned char i = 0;
while(str5[i] != '\0')
{
SBUF = str5[i];
while(!TI); // ???????????
TI = 0; // ????????????
i++; // ????????
}
}
void send_str6()
// ???????
{
unsigned char i = 0;
while(str6[i] != '\0')
{
SBUF = str6[i];
while(!TI); // ???????????
TI = 0; // ????????????
i++; // ????????
}
}
//PWM????????????
void timer(unsigned int t) //?ж???
{
unsigned int i;
for(i=0;i<t;i++) /*????t*50*/
{
TMOD=0X10;
TH0=0x3C;
TL0=0xB0;
TR1=1;
while(!TF1);
TR1=0;
}}
/************************************************************************/
//??????
void run(void)
{
Left_moto_go ; //?????????
Right_moto_go ; //?????????
}
void jiasu()
{
P2_7=1;P2_6=0,P2_4=1;P2_5=0;
timer(50);//???2.2ms
P2_7=0;P2_4=0;
timer(450);//8.8ms
}
void jiansu()
{
P2_7=1;P2_6=0,P2_4=1;P2_5=0;
timer(450);//???2.2ms
P2_7=0;P2_4=0;
timer(50);//8.8ms
}
//??????
void backrun(void)
{
Left_moto_back ; //??????????
Right_moto_back ; //??????????
}
//???
void rightrun(void)
{
Left_moto_go ; //?????????
Right_moto_back ; //??????
}
//???
void leftrun(void)
{
Left_moto_back ; //??????
Right_moto_go; //?????????
}
//STOP
void stoprun(void)
{
Left_moto_Stop ; //??????
Right_moto_Stop ; //??????
}
/************************************************************************/
void sint() interrupt 4 //?ж????3?????
{
if(RI) //???????ж?
{
RI=0;
dat=SBUF;
if(dat=='O'&&(i==0)) //???????????
{
buff[i]=dat;
flag=1; //???????????
}
else
if(flag==1)
{
i++;
buff[i]=dat;
if(i>=2)
{i=0;flag=0;flag_REC=1 ;} // ??????
}
}
}
/*********************************************************************/
/*--??????--*/
void main(void)
{
TMOD=0x20;
TH1=0xFd; //11.0592M????9600??????
TL1=0xFd;
SCON=0x50;
PCON=0x00;
TR1=1;
ES=1;
EA=1;
while(1) /*???????*/
{
if(flag_bz == 1)//?л?????????
{
if(Left_1_led==1&&Right_1_led==1)
run(); //???????????
else
{
if(Left_1_led==1&&Right_1_led==0) //????????????
{
leftrun(); //????С?????????
delay(40);
}
if(Right_1_led==1&&Left_1_led==0) //????????????
{
rightrun(); //????С?????????
delay(40);
}
if(Right_1_led==0&&Left_1_led==0) //??????????????????
{
backrun(); //?????????????
delay(40); //????050????
rightrun(); //?????????????
delay(90);
}
}
}
if(flag_REC==1) //
{
flag_REC=0;
if(buff[0]=='O'&&buff[1]=='N') //?????????O???????????N??????????????????
switch(buff[2])
{
case up : // ???
send_str( );
//run();
jiasu();
flag_bz = 1;
break;
case down: // ????
send_str1( );
flag_bz = 0;
//backrun();
jiansu();
break;
case left: // ???
send_str2( );
leftrun();
flag_bz = 0;
break;
case right: // ???
send_str3( );
rightrun();
flag_bz = 0;
break;
case stop: // ??
send_str4( );
stoprun();
flag_bz = 0;
break;
case jia:
send_str5( );
jiasu();
flag_bz = 0;
break;
case jian:
send_str6( );
jiansu();
flag_bz = 0;
break;
}
}
}
}
复制代码
代码在上面 ,
有没有大神告诉小白哪里有问题 ,感谢感谢!!!!
作者:
zhoutong11
时间:
2018-6-27 21:06
汉字传上去变?号了欸
蓝牙 APP1 ,2 是加速和减速
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1