关于《蓝牙控制台》的下位机程序(51版)

这是我第一次发稿,就写一下关于我开发的发布在在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进行处理,非常感谢!

上一篇 2014年11月2日
下一篇 2014年11月2日

相关推荐