基于51单片机超声波蓝牙遥控器汇编Word格式文档下载.docx

上传人:b****1 文档编号:14164946 上传时间:2022-10-19 格式:DOCX 页数:26 大小:21.69KB
下载 相关 举报
基于51单片机超声波蓝牙遥控器汇编Word格式文档下载.docx_第1页
第1页 / 共26页
基于51单片机超声波蓝牙遥控器汇编Word格式文档下载.docx_第2页
第2页 / 共26页
基于51单片机超声波蓝牙遥控器汇编Word格式文档下载.docx_第3页
第3页 / 共26页
基于51单片机超声波蓝牙遥控器汇编Word格式文档下载.docx_第4页
第4页 / 共26页
基于51单片机超声波蓝牙遥控器汇编Word格式文档下载.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

基于51单片机超声波蓝牙遥控器汇编Word格式文档下载.docx

《基于51单片机超声波蓝牙遥控器汇编Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于51单片机超声波蓝牙遥控器汇编Word格式文档下载.docx(26页珍藏版)》请在冰豆网上搜索。

基于51单片机超声波蓝牙遥控器汇编Word格式文档下载.docx

#defineleft'

C'

#defineright'

D'

#defineup'

A'

#definedown'

B'

#definestop'

F'

charcodestr[]="

收到指令,向前!

\n"

;

charcodestr1[]="

收到指令,向后!

charcodestr2[]="

收到指令,向左!

charcodestr3[]="

收到指令,向右!

charcodestr4[]="

收到指令,停止!

bitflag_REC=0;

bitflag=0;

unsignedchari=0;

unsignedchardat=0;

unsignedcharbuff[5]=0;

//接收缓冲字节

voiddelay(unsignedintk)

{

unsignedintx,y;

for(x=0;

x<

k;

x++)

for(y=0;

y<

2000;

y++);

}

/************************************************************************/

//字符串发送函数

voidsend_str()

//传送字串

{

unsignedchari=0;

while(str[i]!

='

\0'

SBUF=str[i];

while(!

TI);

//等特数据传送

TI=0;

//清除数据传送标志

i++;

//下一个字符

}

}

voidsend_str1()

while(str1[i]!

SBUF=str1[i];

voidsend_str2()

while(str2[i]!

SBUF=str2[i];

voidsend_str3()

while(str3[i]!

SBUF=str3[i];

voidsend_str4()

while(str4[i]!

SBUF=str4[i];

//前速前进

voidrun(void)

{

Left_moto_go;

//左电机往前走

Right_moto_go;

//右电机往前走

//前速后退

voidbackrun(void)

Left_moto_back;

//左电机往后走

Right_moto_back;

//右电机往后走

//左转

voidleftrun(void)

//右转

voidrightrun(void)

//STOP

voidstoprun(void)

Left_moto_Stop;

Right_moto_Stop;

voidsint()interrupt4//中断接收3个字节

if(RI)//是否接收中断

RI=0;

dat=SBUF;

if(dat=='

O'

&

(i==0))//接收数据第一帧

buff[i]=dat;

flag=1;

//开始接收数据

else

if(flag==1)

i++;

if(i>

=2)

{i=0;

flag=0;

flag_REC=1;

}//停止接收

//以上修改

sbitLeftLed=P2^0;

//定义前方左侧指示灯端口

sbitRightLed=P0^7;

//定义前方右侧指示灯端口

sbitFontLled=P1^7;

sbitLeftIR=P3^5;

//定义前方左侧红外探头端口

sbitRightIR=P3^6;

//定义前方右侧红外探头端口

sbitFontIR=P3^7;

//定义前方正前方红外探头端口

sbitM1A=P0^0;

//定义左侧电机驱动A端

sbitM1B=P0^1;

//定义左侧电机驱动B端

sbitM2A=P0^2;

//定义右侧电机驱动A端

sbitM2B=P0^3;

//定义右侧电机驱动B端

sbitB1=P0^4;

//定义语音识识别传感器端口

sbitSB1=P0^6;

//定义蜂鸣器端口

sbitIRIN=P3^3;

//定义红外接收端口

//修改(超声波)

#defineTXP1_3

#defineRXP1_2

#defineForward_L_DATA180//当前进不能走直线的时候,请调节这两个参数,理想的时候是100,100,最大256,最小0。

0的时候最慢,256的时候最快

#defineForward_R_DATA180//例如小车前进的时候有点向左拐,说明右边马达转速过快,那可以取一个值大一点,另外一个值小一点,例如200190

//直流电机因为制造上的误差,同一个脉宽下也不一定速度一致的,需要自己手动调节

sbitL293D_IN1=P0^0;

sbitL293D_IN2=P0^1;

sbitL293D_IN3=P0^2;

sbitL293D_IN4=P0^3;

sbitL293D_EN1=P0^4;

sbitL293D_EN2=P0^5;

sbitBUZZ=P0^6;

voidDelay400Ms(void);

//延时400毫秒函数

unsignedchardisbuff[4]={0,0,0,0};

//用于分别存放距离的值0.1mm、mm、cm和m的值

voidCount(void);

//距离计算函数

unsignedinttime=0;

//用于存放定时器时间值

unsignedlongS=0;

//用于存放距离的值

//报错

bitcflag=0;

//量程溢出标志位

bitturn_right_flag;

//**********************************************************

//函数名称:

Delay1ms(unsignedinti)

//函数功能:

延时i*1ms的子程序(对应于22.1184Mhz晶振)

//形式参数:

unsignedinti

//行参说明:

//返回参数:

//使用说明:

i为要延时的时间长度,单位是MS,最大可以延时65536ms

//**********************************************************

voidDelay1ms(unsignedinti)

unsignedcharj,k;

do{

j=10;

do{

k=50;

_nop_();

}while(--k);

}while(--j);

}while(--i);

}

Delay10us(unsignedchari)

延时i*10us的子程序(对应于22.1184Mhz晶振)

i为要延时的时间长度,单位是US,最大可以延时250ms

voidDelay10us(unsignedchari)

unsignedcharj;

unsignedcharcodeLedShowData[]={0x03,0x9F,0x25,0x0D,0x99,//定义数码管显示数据

0x49,0x41,0x1F,0x01,0x19};

//0,1,2,3,4,5,6,7,8,9

unsignedcharcodeRecvData[]={0x

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1