|
/*~~~~~~~~~~~~~蓝牙小车~~~~~~~~~~~~~*/
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit IN1=P2^1;//前驱动电机
sbit IN2=P2^2;
sbit IN3=P2^6;
sbit IN4=P2^4;
//sbit IN5=P1^1;//后驱动电机
//sbit IN6=P1^2;
//sbit IN7=P1^3;
//sbit IN8=P1^4;
#define quan_go IN1=1,IN2=0,IN3=1,IN4=0//,IN5=0,IN6=1,IN7=1,IN8=0 //全前进
#define quan_hui IN1=0,IN2=1,IN3=0,IN4=1//,IN5=1,IN6=0,IN7=0,IN8=1 //全后退
#define quan_down IN1=0,IN2=0,IN3=0,IN4=0//,IN5=0,IN6=0,IN7=0,IN8=0 //全停
#define turn_left IN1=0,IN2=0,IN3=1,IN4=0//,IN5=0,IN6=0,IN7=1,IN8=0 //右侧前进
#define turn_right IN1=1,IN2=0,IN3=0,IN4=0//,IN5=0,IN6=1,IN7=0,IN8=0 //左侧前进
uchar a;
void go()
{
quan_go;
}
void hui()
{
quan_hui;
}
void stop()
{
quan_down;
}
void turnleft()
{
turn_left;
}
void turnright()
{
turn_right;
}
void init()
{
TMOD=0x20;//T1定时模式,方式2
TH1=0xFd;//T1定时器初值
TL1=0xFd;
SCON=0x50;//工作方式1,10位异步收发器,波特率可变
PCON=0x00;//波特率不加倍
TR1=1;//T1运行控制位
ES=1;//串口中断允许位
EA=1;
}
void main()
{
init();
while(1)
{
if(a=='A') go();
else if(a=='B') hui();
else if(a=='C')turnleft();
else if(a=='D') turnright();
else stop();
}
}
void serial() interrupt 4
{
a=SBUF;//读取数据
RI=0;//软件清除串口响应
}
|
|