三个模拟红外传感器进行检测循迹,具体模式如图所示,使用超声波进行避障,避障距离可以进行调整,预设为200cm,可以代码进行修改。二次开发。
#include
#include
/* #include "ultrasonic_wave.h"//超声波头函数 */
#define unchar unsigned char
#define uint unsigned int
#define ULint unsigned long int
sbit left_go = P0 ^ 0; /* 左轮前进,1有效 */
sbit left_re = P0 ^ 1; /* 左轮后退 */
sbit reght_go = P0 ^ 2; /* 右轮前进 */
sbit reght_re = P0 ^ 3; /* 右轮后退 */
sbit mh = P0 ^ 4; /* 避障 */
sbit rs = P0 ^ 5; /* lcd RE端 */
sbit rw = P0 ^ 6; /* lcd R/W端 */
sbit e = P0 ^ 7; /* lcd E端 */
sbit sou = P1 ^ 6; /* 蜂鸣输出 */
unchar seconds = 60, s = 0; minutes = 59;
char code number[] = { "0123456789" };
char flag = 0;
/* 超声波 */
char flags = 0;
/* 超声波距离 */
char flag1s = 0;
/* 计算定时间 */
uint time = 0;
/* 计算距离 */
ULint L_ = 0;
/* 数值有误 */
unchar FW = 0;
unchar p1zt = 0xff, moshi = 0x00; /* p1zt存p1口寻迹状态,moshi存控制模式 */
/* =====================延时函数==================*/
void delay() /* 延时100us */
{
unchar i;
for ( i = 0; i < 100; i++ )
;
}
void delay_50ms() /* 延时50ms */
{
unchar ms;