蓝牙小车程序出错请大神帮忙看看
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uint a;
sbit LED1=P1^0;//左后轮
sbit LED2=P1^1;
sbit LED3=P1^2;//右后轮
sbit LED4=P1^3;
sbit LED5=P1^4;//左前轮
sbit LED6=P1^5;
sbit LED7=P1^6;//右前轮
sbit LED8=P1^7;
void init() //
{
TMOD=0X20;
TH1=0xfd;
TL1=0xfd ;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
}
void main()
{
init();
while(1);
}
void ser() interrupt 4
{
ES=0;
RI=0;
a=SBUF;
switch(a)
{
case 2: go(); break; //前进
case4: left(); break; //左转
case6: right(); break; //右转
case8: back(); break; //后退
case5: stop(); break; //停止
default:break;
}
ES=1;
}
//····------------小车运行子程序-------*/
void go()
{
LED1= 1;
LED2= 0;
LED3= 1;
LED4= 0;
LED5= 1;
LED6= 0;
LED7= 0;
LED8= 1;
}
void back()
{
LED1= 0;
LED2= 1;
LED3= 0;
LED4= 1;
LED5= 0;
LED6= 1;
LED7= 1;
LED8= 0;
}
void left()
{
LED1= 1;
LED2= 0;
LED3= 0;
LED4= 1;
LED5= 0;
LED6= 1;
LED7= 0;
LED8= 1;
}
void right()
{
LED1= 0;
LED2= 1;
LED3= 1;
LED4= 0;
LED5= 1;
LED6= 0;
LED7= 1;
LED8= 0;
}
void stop()
{
LED1= 0;
LED2= 0;
LED3= 0;
LED4= 0;
LED5= 0;
LED6= 0;
LED7= 0;
LED8= 0;
}
动力不足,没有用h桥吧?
看你的意思好像是单独用高低电平控制的,负载可能不够,尤其四驱
最好上一下电路,光看程序,很难判断问题原因,可以用单片机控制小车行走试试,先确定小车能够行走。
另外这是你程序go里的一部分, LED5= 1; LED6= 0; LED7= 0; LED8= 1;,最后两个引脚的驱动电平和其他的不一样,所以需要贴一下相应的电路图
这样写一下试试:
{
default:break;
}
case4: left(); break; //左转
case6: right(); break; //右转
case8: back(); break; //后退
这几个case是手误,还是粘贴的问题,为什么case和数字之间没有空格
这里粘贴的问题,我加了空格了。
用了h桥,问题好像是蓝牙的问题,我用苹果的lightblue可以控制,安卓的连接上控制不了。
我用苹果的lightblue调试 控制都正常,但是安卓手机就不行。我用电脑端口的串口助手看安卓手机收发的信号,也正常,安卓的就是控制不了