标题:
自制的蓝牙避障小车程序
[打印本页]
作者:
千江水
时间:
2020-8-14 16:17
标题:
自制的蓝牙避障小车程序
代码测试
#include<reg51.h>
#define uInt unsigned int
#define A judgefollow=1
#define B judgelefta=1;judgerighta=1
#define C judgerightb=1;judgeleftb=1
sbit switchfollow = P1^7; //人体红外感应开关
sbit switchredlight = P3^0; //红外对管开关
sbit switchfeellight = P3^1; //光敏电阻开关
sbit judgefollow = P1^6; //人体红外感应
sbit judgelefta = P1^4; //左边红外对管
sbit judgeleftb = P1^5; //左边光敏电阻
sbit judgerighta = P3^6; //右边红外对管
sbit judgerightb = P3^7; //右边光敏电阻
sbit in1 = P1^0;
sbit in2 = P1^1;
sbit in3 = P1^2;
sbit in4 = P1^3;
void DelayMS(uInt ValMS)
{
uInt uiVal,ujVal;
for(uiVal=0;uiVal<ValMS;uiVal++)
for(ujVal=0;ujVal<113;ujVal++);
} //延时函数
void advance() //前进
{
in1 = 1;
in2 = 0;
in3 = 1;
in4 = 0;
}
void back() //后退
{
in1 = 0;
in2 = 1;
in3 = 0;
in4 = 1;
}
void right() //右转
{
in1 = 1;
in2 = 0; //左轮向前
in3 = 0; //右轮向后
in4 = 1;
}
void left() //左转
{
in1 = 0;
in2 = 1; //左轮向后
in3 = 1; //右轮向前
in4 = 0;
}
void follow()
{
//开始将所有感应接口都变为0
if(judgefollow==0) //再次确认感应
{
left();
DelayMS(1000); //左转寻找感应
if(judgefollow==1) //发现感应
{
advance(); //前进
}
else //左转未发现感应
{
right(); // 右转
if(judgefollow==1) //发现感应
advance(); //前进,跟随目标
}
}
}
void main()
{
P1 = 0x00;
P3 = 0x00;
if(switchfollow==1){A;} //控制人体感应开关
if(switchredlight==1){B;} //控制红外开关
if(switchfeellight==1){C;} //控制光敏开关
if(judgelefta==1&&judgeleftb==1&&judgerighta==1&&judgerightb==1&&judgefollow==1)
{
advance();
} //未发现感应,保持前进
else if(judgefollow==0) //感应到前方有人
{
follow(); // 跟随
}
else if(judgelefta==0||judgeleftb==0)
{
back();
DelayMS(1000);
left();
DelayMS(1000);
advance();
} // 小车感应到右边有物体,进行左转
else if(judgerighta==0||judgerightb==0)
{
back();
DelayMS(1000);
right();
DelayMS(1000);
advance(); //同上,但这次是右边
}
else if(judgerightb==0&&judgeleftb==0) //小车进入黑暗中,开始后退
{
back();
if(judgeleftb==1) //发现左边有光
{
left(); //左转前进
DelayMS(1000);
advance();
}
if(judgerightb==1) //发现右边有光
{
right(); //右转前进
DelayMS(1000);
advance();
}
}
else if(judgerighta==0&&judgelefta==0) //正前方发现障碍
{
back(); //后退
DelayMS(1000);
left(); //左转
DelayMS(1000);
advance(); //前进
}
}
复制代码
避障小车.zip
2020-8-14 16:17 上传
点击文件名下载附件
下载积分: 黑币 -5
78.38 KB, 下载次数: 9, 下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1