没事学习
单片机做了一台蓝牙小车,蓝牙控制不了车运动。检测了
手机和蓝牙的链接。正常,用单片机控制电机一个一个检测,也正常,就是连接手机蓝牙以后控制失败。我自己加数码管看手机发送2,数码管能正常显示2,但是小车就是没反应,感觉case语句哪里出现问题,但是自己搞不明白,请懂得大神帮忙看看。PS:这段程序是没加数码管的。
#include
#define uchar unsigned char
#define uint unsigned int
uint a;
***it LED1=P1^0;//左后轮
***it LED2=P1^1;
***it LED3=P1^2;//右后轮
***it LED4=P1^3;
***it LED5=P1^4;//左前轮
***it LED6=P1^5;
***it LED7=P1^6;//右前轮
***it 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;
}