资源描述
毕业设计(论文) 题 目: 基于单片机的红外避障小车 学 院: 浦江学院 专 业: 电子信息工程 2013 年 06 月摘要随着科学技术的进步,智能化和自动化技术越来越普及,各种高科技技术也广泛应用于智能小车河机器人玩具制造领域,使智能机器人越来越多样化。智能小车是一个多种高新技术的集成体,融合了机械,计算机硬件,软件,电子,人工智能等多种科学技术的知识,可以涉及到当今许多前言领域的技术。本设计主要由单片机控制系统模块、电机驱动模块、红外避障模块、声控模块组成,系统以STC89C52RC单片机为核心,通过避障模块和声控模块接受到的信息来控制电机运行。系统通过7节1.5V干电池通过降压电路降成5V稳定直流电对单片机和发动机进行供电。本文介绍了红外避障的原理、系统整体设计及相关软件的介绍。软件部分采用模块化设计思路,整个程序包括主程序,电机驱动程序,信号检测程序,通过小车运行时检测到的运行信息来调用左转、直行或停止函数来控制小车。测试结果表明,本文的各项功能基本正常,除发动机转速不匹配外能实现本设计的所有要求。关键字:STC89C52RC 小车 避障 单片机IAbstractWith the progress of science and technology, intelligent and automation technology is more and more popular,High-tech technology is also widely used in intelligent car river robot toy manufacturing, intelligent robot is more and more diversified. Intelligent car is a variety of high and new technology integration, integration of mechanical, computer hardware, software, electronics, artificial intelligence and so on the many kinds of knowledge, science and technology can be involved in many of today's introduction in the field of technology.This design is mainly composed of single-chip microcomputer control system module, motor drive module, the infrared obstacle avoidance module, voice control module, system with STC89C52RC single-chip microcomputer as the core, through the obstacle avoidance module and voice control module receives information to control the motor running. System by 7 1.5 V dry cell by step-down circuit down into a stable dc 5 V for single chip microcomputer and engine power. This paper introduces the principle of infrared obstacle avoidance, the introduction of overall system design and related software. Software part adopts the modular design thinking, the process includes the main program, motor driver, signal detection procedures, through the car runs the operation of the detected information call to turn left, go straight, or stop function to control the car.Test results show that the various functions of the basic normal, in addition to the engine speed does not match to achieve all the requirements of the design.Key words: obstacle avoidance SCM STC89C52RC carsIII目录摘要IAbstractII第一章 绪论11.1 课题背景11.2课题研究的目的和意义11.3本设计的内容及结构2 1.3.1本设计的内容2 1.3.1本设计的结构2第二章 系统硬件选择12.1 车体结构12.2红外避障传感器原则22.3 STC89C52单片机介绍2第三章 系统硬件设计13.1 系统设计框图13.2系统电路设计23.3 供电电路23.4 声音检测电路23.5 红外避障基本原理23.6 电机驱动电路23.7 单片机最小系统2第四章 程序设计14.1 软件调试平台14.2程序逻辑流程图24.3 系统软件程序2第五章 调试15.1 Protel99SE简介15.2软件调试25.3 硬件调试2 5.3.1声音检测调试2 5.3.2红外避障调试2第六章 总结与展望1结论1致谢1参考文献1附录1 附录一 完整电路图2 附录二 小车实物图2V第一章 绪 论1.1课题背景目前 ,在科技技术不断提高、对自动化技术要求不断加深的环境下,智能车辆以及在智能车辆基础上开发出来的产品已成为自动化物流运输、柔性生产组织等系统的关键设备。世界上许多国家都在积极进行智能车辆的研究和开发设计。移动机器人是机器人学中的一个重要分支,出现于20世纪06年代。当时斯坦福研究院(SRI)的Nils Nilssen和charles Rosen等人,在1966年至1972年中研制出了取名shakey的自主式移动机器人,目的是将人工智能技术应用在复杂环境下,完成机器人系统的自主推理、规划和控制。从此,移动机器人从无到有,数量不断增多,智能车辆作为移动机器人的一个重要分支也得到越来越多的关注。智能小车,是一个集环境感知、规划决策,自动行驶等功能于一体的综合系统,它集中地运用了计算机、传感、信息、通信、导航及白动控制等技术,是典型的高新技术综合体。智能车辆也叫无人车辆,是一个集环境感知、规划决策和多等级辅助驾驶等功能于一体的综合系统。它具有道路障碍自动识别、自动报警、自动制动、自动保持安全距离、车速和巡航控制等功能。智能车辆的主要特点是在复杂的道路情况下,能自动地操纵和驾驶车辆绕开障碍物并沿着预定的道路(轨迹)行进。智能车辆在原有车辆系统的基础上增加了一些智能化技术设备: (1)计算机处理系统,主要完成对来自摄像机所获取的图像的预处理、增强、分析、识别等工作;(2)摄像机,用来获得道路图像信息;(3)传感器设备,车速传感器用来获得当前车速,障碍物传感器用来获得前方、侧方、后方障碍物等信息。智能车辆技术按功能可分为三层,即智能感知/预警系统、车辆驾驶系统和全自动操作系统团。上一层技术是下一层技术的基础。三个层次具体如下:(1)智能感知系统,利用各种传感器来获得车辆自身、车辆行驶的周围环境及驾驶员本身的状态信息,必要时发出预警信息。主要包括碰撞预警系统和驾驶员状态监控系统。碰撞预警系统可以给出前方碰撞警告、盲点警告、车道偏离警告、换道/并道警告、十字路口警告、行人检测与警告、后方碰撞警告等.驾驶员状态监控系统包括驾驶员打吨警告系统、驾驶员位置占有状态监测系统等。(2)辅助驾驶系统,利用智能感知系统的信息进行决策规划,给驾驶员提出驾驶建议或部分地代替驾驶员进行车辆控制操作。主要包括:巡航控制、车辆跟踪系统、准确泊车系统及精确机动系统。(3)车辆自动驾驶系统,这是智能车辆技术的最高层次,它由车载计算机全部自动地实现车辆操作功能。目前,主要发展用于拥挤交通时低速自动驾驶系统、近距离车辆排队驾驶系统等。这种智能小车的主要应用领域包括以下几个方面:(1)军事侦察与环境探测现代战争对军事侦察提出了更高的要求,世界各国普遍重视对军事侦察的建设,采取各种有效措施预防敌方的突然袭击,并广泛应用先进科学技术,不断研制多途的侦察器材和探测设备,在车上装备摄像机、安全激光测距仪、夜视装置和卫星全球定位仪等设备,通过光缆操纵,完成侦察和监视敌情、情报收集、目标搜索和自主巡逻等任务,进一步扩大侦察的范围,提高侦察的时效性和准确性。(2)探测危险与排除险情在战场上或工程中,常常会遇到各种各样的意外。这时,智能化探测小车就会发挥很好的作用。战场上,可以使用智能车辆扫除路边炸弹、寻找和销毁地雷。民用方面,可以探测化学泄漏物质,可以进行地铁灭火,以及在强烈地震发生后到废墟中寻找被埋人员等。(3)安全检测受损评估在工程建设领域,可对高速公路自动巡迹,进行道路质量检测和破坏分析检测;对水库堤坝、海岸护岸堤、江河大坝进行质量和安全性检测。在制造领域,可用于工业管道中机械损伤,裂纹等缺陷的探寻,对输油和输气管线的泄漏和破损点的查找和定位等。(4)智能家居在家庭中,可以用智能小车进行家具、远程控制家中的家用电器,控制室温等等。对这种小车的研究,将为未来环境探测术上的有力支持。1.2课题研究的目的和意义 目前,国内外的许多大学及研究机构都在积极投入人力、财力研制开发针对特殊条件下的安全监测系统。其中包括研究使用远程、无人的方法来进行实现,如机器人、远程监控等。无线传输的发展使得测量变得相对简单而且使得处理数据的速度变得很快甚至可以达到实时处理”。该智能小车可以作为机器人的典型代表。它可以分为三大组成部分:传感器检测部分、执行部分、CPU。机器人要实现自动避障功能,还可以扩展循迹等功能,感知导引线和障碍物。可以实现小车自动识别路线,选择正确的行进路线,并检测到障碍物自动躲避。通过构建智能小车系统,培养设计并实现自动控制系统的能力。在实践过程中,熟悉以单片机为核心控制芯片,设计小车的检测、驱动和显示等外围电路,采用智能控制算法实现小车的智能循迹。灵活应用机电等相关学科的理论知识,联系实际电路设计的具体实现方法,达到理论与实践的统一。在此过程中,加深对控制理论的理解和认识。1.3 本设计的内容及结构1.3.1 设计的内容(1) 障碍检测模块(2) 电源模块为5V;(3) 直流电机的驱动模块电路,及相应的驱动程序;(4) 控速模块(5) 复位电路模块(6) 声控模块1.3.2 本设计的结构本论文结构如下:第2章 介绍了车体结构和硬件选择第3章 介绍了系统整体设计及各部分功能第4章 介绍了软件设计第5章 介绍了开发调试及效果模拟第6章 总结性描述。主要是毕业设计的体会及收获。 第二章 系统硬件选择2.1车体结构2.1.1车轮选择小车为三轮结构,车的结构示意图如图所示。其中前面两个车轮由2个发动机分别控制,通过控制2个发动机来调节小车的前进方向。后面一个车轮起到稳定小车的作用,同时一个车轮可以更方便的实现小车的转向。2.1.2电源选择采用交流电供电的优势是电源驱动能力及电压稳定性好,且负载对电源影响也很小。但由于需要电线对小车供电,极大的影响小车的灵活性及地形的适应能力。考虑到小车需要灵活性好,固采用干电池供电,由于系统耗电量比较大,为保证电压稳定,所以采用7节1.5V干电池通过降压电路将成5V直流电对单片机和发动机供电。2.2红外避障传感器E18-D80NK-N这是一种集发射与接收于一体的光电传感器,发射光经过调制后发出,接收头对反射光进行解调输出。有效的避免了可见光的干扰。透镜的使用,也使得这款传感器最远可以检测80厘米距离的问题(由于红外光的特性,不同颜色的物体,能探测的最大距离也有不同;白色物体最远,黑色物体最近)。检测障碍物的距离可以根据要求通过尾部的电位器旋钮进行调节。该传感器具有探测距离远、受可见光干扰小、价格便宜、易于装配、使用方便等特点,可以广泛应用于机器人避障、流水线计件等众多场合。 该红外传感器是个NPN 型光电开关,其输出状态是0,1,即数字电路中的高电平和低电平。在检测到目标是低电平输出,正常状态是高电平输出,输出时外加一个上拉电阻即可连接到IO口上。其上拉电阻阻值一般在1K 左右。其实物图和原理图如下图 红外传感器E18-D80NK-N实物图 红外传感器E18-D80NK-N内部原理图电器特性:红色:VCC;黑色:GND;黄色:OUT。 U:5VDC I:100mA Sn:3-80CM 尺寸: 直径:17MM 传感器长度:45MM 引线长度:45CM机械特性: 颜色:橙黄色 直径:18MM 长度:45MM 引线长度:18CM注意事项: 在接线的时候,请避免出现电源和地接错的现象,该操作有可能造成传感器永久性损坏;信号输出端请加上拉电阻;为保护动作的可靠和寿命长,请避免有关规定以外的温度外界(户外)条件下,接近传感器虽为耐水结 构,若装上罩使用,勿使水和水容性切削油等淋到,则可更好地提高可靠性及寿命。还请避免在有化学药剂,特别是在强碱、酸、硝酸、铭酸、热浓硫酸等气候中使用。我将它与单片机的P33口连接。正常小车行走时传感器给单片机输送的是高电平当遇到障碍物时,传感器则给单片机一个低电平,传感器给其原理图如下: 图2-2 避障传感电路2.3 STC89C52RC单片机介绍STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。主要特性如下:1. 增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051.2. 工作电压:5.5V3.3V(5V单片机)/3.8V2.0V(3V单片机)3. 工作频率范围:040MHz,相当于普通8051的080MHz,实际工作频率可达48MHz4. 用户应用程序空间为8K字节5. 片上集成512字节RAM6. 通用I/O口(32个),复位后为:P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。7. ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片8. 具有EEPROM功能9. 具有看门狗功能10. 共3个16位定时器/计数器。即定时器T0、T1、T211. 外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由外部中断低电平触发中断方式唤醒12. 通用异步串行口(UART),还可用定时器软件实现多个UART13. 工作温度范围:-40+85(工业级)/075(商业级)14. PDIP封装STC89C52RC单片机的工作模式l 掉电模式:典型功耗<0.1A,可由外部中断唤醒,中断返回后,继续执行原程序l 空闲模式:典型功耗2mAl 正常工作模式:典型功耗4Ma7mAl 掉电模式可由外部中断唤醒,适用于水表、气表等电池供电系统及便携设备STC89C52RC引脚图STC89C52RC引脚功能说明VCC(40引脚):电源电压VSS(20引脚):接地P0端口(P0.0P0.7,3932引脚):P0口是一个漏极开路的8位双向I/O口。作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。此时,P0口内部上拉电阻有效。在Flash ROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。验证时,要求外接上拉电阻。P1端口(P1.0P1.7,18引脚):P1口是一个带内部上拉电阻的8位双向I/O口。P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流()。P2端口(P2.0P2.7,2128引脚):P2口是一个带内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流()。P3端口(P3.0P3.7,1017引脚):P3是一个带内部上拉电阻的8位双向I/O端口。P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流()。(29引脚):外部程序存储器选通信号()是外部程序存储器选通信号。当AT89C51RC从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而访问外部数据存储器时,将不被激活。/VPP(31引脚):访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,必须接GND。注意加密方式1时,将内部锁定位RESET。为了执行内部程序指令,应该接VCC。在Flash编程期间,也接收12伏VPP电压。XTAL1(19引脚):振荡器反相放大器和内部时钟发生电路的输入端。XTAL2(18引脚):振荡器反相放大器的输入端。特殊功能寄存器第三章 系统硬件设计3.1系统设计框图 图3-1 系统设计框图系统设计框图如上所述,整个系统由单片机最小系统,红外检测模块,声音检测模块,电机驱动模块组成。小车起始时是处于静止状态,当检测到声音信号时通过声音检测模块传到单片机P32端,单片机接受到信号后通过程序把P31,P11端状态取反,使小车前进。当再次接受到声音信号时再次取反,小车停止前进。当红外避障模块检测到障碍物时,将一个P33的高电平转成低电平,单片机额接受到信号后,通过程序将P15,P37端由高电平转成低电平,从而使小车左转。小车运行状态相关程序如下:/停止/void Stop(void)L_L=1;L_R=1;R_L=1;R_R=1;/前进/void Forword(void)L_L=1;R_L=1;_nop_();_nop_();L_R=0;R_R=0;/左转/void Turn_Left(void)L_L=0;R_R=0;_nop_();_nop_();L_R=1;R_L=1;delay_ms(2400);注: L_L =P15; /左轮驱动口 L_R =P11; /左轮驱动口 R_L =P36; /右轮驱动口 R_R =P37; /右轮驱动口3.2系统电路设计智能小车采用STC89C52RC单片机进行智能控制, 开始由手动启动小车电源, 并复位。当有声音信号时,根据信号进入相应的行驶状态,在运动过程中由红外光电传感器检测,遇到障碍时通过单片机控制小车进行转向,系统功能原理图如图所示。图3-2系统电路设计3.3供电电路考虑到小车是个不断运动的实验设备,采用干电池供电。总的供电系统是有10.5V的大功率电池储能,经过电压转换单元。由一个10.5V转为5V对控制单元供电。电机驱动和控制电路:通过51单片机,控制端口对直流电机的转速和转向来对电机进行控制。 图3-3电源电路图3.4声音检测电路声音控制电路是在原基础上加的一项功能,通过电路去除杂音,对响度较大的声音进行识别(比如拍手声)。正常说话声则被电路滤除,不会产生信息出入。声音信号通过单片机,经程序使运行状态取反,完成小车的运行状态切换。 图3-4 声音控制电路图声音检测模块程序如下:void Extern_Int0(void) interrupt 0 using 0if(Int0_flag=0)voice_flag=!voice_flag;/检测到一次声音信号,状态取反一次Int0_flag=1;注:Int0_flag初始值为0 当Int0_flag的值为1时调用前进程序,为0时调用停止程序。3.5红外避障基本原理常用的红外遥控系统一般分发射和接收两个部分。发射部分的主要元件为红外发光二极管。它实际上是一只特殊的发光二极管;由于其内部材料不同于普通发光二极管,因而在其两端施加一定电压时,它便发出的是红外线而不是可见光。目前大量的使用的红外发光二极管发出的红外线波长为940mm左右,外形与普通5发光二极管相同,只是颜色不同。红外发光二极管一般有黑色、深蓝、透明三种颜色。判断红外发光二极管好坏的办法与判断普通二极管一样;用万用表电阻挡量一下红外发光二极管的正、反向电阻即可。红外发光二极管的发光效率要用专门的仪器才能精确测定,而业余条件下只能用拉锯法来粗略判判定。接收部分的红外接收管是一种光敏二极管。在实际应用中要给红外接收二极管加反向偏压,它才能正常工作,亦即红外接收二极管在电路中应用时是反向运用,这样才能获得较高的灵敏度。红外发光二极管一般有圆形和方形两种。由于红外发光二极管的发射功率一般都较小(100mW左右),所以红外接收二极管接收到的信号比较微弱,因此就要增加高增益放大电路。常用SM0038、BL9149等红外接收专用放大集成电路。本设计通过E18-D80NK-N传感器,连接单片机P33端口,当正常运行时输入高电平,当检测到障碍时输入低电平。单片机检测到低电平时先判断小车是不是在运行状态,如果是运行状态则通过程序执行左转,由于左转比较复杂,在这里通过延时函数和左转函数及停止函数连续调用,通过多次的测试下完成避障,电路图如下: 图3-5 红外传感电路 红外避障模块程序如下:void Extern_Int1(void) interrupt 2 using 1if(voice_flag=1) /前进状态下,检测到障碍物LED=0;Stop(); /停止delay_ms(1000);Turn_Left(); /左转Stop(); /停止delay_ms(1000);else if(voice_flag=0) Stop(); /停止注:voice_flag是小车状态的表示,1为前进,0为停止,通过声控模块控制。这里先要确保voice_flag=1 才可能执行左转程序。LED=P00 是小车运行指示灯。3.6电机驱动电路直流电机驱动电路采用如下H型PWH电路,用单片机控制驱动电路,起始时程序初始化给R_L、R_R都输入高电平,电机不工作。当检测到声音信号时R_R端变为低电平,发动机正常工作。采用此电路的优点是可以实现转速和方向的控制,采用PWH进行直流电机调速,其实就是把波形作用于电机驱动电路的使用端。整个电路是由电源模块单独供电,通过三级放大电路将单片机信号转成高电压,从而使发动机正常工作。要使电机正常运转,必须导通对角线上的一对场效应管,根据不同场效应管导通情况,电流可能从左至右或从右至左流过电机,从而控制电机的转向。 图3-6 电机驱动电路图3.7单片机最小系统单片机最小系统由复位电路、晶振电路、数据采集接口和电机控制接口组成,单片机最小系统图如图所示。所谓晶振电路即指单片机地时钟电路。该电路通常有内部时钟电路和外部时钟电路。一般选用前者。单片机芯片内部有一个反相放大器构成的振荡器。反相放大器的输入端XTAL1,输出端为XTAL2,把XTAL1和XTAL2与外部石英晶振及两个电容连接起来可构成一个石英晶体振荡如图3-4所示。时钟发生器是一个2分频电路。它把晶体振荡的频率2分频后供给内其他电路。一般电容C1和C2起到稳定振荡频率,快速起振的作用,本电路通过晶振提高了12MHZ的频率。单片机复位时RESET需要保持96个晶振周期的高电平(即需八个机器周期)。复位以后P0-P3口输出高电平,堆栈指针SP指向07H,其他特殊功能寄存器和程序设计数器PC清零。 本设计为上电复位电路, 图3-7 单片机电路第四章 程序设计4.1 软件调试平台Keil for C51是美国Keil Software公司出品的C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil for C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil for C51开发系统各部分功能和使用。C51开发中除必要的硬件外,同样离不开软件,我们写的源程序要变为C51可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。随着C51开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件除了致力于单片机的编程开发平台外,还针对目前最流行C51开发项目出品了Keil for 51软件平台以及支持在线调试的串口烧写。从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision2)将这些部份组合在一起。如图4-1所示。图4-1 Keil for 51 开发平台截图4.2程序逻辑流程图开始初始化否是否检测到声音信号是否小车是否在运行是开始运行停止运行否是否检测到红外信号否小车是否在运行是左转图4-2 程序逻辑流程图4.3系统软件程序#include<reg51.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charsbit EYE =P10; /红外传感器输入口sbit L_L =P15; /左轮驱动口sbit L_R =P11; /左轮驱动口sbit R_L =P36; /右轮驱动口sbit R_R =P37; /右轮驱动口sbit VOICE =P32; /声音检测sbit LED =P00; /小车运行指示灯uchar voice_flag=0;uchar Int0_flag=0;uchar Int0count=0;/延时函数/void delay_ms(unsigned int x) unsigned int j; unsigned char i; for(j=0;j<x;j+) /voice_time=0;for(i=0;i<120;i+); /IO口初始化/void IO_Init(void)L_L=1;L_R=1;R_L=1;R_R=1;/外中断INT0,INT1,配置/void Interrupt_Init(void)EX0=1;/INT0中断允许IT0=1;/INT0下降沿触发EX1=1;/INT1中断允许IT1=0;/INT1低电平触发EA=1;/开总中断/定时器T0初始化/void T0_Init(void)EA =1; /允许CPU中断ET0 = 1; /定时器0中断打开TMOD =0x1; /设定时器0为方式1TH0= 0xFE; TL0= 0x0B; /设定时值为500 usTR0 = 1; /开始定时/停止/void Stop(void)L_L=1;L_R=1;R_L=1;R_R=1;/前进/void Forword(void)L_L=1;R_L=1;_nop_();_nop_();L_R=0;R_R=0;/左转/void Turn_Left(void)L_L=0;R_R=0;_nop_();_nop_();L_R=1;R_L=1;delay_ms(2400);void main(void)IO_Init(); /IO口初始化Interrupt_Init(); /外中断配置T0_Init(); /T0中断配置while(1)/if(Int0count>=40) /500usx40=20ms 声音检测消抖/Int0count=0;/Int0_flag=0;/if(voice_flag=1)LED=0;Forword();/前进else if(voice_flag=0)Stop(); /停止LED=1; void Extern_Int0(void) interrupt 0 using 0if(Int0_flag=0)voice_flag=!voice_flag;/检测到一次声音信号,状态取反一次Int0_flag=1;void Extern_Int1(void) interrupt 2 using 1if(voice_flag=1) /前进状态下,检测到障碍物LED=0;Stop(); /停止delay_ms(1000);Turn_Left(); /左转Stop(); /停止delay_ms(1000);else if(voice_flag=0) Stop(); /停止void Time0(void) interrupt 1 using 2uchar i;TH0=0xFE; /500US 断点 (1)TL0=0x0B; /设定时值Int0count+;if(voice_flag=1)&&(Int0count%2=0)for(i=0;i<3;i+) /右轮停转 用于修正两电机速度不匹配问题R_L=0;R_L=1;if(voice_flag=1)&&(Int0count%10=0)for(i=0;i<6;i+) /左轮停转 用于修正两电机速度不匹配问题L_L=0;L_L=1;if(Int0count>100) /500usx100=50msInt0count=0;Int0_flag=0;第5章 调试5.1 Protel99SE简介Protel99SE14是澳大利亚ProtelTechnology公司推出的一个全32位的电路板设计软件。Protel99SE是应用于Windows9X/2000/NT操作系统下的EDA设计软件,采用设计库管理模式,可以进行联网设计,具有很强的数据交换能力和开放性及3D模拟功能,可以完成电路原理图设计,印制电路板设计和可编程逻辑器件设计等工作,可以设计32个信号层,16个电源-地层和16个机加工层。Protel99SE按照系统功能来划分,Protel99se主要包含以下俩大部分和6个功能模块。 1. 电路工程设计部分(1)电路原理设计部分(Advanced Schematic 99):电路原理图设计部分包括电路图编辑器(简称SCH编辑器)、电路图零件库编辑器(简称Schlib编辑器)和各种文本编辑器。本系统的主要功能是:绘制、修改和编辑电路原理图;更新和修改电路图零件库;查看和编辑有关电路图和零件库的各种报表。 (2)印刷电路板设计系统(Advanced PCB 99):印刷电路板设计系统包括印刷电路板编辑器(简称PCB编辑器)、零件封装编辑器(简称PCBLib编辑器)和电路板组件管理器。本系统的主要功能是:绘制、修改和编辑电路板;更新和修改零件封装;管理电路板组件。(3)自动布线系统(Advanced Route 99):本系统包含一个基于形状(Shape-based)的无栅格自动布线器,用于印刷电路板的自动布线,以实现PCB设计的自动化。2. 电路仿真与PLD部分(1)电路模拟仿真系统(Advanced SIM 99):电路模拟仿真系统包含一个数字/模拟信号仿真器,可提供连续的数字信号和模拟信号,以便对电路原理图进行信号模拟仿真,从而验证其正确性和可行性。 (2)可编程逻辑设计系统(Advanced PLD 99):可编程逻辑设计系统包含一个有语法功能的文本编辑器和一个波形编辑器(Waveform)。本系统的主要功能是;对逻辑电路进行分析、综合;观察信号的波形。利用PLD系统可以最大限度的精简逻辑部件,使数字电路设计达到最简化。 (3)高级信号完整性分析系统(Advanced Integrity 99):信号完整性分析系统提供了一个精确的信号完整性模拟器,可用来分析PCB设计、检查电路设计参数、实验超调量、阻抗和信号谐波要求等。5.2 软件调试本设计采用的是C语言的编程方式,根据设计要求编写程序,并在Keil uVision3软件中进行程序编写的调试。 经过初步的分析设计后,在制作硬件电路的同时,调试也在穿插进行。这样有利于问题的分析和解决,不会造成问题的积累,而且不会因为一个小问题而进行整体电路的检查,从而可以节约大量的调试时间。5.3 硬件调试5.3.1声音检测调试测试方法:将小车放在空旷平地,打开小车电源,不断拍手并观看小车运行状态。测试结果:每次拍手小车均能状态取反,声音检测功能正常。测试效果图请看附录二。5.3.2 小车正常运行调试 测试方法:将小车放在空旷平地,打开小车电源,拍一次手使小车进入运行状态,观看小车运行路线。 测试结果:小车在正常运行时发动机转速不匹配,走出了曲线,通过在软件程序里加入一些修正转速的小程序还是无法修正转速,固智能暂时放弃修正转速。5.3.2 红外避障调试 测试方法:将小车放在宿舍内,打开小车电源,拍一下手让小车运行,在小车前放各种障碍物,观看小车运行状态。 测试结果:大多数情况下小车均能检测到障碍物并实现避障,但遇到黑色物体时无法检测到,因为黑色物体能很好的吸收红外线,所以无法检测到,红外避障功能基本能实现。 测试效果图请看附录二。第六章 总结与展望结 论历经几个月的毕业设计,从最初的资料查找、方案设计,经过最基本的电路设计、调试过程,再到软件设计、测试,我学习了单片机系统设计的整个过程。从传感器信号的处理,到单片机接收并处理信号,再到输出信号至外部系统,通过该作品的设计制作,使我更好的了解了各类传感器,掌握了光电三极管的使用,并熟悉了单片机的中断和定时器的控制,程序中对各种任务的合理安排,使整体系统能够更好的协同工作,增强了自己的动手能力,更好的熟悉的了解了一个单片机系统的开发过程。 测试结果表明,本系统实现了设计任务要求,小车采集红外传感器信号探测障碍物,声音检测模块探测信号,并根据单片机控制模块的分析结果决策和控制下一步的运动形式。基本实现了智能避障小车的要求。本设计使用模块化的设计方法。各个功能在硬件和软件的设计上都实现了模块化,但是本设计还存在这一些不足:小车的直线运行时2个发动机转速不匹配。通过这次毕业设计,使我深刻的理解到学好专业知识的重要性,也理解了为什么要理论结合实际,同时也是我对大学四年学习成果的一个综合检验。这几个月的设计是我对过去所学知识的提高和扩充,为今后的发抢占打下了良好的基础。 致谢历时几个月的毕业设计已经告一段落。经过自己不断的努力以及杨老师的耐心指导和热情帮助,本设计已经基本完成。在这段时间里,杨老师严谨的治学态度和热忱的工作作风令我十分钦佩,他的指导使我对整个毕业设计的思路有了总体的把握,并耐心的帮我解决了许多实际问题,使我有了很大收获,本论文也是在杨老师的指导下修改完成的。在此,我要对他表示由衷的感谢,同时也感谢在整个毕业设计中所有帮助过我的人。 通过这次毕业设计,我深刻地认识到了学好专业知识的重要性,也理解了理论联系实际的含义,并且检验了大学四年的学习成果。这几个月的设计是对过去所学知识的系统提高和扩充过程,为今后的发展打下了良好的基础。虽然在这次设计中对于知识的运用和衔接还不够熟练,但是我将在以后的工作和学习中继续努力、不断完善。由于自身水平有限,设计中一定存在很多不足之处,敬请各位老师批评指正。参考文献1郭惠,吴迅.单片机C语言程序设计完全自学手册M.电子工业出版社,2008.10:1-200.2王东锋,王会良,董冠强. 单片机C语言应用100例M. 电子工业出版社,2009.3:145-300.3韩毅,杨天. 基于HCS12单片机的智能寻迹模型车的设计与实现J.学术期刊,2008,29(18):1535-1955.4 王晓明. 电动机的单片机控制J. 学术期刊,2002,13(15):1322-1755.5 鲍小南.单片机基础. 浙江大学出版社 2002.9 6 徐丽香.模拟电子技术. 电子工业出版社2007.12 7 徐丽香.黎旺星.数字电子技术. 电子工业出版社2006.9 8 谭浩强.C语言程序设计.2版.北京清华大学出版社2008.11 9 王静霞.单片机应用技术(C语言版) 北京:电子工业出版社2009.5 10 冯柏群祁和义.检测与传感技术.北京人民邮电出版社2008.4. 11 王东锋王会良董冠强单片机C语言应用100例M 北京电子工业出版社2009. 12 顾滨赵伟军PROTEL99SE实用教程北京人民邮电出版社2008.6 附录35
展开阅读全文