这是我第一次发稿,就写一下关于我开发的发布在在360手机助手的《蓝牙控制台》的下位机程序,本程序是我测试成功的。
#include
#define uchar unsigned char
#define uint unsigned int
sbit M2_1=P2^0;
sbit M2_2=P2^1;
sbit dj=P0^0;//舵机控制I/O口
double a;
uint count=0,nu=0,k=3000;
int Buffer[4] = {0}; //串口接收缓存
uchar jd=23;
void initbsp()
{
M2_2=0;
M2_1=0;
TMOD=0X21;
TH1=0xfd;
TL1=0XFD;
TH0=(65536-50)/256;
TL0=(65536-50)%256;
TR1=1;
REN=1;
SM0=0;
SM1=1;
ET0=1;
TR0=1;
ES=1;
EA=1;
}
void Speed1(int k)
{
if(nu {
M2_1=1;
}
else if(nu>k&&nu {
M2_1=0;
}
if(k==4000)k=4000;
if(k==0)k=0;
}
void Speed2(int k)
{
if(nu {
M2_2=1;
}
else if(nu>k&&nu {
M2_2=0;
}
if(k==4000)k=4000;
if(k==0)k=0;
}
void main()
{
initbsp();
while(1)
{
switch(Buffer[0])
{
case ‘0’: jd=23;M2_1=0;M2_2=0; break; //停止
case ‘2’: jd=23;M2_2=0;Speed1(k); break; //前进
case ‘4’: jd=26;M2_2=0;Speed1(k); break;//左转
case ‘5’: jd=20;M2_2=0;Speed1(k); break; //右转
case ‘6’: jd=26;M2_1=0;Speed2(k); break; //左后转
case ‘7’: jd=23;M2_1=0;Speed2(k); break; //后退
case ‘8’: jd=20;M2_1=0;Speed2(k); break; //右后转
default: break;
}
}
}
void ReadBuff()interrupt 4
{
EA = 0;
if(RI == 1) //如果串口接收到数据,RI会置1
{
Buffer[0] = (SBUF – 48); //发送的是ASCII码,
RI = 0;
}
EA = 1;
}
void Time0_ISP(void) interrupt 1 //定时器0,用于电机调速和舵机转向定时
{
TH0=(65536-50)/256;
TL0=(65536-50)%256;
count++;
nu++;
if(count else dj=0;
if(count==400)count=0;
if(nu==4000)nu=0;
}
下面是蓝牙控制台软件的下载地址,http://zhushou.360.cn/detail/index/soft_id/2372618
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!