/
************************************电机驱动模块为L298N*******************************************
************************************蓝牙模块为HC-06***********************************************
/
#include<reg52.h>
#include "drive.h"
typedef unsigned char u8;
typedef unsigned int u16;
#define uchar unsigned char
u8 a;
uchar k;
sbit IN1=P1^1;
sbit IN2=P1^2;
sbit IN3=P1^3;
sbit IN4=P1^4;
sbit ENA=P1^0;
void com_init() //串口初始化函数,波特率9600bps
{
TMOD = 0x20;
TH1 = 0xf9;
TL1 = 0xf9;
PCON=0X80;
TR1 = 1;
SCON=0X50;
ES = 1;
EA = 1;
}
void delay(unsigned int z)
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=100;y>0;y--);
}
void Stop() //停止
{
while(1)
{
unsigned int i;
IN1=0;
IN2=0;
IN3=0;
IN4=0; //停止
for(i=0;i<100;i++)
{
delay(20);
}
}
}
void Backward() //后退
{
while(1)
{
unsigned int i;
IN1=0;
IN2=1;
IN3=0;
IN4=1; //反转
for(i=0;i<100;i++)
{
delay(20);
}
IN1=0;
IN2=0;
IN3=0;
IN4=0;
}
}
void Forward() //前进
{
while(1)
{
unsigned int i;
IN1=1;
IN2=0;
IN3=1;
IN4=0; //正转
for(i=0;i<100;i++)
{
delay(20);
}
IN1=0;
IN2=0;
IN3=0;
IN4=0;
}
}
void Wleft() //前左
{
while(1)
{
unsigned int i;
IN1=0;
IN2=0;
IN3=1;
IN4=0; //左转
for(i=0;i<100;i++)
{
delay(20);
}
IN1=0;
IN2=0;
IN3=0;
IN4=0;
}
}
void Wright() //前右
{
while(1)
{
unsigned int i;
IN1=1;
IN2=0;
IN3=0;
IN4=0; //右转
for(i=0;i<100;i++)
{
delay(20);
}
IN1=0;
IN2=0;
IN3=0;
IN4=0;
}
}
void Bright() //后右
{
while(1)
{
unsigned int i;
IN1=0;
IN2=0;
IN3=0;
IN4=1; //后右
for(i=0;i<100;i++)
{
delay(20);
}
IN1=0;
IN2=0;
IN3=0;
IN4=0;
}
}
void Bleft() // 后左
{
while(1)
{
unsigned int i;
IN1=0;
IN2=1;
IN3=0;
IN4=0; //后左
for(i=0;i<100;i++)
{
delay(20);
}
IN1=0;
IN2=0;
IN3=0;
IN4=0;
}
}
void main() //主函数
{
com_init(); //串口初始化
while(1); //死循环,等待蓝牙传命令过来
}
void Usart() interrupt 4
{
a=SBUF;
SBUF=a;//出去接收到的数据
switch(a) //判断收到的命令是干嘛的
{
case 'A':Stop();break; //停止A
case 'B':Backward();break; //后退B
case 'C':Forward();break; //前进C
case 'D':Wleft();break; //前左D
case 'E':Wright();break; //前右E
case 'F':Bright();break; //后右F
case 'G':Bleft();break; // 后左G
}
REN=0;
ES=1;
RI = 0;//清除接收中断标志位
while(!TI); //等待发送数据完成
TI=0; //清除发送完成标志位
}
|