1、序号: 4 编码: 甲4B02704B 第十一届“挑战杯”河南省大学生课外学术科技作品竞赛作 品 申 报 书作品名称: 基于单片机的智能小车的设计与制作 学校全称: 平顶山学院 个人申报者姓名(集 体 名 称): 闫翔 指导老师姓名: 王艳辉 类别: 自然科学类学术论文哲学社会科学类社会调查报告和学术论文科技制作 小发明创造基于单片机的智能小车的设计与制作摘要:随着电子技术、计算机技术和制造技术的飞速发展,智能技术必将迎来它的发展新时代,我们想如果能将其运用到煤矿勘测,环境信息采集等方面,将会更好地满足人们的需求。因此,我们设计了这款智能小车。该设计采用STC89C52单片机为控制核心,采用驱
2、动芯片L298N构成双H桥控制直流电机,利用传感器检测道路上的障碍,控制电动小汽车的自动避障,快慢速行驶,自动寻迹和寻光等功能。在软件设计方面,则分为三个模块,即数据采集模块,信号处理模块,控制器控制电机模块。其中软件系统采用C程序,整个系统的电路结构简单,容易实现,可靠性能高。此设计实现了小车的无人驾驶,通过对路面的检测,由单片机来判断控制小车,使其变得智能化,实现自动的前进,转弯,停止功能.此系统完善后可以应用到道路检测,安全巡逻中,同时,可以以此为基础,将其应用到生活或者工业制造中去,即增添我们的生活乐趣也提高了工业效率,最重要的是能降低工作中的危险性。关键词:单片机;自动循迹;驱动电路
3、 目 录 1绪论4 1.1本课题的研究的背景以及现实意义41.2课题研究的目的和意义61.3本设计的研究方向6 2 方案设计72.1小车车体的选用72.2 主控芯片的选用72.3 PWM调速系统的实现82.4 系统原理图9 3 系统的硬件设计113.1单片机电路的设计113.1.1单片机的功能特性描述113.1.2晶振电路123.1.3复位电路13 3.2红外线循迹避障模块143.2.1黑线循迹模块143.2.2避障模块设计153.3 声控模块163.4 比较模块163.5 测速模块和循光模块173.6 电源模块183.7 电机驱动模块183.7.1L298N引脚结构193.7.2电机驱动原理
4、203.7.3 小车运动逻辑223.8 红外遥控233.8.1红外线遥控系统结构233.8.2编码方式与解码原理24 4 系统的软件设计25 4.1 Keil编译器软件25 4.2 外部中断子程序流程图274.3 主程序流程图28 4.4 定时器中断程序设计28 5系统的总体调试285.1 硬件的测试285.2 系统的软件调试29 6 结论.31 参考文献32 1 绪论 1.1本课题的研究的背景以及现实意义目前,在企业生产技术的不断提高、对自动化技术要求不断加深的条件下,智能车辆以及在智能车辆基础上开发出来的各种产品已成为自动化物流运输、柔性生产组织等一些系统的关键设备。世界上许多国家都在进行
5、智能车辆的研究和开发设计。移动机器人是机器人学中的一个重要分支,出现在20世纪60年代。当时斯坦福研究院的NilsNilssen和CharlesRosen等人,在1966年至1972年期间研制出了取名shakey的自主式移动机器人,目的是将人工智能技术应用在复杂条件下,完成机器人系统的自主推理、规划和控制。从此,移动机器人从无到有,数量不断的增多,智能车辆作为移动机器人的一个重要分支也会得到越来越多的关注。智能车辆,是一个集环境感知、规划决策、自动行驶等功能于一体的综合性系统,它集中地运用了计算机、信息、传感、通信、导航及自动控制等技术,是典型的高新技术综合体。它具有道路障碍的自动识别、自动制
6、动、自动报警、自动保持安全距离和巡航控制等功能。智能车辆主要的特点是在复杂的道路情况下,能自动地操纵和驾驶车辆绕开障碍物并且能沿着预定的轨迹行进。智能车辆在原有系统的基础上增加了一些智能化技术设备:(1)计算机处理系统,主要完成对从摄像机所获取的图像的预处理、增强、分析、识别等工作;(2)摄像机,用来获得道路的图像信息;(3)传感器设备,车速传感器用来获得当前车速,障碍物传感器用来获得前方、侧方和后方障碍物等信息。这种智能小车的主要应用领域包括以下几个方面:(1)军事侦察与环境探测现代战争对军事侦察提出了更高的要求,目前各国普遍重视对军事侦察的建设,采取各种有效措施预防敌方的突然袭击,并广泛应
7、用先进科学技术,不断研制多用途的侦察器材和探测设备,在车上装配摄像机、安全激光测距仪、夜视装置和卫星全球定位仪等设备,通过光缆操纵,完成侦察、监视敌情、情报收集、目标搜索和自主巡逻等任务,进一步的扩大侦察范围,提高侦察的时效性和准确性。(2)探测危险与排除险情在战场上或工程中,经常会遇到各种各样的意外。这时,智能化探测小车就可以发挥很好的作用。战场上,可以使用智能车辆扫除路边炸弹、寻找和销毁地雷等。民用方面,可以探测化学泄漏物质,可以进行救援灭火,以及在强烈地震发生后到废墟中寻找生还人员等。(3)安全检测受损评估在工程建设领域,可以对高速公路自动巡迹,进行道路质量检测和破坏分析检测;对水库堤坝
8、、海岸护岸堤、江河大坝等进行质量和安全性检测。在制造领域,可用于工业管道中机械损伤、裂纹等缺陷的探寻,对输油和输气管线的泄漏和破损点的查找和定位等。(4)智能家居在家庭中,可以用智能小车进行对家具、家用电器,室温等进行远程控制。对这种小车的研究,将为未来环境探测术上的有力支持1.2课题研究的目的和意义科技的进步带动了产品的智能化,单片机的应用更是加快了发展的步伐,它的应用范围日益广泛,已远远超出了计算机科学的领域。小到玩具、信用卡,大到航天器、机器人,从实现数据采集、过程控制、模糊控制等智能系统到人类的日常生活,到处都离不开单片机,此设计正是单片机的一个典型应用。此设计实现了小车的无人驾驶,可
9、以运用到煤矿勘测,环境信息采集等方面,并且该设计具有实际意义,可以应用于考古、机器人、医疗器械等许多方面。尤其是在足球机器人研究方面具有很好的发展前景,在考古方面也应用到了超声波传感器进行检测。所以本设计与实际相结合,现实意义很强。1.3本设计的研究方向单片机的应用领域越来越广泛,无论是在生活,生产上,单片机无处不在。单片机可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域。其应用如此广泛,所以有必要去学习和应用单片机,以满足实际产品开发的需要,也是适应社会智能化、自动化的趋势。通过构建智能小车系统,培养设计并实现自动控制系统的能力。在实践过程中,熟悉以单片机为
10、核心控制芯片,设计小车的各种检测、驱动和显示等外围电路,采用智能控制算法实现小车的智能循迹、自动避障、循光和测速等功能。灵活应用机电等相关学科的理论知识,联系实际电路设计的具体实现方法,达到理论与实践的统一。在此过程中,加深对控制理论的理解和认识。2. 方案设计2.1小车车体的选用 车体选用有两种途径,一种是自制车体,一种是购买玩具车体进行改装。由于自制车体过程复杂,带负载能力差,可谓既费时又费力。于是选择市场上常用的小车底盘,质量坚硬,承载能力强,上面有很多可扩展的小孔,便于模块的安装和使用。本设计采用两个直流步进电机直接与车轮相连,电机上装有编码盘,便于测速、测距试用。2.2 主控芯片的选
11、用一个单片机应用系统的硬件电路设计包含有两部分内容:一是系统扩展,即单片机内部的功能单元,如ROMRAMI/O口定时/计数器中断系统等能量不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路。二是系统配置,既按照系统功能要求配置外围设备,如键盘显示器打印机A/DD/A转换器等,要设计合适的接口电路。STC89C52单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上。如果按功能划分,它由如下功能部件组成,即微处理器、数据存储器、程序存储器、并行I/O口、串行口、定时器/计数器、中断系统及特殊功能寄存器。它们都是通过片内单一总线连接而成,其基本结
12、构依旧是CPU加上外围芯片的传统结构模式。但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式。2.3 PWM调速系统的实现PWM信号的产生通常有两种方法:一种是软件的方法;另一种是硬件的方法。硬件方法的实现已有很多文章介绍,这里不做赘述。本次主要介绍利用单片机通过软件设计产生PWM信号实现电机的调速。本小车的PWM调速采用的是调宽定频的方法,其原理是通过控制驱动电机电压导通与断开的时间比值得到电压平均值来控制小车速度。PWM调速系统与可控整流式调速系统相比有下列优点:由于PWM调速系统的开关频率较高,仅靠电枢电感的滤波作用就可获得平稳的直流电流,低速特性好。同样,由于开关频率高,快速响应
13、特性好,动态抗干扰能力强,可以获得很宽的频带,开关器件只工作在开关状态,主电路损耗小,装置效率高。2.4 系统原理图智能循迹小车主要由STC89C52单片机电路、TCRT5000循迹模块、L298N驱动模块、直流电机、小车底板、电源模块等组成。H桥驱动模块直流电机红外光电循迹传感器模块电源模块单片机电路路 径小车 图2.1智能小车控制系统结构框图 本设计智能小车采用STC89C52单片机进行智能控制。开始由手动启动小车,并复位,通过遥控切换模式,可以完成简单的前进后退左右转弯功能,采用双极式H型PWM脉宽调制技术,达到小车的慢速行驶状态,同时遥控也可以切换到循迹模式、避障模式、循光模式和声控模
14、式。系统原理图如图2-1所示: 图2.2智能小车控制系统结构原理图3 系统的硬件设计3.1 单片机电路的设计一个单片机应用系统的硬件电路设计包含两部分内容:一是系统扩展,即单片机内部的功能单元,如ROM、RAM、I/O、定时器/计数器、中断系统等不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计相应的电路;二是系统的配置,即按照系统功能要求配置外围设备,如键盘、显示器、A/D、D/A转换器等。 3.1.1 单片机的功能特性描述单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格
15、便宜。单片机内部也有和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件。单片机是一种集成电路芯片,采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。本课题选择了STC公司的生产的STC89C52单片机。STC89C52是一种低功耗、高性能CMOS8位微控制器,是带8K字节闪烁可编程可檫除只读存储器。一个芯片上拥有8位CPU,并且在系统可编程Flash。ST
16、C89C52提供给为众多嵌入式控制应用系统高灵活、超有效的解决方案。 STC89C52具有以下标准功能:8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KB EEPROM,两个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。此外,空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。STC89C52单片机AT89S52单片机序存储空间8K字节8K字节数据存储空间512字节256字节EEPROM存储空间内带4K字节无是否可以直接使用串口
17、下载可以不可以 表3.1 STC89C52单片机和AT89S52单片机的对比 3.1.2 晶振电路在STC89S52单片机上内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。在1和XTAL2引脚上外接定时元件,内部振荡器就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。从XTAL1接入,如图3.2所示。由于外部时钟信号经过二分频触发后作为外部时钟电路输入的,所以对外部时钟信号的占空比没有要求。本设计选用的是12MHZ无源晶振、2个22pF电容,使得一个机器周期是1s。晶振的作用是为系统提供
18、基本的时钟信号,而两个电容则是起到并联谐振的作用,如果没电容,振荡电路会因为没有回路而停振,电路不能正常工作。 图3.2 单片机晶振电路图 3.1.3 复位电路复位电路的作用是在上电或复位过程中,控制CPU的复位状态:这段时间内让CPU保持复位状态,而不是一上电或刚复位完毕就工作,防止CPU发出错误的指令、执行错误操作,也可以提高电磁兼容性能。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。施密特触发电路是一种波形整形电路,当任何波形的信号进入电路时,输出在正、负饱和之间跳动,产生方波或脉波输出。不同于比较器,施密特触发电路有两个临界电压且形成一个滞后区,可以防止在滞后范
19、围内之噪声干扰电路的正常工作。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。如图3.3所示上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电且开关复位的操作。 3.2红外线循迹避障模块 3.2.1黑线循迹模块 图3.4单片机复位电路图 该模块主要利用红外线收发管来检测地面上的黑线。当红外发射管位于黑线上时, 发光二极管发出的红外线光被黑色吸收, 不能被反射回来, 此时, 接收端上的光电三级管基极电压为零, 三极管不能导
20、通, 输出高电平, 与之相连的比较器同相端比较, 最终输入单片机对应引脚一个低电平。单片机检测到输入的低电平就会对电机进行相应的处理, 驱动小车转弯, 使得这个红外发射管偏离黑线。一旦离开黑线, 红外接收管就能够接受到红外线, 三极管导通输出低电平, 给单片机引脚输入一个高电平, 单片机检测到该高电平后给相应电机正转命令, 小车恢复直线行驶。依此循环,最终小车就能沿着黑线所设定的的轨迹行驶。左灯中间右灯电机1A电机1B电机2A电机2B左转0111101左大转0010101右转1101011右大转1001010前进1011001停车0001111表3.4信号采集与电机工作状态光电传感器实现循迹的
21、基本电路如3.5所示图3.5循迹传感器电路图 3.2.2避障模块设计常用的避障方法有两种:一是采用超声波避障。超声波受环境影响较大,电路复杂,而且地面对超声波的反射,会影响系统对障碍物的判断。二是采用红外线避障。该方案电路简单,检测距离易调节,灵敏度高,故本设计采用红外线避障的方法。采用三个红外线收发管,分别置于小车左前方、右前方和正前方。若光电避障开关检测到障碍物,输出端会输出一个低电平,并将输出端信号送至比较器比较。若低于设置电压就向单片机单片机输出高电平。单片机根据左中右三个光电避障开关输入高低电平信号的组合来判断障碍物的位置,从而控制电机做出合适的动作。红外线避障的优点是检测障碍物距离
22、的长短可以通过调节比较器的可调电阻来确定。3.3 声控模块本设计结构简单,采用一个拾音器连接一个三级管的放大电路。在没有声音情况下三极管截止输出高电平,而当声音分贝超过一定量的时候三级管导通,电路输出低电平,单片机检测到低电平后执行预先编好的程序输出。具体电路如图3.6所示: 图3.6 拾音器驱动电路3.4 比较模块设计避障和循迹模块时, 为了减小环境自然光的干扰, 故在传感器后接入一个比较器模块,外接一个滑线变阻器, 通过调节电阻的大小, 改变比较器的阈值电压, 从而改变传感器的灵敏度。循迹模块中当较弱的红外线进入到光电三极管的基极, 三极管的集电极会有电压, 但只要调大滑线变阻器接入的阻值
23、, 使得光照射时, 集电极电压高于阈值电压, 此时光电对管仍然输出低电平, 这样就达到了消除环境光的目的。该电路接入的阻值越大, 阈值越高, 就越不容易受环境光的影响, 但灵敏度也就越低, 反应越慢。相反,就越容易受环境光影响, 灵敏度越高, 反应越快 。 图3.7LM393内部电路、外部引脚和外围电路3.5测速模块 测速模块主要是基于红外线收发管检测,它具有速度快、精度高、反应比较灵敏等优点,将一编码盘连接在小车车轮上,另编码盘随车轮的转动而旋转。因此在编码盘两侧的红外收发管会接受到不同的电平,根据电平变换的次数和车轮半径来计算行驶距离。通过定时器来计算速度,并由单片机输出到显示模块。具体电
24、路如图3.8所示: 图3.8 测速模块电路图3.6电源模块电源如果采用干电池,小车的电路功耗过大会导致后轮电机动力不足。本次设计使用7.2V锂离子可充电电池,给电机供电,然后使用7805稳压管来把高电压稳定到5 V分别给单片机和电机驱动芯片供电。电路接法如图3.9所示: 图3.9电源电路的降压 3.7电机驱动原理本设计采用L298N电机专用驱动芯片带动两个直流电动机。直流电机由定子和转子两大部分组成。直流电机运行时静止不动的部分称为定子,定子的主要作用是产生磁场,由机座、主磁极、换向极、端盖、轴承和电刷装置等组成。运行时转动的部分称为转子,其主要作用是产生电磁转矩和感应电动势,是直流电机进行能
25、量转换的枢纽,通常又称为电枢,由转轴、电枢铁心、电枢绕组、换向器等组成。其中L298N是ST公司的产品,比较常见的是15脚Multiwatt封装的L298N,内部包含4通道逻辑驱动电路。可以驱动两个直流电机或驱动两个二相电机,也可单独驱动一个四相电机,输出电压最高可达50V。直接通过电源来调节输出电压,直接通过单片机的IO端口提供信号,使得电路简单,使用更方便。L298N可接受标准的TTL逻辑电平信号VSS,VSS通常接4.57V的电压。4脚VS接电压源,VS可接电压范围VIH为2.546V。L298N芯片输出电流可达2.5 A,可驱动电感负载。L298N是一个内部有两个H桥的高电压大电流全桥
26、式驱动芯片,可以用来驱动直流电动机、步进电动机。使用标准逻辑电平信号控制,直接连接单片机管脚,具有两个使能控制端,使能端在不受输入信号影响的情况下不允许器件工作。L298N有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作。 3.7.1 L298N引脚结构 图3.10L298N 驱动芯片表3.11L298N引脚编号与功能引脚编号名称功能1电流传感器A在该引脚和地之间接小阻值电阻可用来检测电流2输出引脚1内置驱动器A的输出端1,接至电机A3输出引脚2内置驱动器A的输出端2,接至电机A4电机电源端电机供电输入端,电压可达46V5输入引脚1内置驱动器A的逻辑控制输入端16使能端A内置驱动器A的使
27、能端7输入引脚2内置驱动器A的逻辑控制输入端28逻辑地逻辑地9逻辑电源端逻辑控制电路的电源输入端为5V10输入引脚3内置驱动器B的逻辑控制输入端111使能端B内置驱动器B的使能端12输入引脚4内置驱动器B的逻辑控制输入端213输出引脚3内置驱动器B的输出端1,接至电机B14输出引脚4内置驱动器B的输出端2,接至电机B15电流传感器B在该引脚和地之间接小阻值电阻可用来检测电流 3.7.2 电机驱动原理 电路的形状很像字母H。四个三极管就是H桥的四条垂直线,而电机就是H中的横线。 图3.12 L298N内部H桥驱动电路图3.12为一个典型的直流电机的控制电路。被命名为“H桥驱动电路”主要是因为电路
28、的形状很像字母H。四个三极管就是H桥的四条垂直线,而电机就是H中的横线。如图所示,H桥电机驱动电路包含四个三极管和一个电机。电机运转,必须遵循导通对角线上的一对三极管。基于不同三极管对的导通情况可以控制电机的转向,电流可可以从左至右流过电机,也可以从右至左流过电机。如图3.13所示,当Q1管和Q4管导通时,电流就从电源正极经Q1从左至右流过电机,然后再经Q4回到电源负极,该流向的电流将驱动电机顺时针转动。下面分析另一对三极管Q2和Q3,当两个三极管同时导通的情况下,电流将从右至左流过电机。从而驱动电机沿逆时针方向转动。驱动电机时,保证H桥上两个同侧的三极管不会同时导通非常重要。如果三极管Q1和
29、Q2同时导通,那么电流就会从正极穿过两个三极管直接回到负极。此时,电路中除了三极管外没有其他任何负载,因此电路上的电流就可能达到最大值,该电流仅受电源性能限制,可能烧坏三极管。基于上述原因,在实际驱动电路中通常要用硬件电路方便地控制三极管的开关。图3.13所示就是基于这种考虑的改进电路,它在基本H桥电路的基础上增加了四个二极管来保护电路。四个与门同一个“使能”导通信号相接,这样,用这一个信号就能控制整个电路的开关。 图3.13L298N驱动芯片和直流电机接线图 3.7.3小车运动逻辑 图3.14小车运动逻辑使能端A使能端B左电机右电机左电机运行状态右电机运行状态小车运行状态IN1IN2IN3I
30、N4111010正转正转前行111001正转反转右转111011正转停止以右电机为中心原地右转110110反转正转左转110101反转反转后退111110停止正转以左电机为中心原地左转电机控制逻辑如下:以电机A为例,当使能端EN A为高电平时,如果输入引脚IN1为低电平而输入引脚IN2为高电平,电机A反转;如果输入引脚IN1为高电平而输入引脚IN2为低电平,电机A正转。3.8 红外遥控3.8.1红外线遥控系统结构红外线遥控系统是由发射端和接收端两部分组成,如图3-10所示。红外线发射端就是红外遥控器,主要包括键盘、编码调制芯片、红外线发射管。当按下某一按键后,遥控器上的编码调制芯片便进行编码,
31、并结合载波电路的载波信号而成为合成信号,再经红外线发射二极管,将红外线信号发射出去。 图3.15 红外线发射、接收流程红外线接收端主要包括红外线接收模块、解码单片机。其中红外线接收模块里包括光、电转换放大器、解调电路。当红外线发射信号进入接收模块后,在其输出端便可以得到原先的数字控制编码,再经过单片机解码程序进行解码,便可以得知按下了哪一按键,从而完成红外线遥控的动作。3.8.2编码方式与解码原理红外线遥控器的编码与所使用的编码芯片有关,不同的芯片编码有所不同,但基本原理相似。一帧完整的发射码是由引导码、用户编码和键数据码 3 部分组成。 图3.16编码的组成部分引导码由一个 4.5ms 的高
32、电平脉冲及 4.5ms 的低电平脉冲组成。 八位的用户编码被连续发送两次,八位的键数据码也被发送两次,第一次发送的是键数据码的原码,第二次发送的是键数据码的反码,所以,整个数据编码占用 32 位。数据编码方式是通过脉宽调制来实现的,以脉宽为 0.56ms,间隔为0.56ms,周期为 1.125ms 的组合表示二进制的“0” ;以脉宽为 0.56ms,间隔为 1.69ms,周期为 2.25ms 的组合表示二进制的“1” ,其接收端波形如图3-13。 图3.17 二进制“0”的编码方式 图3.18 二进制“1”的编码方式 4 系统的软件设计本设计系统软件采用模块化结构,由主程序定时子程序、避障子程
33、序外部中断子程序、显示子程序调速子程序遥控子程序等构成。4.1 Keil编译器软件 目前,52系列单片机使用的编程语言主要有汇编语言和C语言这两种。最接近机器的语言是汇编语言,其常用来编制与系统硬件相关的程序,如访问I/O口、中断处理程序等,它是一种最快而又最有效的语言,在对于程序的空间和时间要求很高的场合中 使用汇编语言是最佳的选择,然而汇编语言也有其自身的缺点,比如程序开发周期较长、浮点运算处理复杂、程序移植性差等不利因素。在程序设计过程中C语言编程设计思想被称为模块化程序设计思想。有的时候为了有效地完成任务,把所要完成的任务分割成若干个相互独立但相互又仍然有所联系的模块,这些模块使得任务
34、变得相对简单,对外的数据交换相对简单、容易编写、容易检测,容易阅读和维护。本设计采用C语言来编译程序。模块化结构程序的设计,可以使系统软件便于调试与优化,也使其他人更好地理解和阅读系统的程序设计。因此,软件的设计上,运用了模块化程序的结构对软件进行设计,使得程序变得更加直观易懂。程序的主要模块有:主程序、定时溢出中断服务程序、外部中断服务程序。随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连
35、接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。掌握这一软件的使用对于使用51系列单片机的学者来说是十分必要的,如果使用C语言编程,那么Keil几乎就是不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会事半功倍。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。
36、4.2外部中断子程序流程图 图4.1外部中断子程序流程图由于事先测试过按键的值,因此将收到的数值与事先编好的程序对比,与哪个按键匹配后就执行相应的操作。主要设置六个按键切换各个模式,九个按键来进行遥控控制,以便实现前进、后退、左右转弯等各种功能4.3主程序流程框图 图4.2 系统主程序流程图4 .4 定时器中断程序设计 采用不断改变定时器的初值来实现电机的快慢转弯等功能。小车快速行驶中需要转弯时,程序会为定时器自动装入初值,让小车变为慢速,达到稳定精确地转弯。由于定时时间很短电机会平稳减速,不影响小车正常行驶。5 系统的总体调试5.1 按照之前设计好的智能循迹小车原理图,详细计算系统中各个元件
37、的参数,选择相应器件,制作实际电路板。然后选取万用表的200欧姆档来测试电路板。用红、黑表笔来测试电路板上每条走线,如果测量的电阻值非常小时,证明走线没有断开,当其电阻值很大时,证明该条走线断了,应该重新制作走线,使电路板在电气上得到正确地连接。(1)晶振电路的测试在单片机正常运行的必要条件是单片机系统的时钟稳定正常。实际中,因为各种原因导致系统时钟不正常而出现系统无法正常运行的情况时有,因此系统时钟是否振是通电检查的首要环节。在系统通电的状况下,用万用表的直流电压档(20V),分别测量XTAL1和XTAL2引脚的电压,看是否正常,在调试过程中,测得电压XTAL1引脚应为2.05V,XTAT2
38、应为2.15V。(2)复位电路的测试复位不正常也会导致系统不能工作。如果复位引脚始终为高电平,系统将始终处于复位状态;如果始终为低电平,不能产生复位所需的高电平信号脉冲,则系统也可能无法正常工作。单片机正常工作时,RST复位引脚应为0V,按下复位按键时,复位引脚为高电平5V左右11。5.2 系统的软件调试在软件调试中,使用功能强大且的WAVE 6000软件进行软件编译与调试,使用Microcontroller ISP Software及其配套的单片机对程序进行烧录。软件调试的流程是这样的:先分别对主要的功能程序模块进行模拟仿真调试;然后再将各程序模块组织起来进行统调12。软件的烧录:第一步:安
39、装并运行Microcontroller ISP Software软件;第二步:点击Options栏的select device选项;这时出现一个对话窗口,按图选择后,点击OK按键,如出现所示窗口,则说明电脑与开发板没连接好或单片机没插好等,需重装检查硬件连接,如果没有出现则说明初始化成功。第三步:点击File栏的Load Buffer选项打开已经编译好的HEX文件。点击载入,出现对话框点确定,再点击图“A”字图标,出现对话框后,按软件默认选项,点击“OK”“OK”“OK”烧录完成;否则重新检查硬件连接后再重新烧录。通过软件检查出程序中出现了许多的问题。经过多次的模块子程序的修改,一步一步的完善
40、程序,来解决出现的问题。在软件的调试过程中主要遇到的问题如下:(1) 在测试中遇到小车遇到黑线电机不动.解决:首先使用试测仪对电路进行测试,观察是否存在漏焊、虚焊、或电子元件损坏。(2)输入程序后,小车循迹不灵敏,还有就是当拐弯度数过大,小车速度过快的时候,小车偶尔偏离轨道。解决:首先通过调节传感器上的可调电阻,适当的增大或减小电阻可改变灵敏度。可以解决循迹不迅速的问题。6.结论:在学习智能控制原理,单片机及传感器等相关知识的基础上,本课题对以单片机作为中心控制器的智能车控制系统进行了研究,从硬件和软件两方面对智能小车进行了设计。针对小车在行驶过程中的不同要求,采用模块化设计方案设计智能小车,
41、从而实现了智能小车实时显示速度和里程实现规定区域内自动寻迹、避让障物等功能。由于采用模块化设计,本系统具有良好的可升级性和扩展性,在造价上也有一定的优势。采用单片机进行控制处理,它具有编程灵活自由、易于控制、稳定性能好、扩展容易等优点。作品可以作为高级智能玩具,也可以作为大学生学习嵌入式控制的强有力的应用实例,对于移动式机器人的设计制作提供了一定的参考价值。在对智能小车的设计过程中,我了解到我国的机器人教育还处于初级阶段而智能小车的研究为机器人控制理论的学习奠定了扎实的基础,因此本课题具有一定的现实意义。当然,智能小车的“智能”是有限的,由于传感器受到自身性能的影响,传感器获得的信息非常有限,
42、随着传感器种类的增多,一个强大的智能系统应该是一个多传感器系统,也是信息感知的新的研究方向。参考文献1 罗志增,蒋静坪编著.循迹小车感觉与多信息融合M.北京:机械工业出版社,2003:1-10.2 蔡自兴编著. 中国的智能循迹小车研究J. 莆田学院学报, 2002,9 (3):36-39.3 吴林编著. 智能循迹小车主题型号工作的回顾J. 循迹小车技术与应用,2001:6-9.4 欧青立,何刻忠等编著.室外智能循迹小车的发展及其关键技术研究J.循迹小车,2000,22(6):519-5265 杨鹃.多信息融合技术在移动循迹小车避障系统中的应用D. 哈尔滨:哈尔滨理工大学.2007.6 恒盛杰资
43、讯编著Protel电路板设计从入门到精通. 第1版. 中国青年出版社.2006:1-1487 江思敏,陈明编著Protel电路设计教程. 第1版. 清华大学出版社,2006:1-2968 陈晓莉,张俊涛KEIL C51单片机仿真器的设计. 第二版. 陕西科技大学出版社,2006:19209 杨素行编著模拟电子技术基础简明教程第2版.高等教育出版社,2005:532-54710 余孟尝编著数字电子技术基础简明教程. 第2版. 高等教育出版社. 1999:1-36111 李全利,迟荣强编著单片机原理及接口技术.第1版.高等教育出版社,2004:14-19112 王守中编著51单片机开发入门与典型实例.第1版. 人民邮电出版社,2007:103-10828 / 28