基于单片机的智能小车设计(红外避障) - 图文(5)

2019-05-18 23:24

轮式移动机器人的设计报告

void qianjin() {

M1A=1; M1B=0; M2A=1; M2B=0; }

void houtui() {

M1A=0; M1B=1; M2A=0; M2B=1; }

void zuozhuan() {

M1A=1; M1B=0; M2A=0; M2B=1; }

void youzhuan() {

M1A=0; M1B=1; M2A=1; M2B=0; }

16 轮式移动机器人的设计报告

void delay_nus(unsigned int i) //延时:i>=12 ,i的最小延时单12 us { i=i/10; while(--i); }

void delay_nms(unsigned int n) //延时n ms { n=n+1; while(--n)

delay_nus(900); //延时 1ms,同时进行补偿 }

void ControlCar(unsigned char ConType) //定义电机控制子程序 {

tingzhi();

switch(ConType) //判断用户设定电机形式 {

case 1: //前进 //判断用户是否选择形式1 {

qianjin(); break; }

case 2: //后退 //判断用户是否选择形式2 {

houtui(); //M2电机反转 break; }

case 3: //左转 //判断用户是否选择形式3 {

zuozhuan(); //M2电机正转 }

17

break;

轮式移动机器人的设计报告

case 4: //右转 //判断用户是否选择形式4 {

youzhuan(); //M1电机正转 //M2电机反转 }

case 8: //停止 //判断用户是否选择形式8 break;

{

tingzhi(); break; // } } }

void main() //{

bit RunFlag=0; // //RunShow=0; //

ControlCar(8); // while(1) // { Start:

LeftLed=LeftIR; // RightLed=RightIR; // FontLled= FontIR; SB1=FontIR;

if(FontIR == 0) // {

ControlCar(8); // delay_nms (300); ControlCar(2); delay_nms (1000); ControlCar(3);

退出当前选择 主程序入口 定义小车运行标志位 初始化显示状态 初始化小车运行状态 程序主循环 前方左侧指示灯指示出前方左侧红外探头状态 前方右侧指示灯指示出前方右侧红外探头状态 如果前面避障传感器检测到障碍物 停止 //停止300MS 防止电机反相电压冲击 导致系统复位 //后退

//后退1500MS

//

18

轮式移动机器人的设计报告

delay_nms (1800); goto NextRun;

}

if(FontIR == 1 ) {

ControlCar(1); //右侧没有信号时,开始向左转一定的角度 delay_nms (10);

goto NextRun;

}

goto Start; NextRun: ControlCar(1); } 循迹程序

#include //包含51单片机相关的头文件

sbit LeftLed=P2^0; //定义前方左侧指示灯端口 sbit RightLed=P0^7; //定义前方右侧指示灯端口 sbit FontLled=P1^0;

sbit LeftIR=P3^5; //定义前方左侧红外探头端口 sbit RightIR=P3^6; //定义前方右侧红外探头端口 sbit FontIR=P3^7; //定义前方正前方红外探头端口

sbit M1A=P0^0; //定义左侧电机驱动A端 sbit M1B=P0^1; //定义左侧电机驱动B端

sbit M2A=P0^2; //定义右侧电机驱动A端 sbit M2B=P0^3; //定义右侧电机驱动B端

sbit B1=P0^4; //定义语音识识别传感器端口

19

轮式移动机器人的设计报告

sbit SB1=P0^6; //定义蜂鸣器端口

void tingzhi() {

M1A=0; //将M1电机A端初始化为0 M1B=0; //将M1电机B端初始化为0 M2A=0; // M2B=0; }

void qianjin() {

M1A=1; M1B=0; M2A=1; M2B=0; }

void houtui() {

M1A=0; M1B=1; M2A=0; M2B=1; }

void zuozhuan() {

M1A=0; M1B=1; M2A=1; M2B=0; }

将M2电机A端初始化为0 20


基于单片机的智能小车设计(红外避障) - 图文(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:世界石油工业发展史论文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: