基于单片机的智能小车设计-基于单片机的智能小车控制系统设计

河北化工医药职业技术学院毕业论文

图3.5 直流电机原理图

主控电路如图3.6所示。

图3.6主控电路

11

基于单片机的智能小车设计

第4章 软件功能程序及分析

在进行微机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。因此,软件设计在微机控制系统设计中占重要地位。对于本系统,软件更为重要。硕癘鄴颃诌攆檸攜驤蔹。 在单片机控制系统中,大体上可分为数据处理、过程控制两个基本类型。数据处理包括:数据的采集、数字滤波、标度变换等。过程控制程序主要是使单片机按一定的方法进行计算,然后再输出,以便控制生产。阌擻輳嬪諫迁择楨秘騖。 为了完成上述任务,在进行软件设计时,通常把整个过程分成若干个部分,每一部分叫做一个模块。所谓“模块”,实质上就是所完成一定功能,相对独立的程序段,这种程序设计方法叫模块程序设计法。模块程序设计法的主要优点是:氬嚕躑竄贸恳彈瀘颔澩。 (1)单个模块比起一个完整的程序易编写及调试;

(2)模块可以共存,一个模块可以被多个任务在不同条件下调用; (3)模块程序允许设计者分割任务和利用已有程序,为设计者提供方便。 4.1主程序框图

启动 避障 循迹 N N 是否检测到障碍 是否检测到停止线 Y Y

停止

图4.1 主程序框图

12

河北化工医药职业技术学院毕业论文

4.2循迹模块

循迹框图如图4.2所示。

开始 前进 扫描I/O口,是否检测到黑线 N Y 左转 左边 右 右转

图4.2 循迹框图

循迹程序:

void fun1() //循迹子程序 {

if(P25==1&&P26==0&&P27==1) //直走 P11是车前 P10 是车后 dr=1;

if(P25==0&&P26==1&&P27==1) //左拐 dr=2;

if(P25==1&&P26==1&&P27==0) //右拐 dr=3;

if(P10==0||P11==0) //进入壁障标志口 dr=4;

switch(dr) {

case 1:P14=0,P15=1,P16=0,P17=1;break; //直走 case 2:P14=1,P15=0,P16=0,P17=1;break; // 左拐 case 3:P14=0,P15=1,P16=1,P17=0;break; //右拐 P14,P15,控制左电机釷鹆資贏車贖孙滅獅赘。 13

基于单片机的智能小车设计

case 4:yy=1; } }

4.3避障模块

避障框图如图4.3所示。

左、右或无障碍 小车进入避障模式 传感器全部检测到黑线 前右有障碍物 前左有障碍物

小车左走 小车直行 小车右走 Y 小车直行

图4.3 避障框图

避障程序:VOID FUN2()//壁障子程序 {

if(P10==0&&P11==1&&P12==0) // 两边测 直走 {

P14=0,P15=1,P16=0,P17=1; }

if(P10==0&&P11==0&&P12==1) // 左中测 右走 {

P14=1,P15=0,P16=0,P17=1;//左拐 delay(1000); }

if(P10==1&&P11==0&&P12==0) //右中测 左走

14

河北化工医药职业技术学院毕业论文

{

P14=0,P15=1,P16=1,P17=0; //右拐 delay(1000); }

if(P10==0&&P11==0&&P12==0) //全测到 直走 {

P14=0,P15=1,P16=0,P17=1; //直走 }

if(P10==0&&P11==1&&P12==1) {

P14=0,P15=1,P16=0,P17=1;//直走 }

if(P10==1&&P11==1&&P12==0) {

P14=0,P15=1,P16=0,P17=1; //直走 }

if(P25==0&&P26==0&&P27==0) //车停 {

P14=1,P15=1,P16=1,P17=1; TR0=0; } }

15


基于单片机的智能小车设计-基于单片机的智能小车控制系统设计.doc 将本文的Word文档下载到电脑
搜索更多关于: 基于单片机的智能小车设计-基于单片机的智能小车控制系统设计 的文档
相关推荐
相关阅读