|
这个可以用蓝牙控制小车前进后退左右转
#include <reg52.h>
sbit INT=P2^0;
sbit INT2=P2^1;
sbit INT3=P2^2;
sbit INT4=P2^3;
sbit ENA=P1^1;
sbit ENB=P1^2;
int buf,t;
int zuo,you,zuo1=5,you1=5;
int zuo1,you1;
void delay(int z)
{
int x,y;
for (x=z;y>0;y--)
for (y=114;z>0;z--);
}
void CarGo()
{
zuo=zuo1;
you=you1;
ENA=1;
ENB=1;
INT= 1;
INT2=0;
INT3=1;
INT4=0;
}
void CarBack()
{
zuo=zuo1;
you=you1;
ENA=1;
ENB=1;
INT= 0;
INT2=1;
INT3=0;
INT4=1;
}
void CarTurnLeft()
{
zuo=5;
you=5;
INT=0;
INT2=1;
INT3=1;
INT4=0;
}
void CarTurnRight()
{
zuo=5;
you=5;
INT= 1;
INT2=0;
INT3=0;
INT4=1;
}
void kuaiLeft()
{
zuo=10;
you=10;
INT=0;
INT2=1;
INT3=1;
INT4=0;
}
void kuaiRight()
{
zuo=10;
you=10;
INT= 1;
INT2=0;
INT3=0;
INT4=1;
}
void CarStop()
{
zuo=0;
you=0;
}
void main()
{
SCON=0x50; //设定串口工作方式
PCON=0x00; //波特率不倍增
EA=1;
TMOD|=0x02;
TR0=1;
ET0=1;
TH0=(65535-100)/256;
TL0=(65535-100)%256;
TMOD|=0x20;
ES=1;
TR1=1;
TH1=0xfd;
TL1=0xfd;
while(1);
}
void in() interrupt 1
{
TH0=(65535-100)/256;
TL0=(65535-100)%256;
t++;
if(t==10) t=0;
if(t<zuo)
{
ENB=1;
}
else
{
ENB=0;
}
if(t<you)
{
ENA=1;
}
else
{
ENA=0;
}
}
void serial() interrupt 4
{
TL1=0xfd;
TH1=0xfd; //波特率9600
ES = 0; //关闭串行中断
RI = 0; //清除串行接受标志位
buf = SBUF; //从串口缓冲区取得数据
switch(buf)
{
case 0x00 : CarGo();break;
case 0x01 : CarBack();break;
case 0x02 : CarStop();break;
case 0x03 : CarTurnLeft();break;
case 0x04 : CarTurnRight();break;
case 0x05 : zuo1--,you1--;break;
case 0x06 : zuo1++,you1++;break;
case 0x07 : kuaiLeft();break;
case 0x08 : kuaiRight();break;
}
ES = 1; //允许串口中断
}
|
-
-
蓝牙车.zip
966 Bytes, 下载次数: 39, 下载积分: 黑币 -5
源代码
|