基于51单片机的超声波导航的设计与制作毕业论文.doc_第1页
基于51单片机的超声波导航的设计与制作毕业论文.doc_第2页
基于51单片机的超声波导航的设计与制作毕业论文.doc_第3页
基于51单片机的超声波导航的设计与制作毕业论文.doc_第4页
基于51单片机的超声波导航的设计与制作毕业论文.doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2011 2012学年第 一 学期毕业设计课题名称: 基于51单片机的超声波导航的设计与制作 总目录第一部分 任务书 第二部分 开题报告 第三部分 毕业设计正文第 一 部 分任务书毕业设计任务书系 部电子信息工程系指导老师 职称讲师学生姓名班级学号设计题目基于51单片机的超声波导航的设计与制作设计内容目标和要求设计内容目标:1、利用超声波传感器作为轮式机器人的双眼,C51单片机作为轮式机器人的大脑,按要求设计硬件电路和编写程序,使轮式机器人能够随时监控前方障碍物的距离。并根据传感器采集的数据作出不同的运动策略。2、(1)能够应用超声波准确前方物体的距离(2)能够应用超声波测距引导轮式教育机器人航行 设计要求:1、提出选题的初步设想和研究目的2、收集、整理与毕业设计有关领域的信息资料3、完成本毕业设计电路原理图设计4、完成软件和硬件系统的调试,功能指标达到技术要求5、根据本毕业设计的设计、编程、工作过程,形成符合学校规定的毕业设计书面文档。教研室审核系部审核第 二 部 分开题报告扬州工业职业技术学院 电子信息工程 系12届毕业设计(论文)开题报告书学生姓名 专业机电一体化班级学号题 目基于51单片机的超声波导航的设计与制作指导教师单丹职称讲师学 位硕士题目类别 工程设计 基础研究 应用研究 其它【课题的内容与要求】 利用超声波传感器作为轮式机器人的双眼,C51单片机作为轮式机器人的大脑,按要求设计硬件电路和编写程序,使轮式机器人能够随时监控前方障碍物的距离。并根据传感器采集的数据作出不同的运动策略。(1)能够应用超声波准确前方物体的距离(2)能够应用超声波测距引导轮式机器人航行【前言】超声波测距是指利用超声波的反射特效进行距离测量。超声波传感器是利用超声波的特性研制而成的传感器, 它是通过传送一个超声波(远高于人的听觉范围)和提供一个对应于爆裂回声返回到传感器所需时间的输出脉冲来工作的。超声波传感器在非接触性测量方面的应用非常广泛,如检测液体水位(特别是具有腐蚀性的液体,如硫酸、硝酸液体),汽车倒车防撞系统,金属/非金属探伤等,都可以用到超声波距离传感器。【方案的比较与评价】利用分立模块的超声波测仪:能测的最小距离比较长,不能实现双向测距,电路复杂,性能稳定性不高。基于51单片机的超声波测仪:能进行双向测距,精度高,功耗低,模块简单,稳定性高。【预期的效果及指标】利用超声波传感器作为轮式机器人的双眼,C51单片机作为轮式机器人的大脑,按要求设计硬件电路和编写程序,使轮式机器人能够随时监控前方障碍物的距离。并根据传感器采集的数据作出不同的运动策略,通过该项目的学习与实践, 可以让读者获得如下知识和技能。【进度安排】2011 年 7 月 1日 - 2011 年 9月 1日 选题、调研、收集资料2011 年 9 月 1日 - 2011 年 10月 1日 论证、开题2011 年 10 月 1 日 - 2011 年 11月 1日 设计(写作初稿)2011 年 11月 1日 - 2011 年 3 月 15 日 修改、定稿、打印【参考文献】【1】陈莹. .基于单片机的超声测距系统 , 华中科技大学;【2】谭洪涛.片机设计测距仪原理及其简单应用 , 重庆通信学;【3】孔雅琼. 基于单片机的超生测距仪研究与开发 , 国防科技大学;【4】胡福云. 基于单片机的超声波测距仪 , 湖北科技大学 科技视野;【指导教师意见】(有针对性地说明选题意义及工作安排是否恰当等)同意提交开题论证 修改后提交 不同意提交(请说明理由)指导教师签章: 年 月 日 【系部意见】同意指导教师意见 不同意指导教师意见(请说明理由) 其它(请说明)系(部)主任签章: 年 月 日第 三 部 分毕业论文正文基于51单片机的超声波导航的设计与制作技术摘 要本设计是基于AT89C51单片机技术所研究的超声波导航小车,超声波传感器对前方障碍物距离进行测量,并通过LED液晶显示出来,左右轮伺服电动机则实现小车对障碍物的躲避。超声波做为智能车避障的一种重要手段,实现简单,计算方便,易于做到实时监控,测量精度也能达到实用的要求。在未来汽车智能化进程中必将得到广泛应用。关键字 AT89C51 片机 超声波Based on 51 single-chip design and production of ultrasonic navigationTian,jin0902 mechanical and electrical integrationAbstract:The design is based on the AT89C51 single-chip technology of ultrasonic navigation vehicle.Ultrasonic sensors measure the distance of obstacles in front .And through the LED liquid crystal display.The left and right wheel motor car for obstacle avoidance.Ultrasonic obstacle avoidance for intelligent vehicle is a kind of important means.Simple,to facilitate the calculation,easy to achieve real-time monitoring.Measurement accuracy is also required to achieve practical.Intelligence process in the next car will be widely applied.Keywords: AT89C51 Single chip microcomputer Ultrasonic wave目 录第一章 引 言11.1 选题背景及目的11.2 课题的概述11.3 设计的主要内容介绍1第二章 设计思路的介绍32.1 AT89C51单片机介绍32.2超声波介绍及其应用领域62.3 超声波距离传感器简介72.4 位差超声波距离传感器工作时序8第三章 超声波导航系统硬件电路的设计103.1单片机最小电路的设计103.2超声波发射接收电路的设计123.3显示模块的设计14第四章 系统软件的设计154.1超声波距离测量程序154.1.1距离测量程序设计思路174.2 超声波导航程序194.2.1 导航程序设计思路22第五章 系统调试245.1仿真环境介绍245.1.1用Keil软件编译程245.2超声波导航元器件的焊接与安装265.3超声波导航所需电子元器件清单27结 论28致 谢29参考文献30第一章 引 言1.1 选题背景及目的随着汽车工业的快速发展,关于汽车的研究也越来越受到人们的关注。智能汽车概念的提出给汽车产业带来机遇也带来了挑战。汽车的智能化必将是未来汽车产业发展的趋势。超声波作为智能车避障的一种重要手段,以其避障实现方便,计算简单,易于做到实时控制,测量精度也能达到实用的要求,在未来汽车智能化进程中必将得到广泛应用。我国作为一个世界大国,在高科技领域也必须占据一席之地,在未来的智能化汽车产业发展必然的,在这种情况下研究超声波在智能车避障上的应用具有深远意义,这将对我国未来智能汽车的研究在世界高科技领域占据领先地位具有重要作用。超声波测距系统主要应用于汽车的倒车雷达、机器人自动避碍行走、建筑施工工地以及一些工业现场例如:液位、井深和管道长度等场合。因此研究超声波测距系统的原理有着很大的现实意义。1.2 课题的概述本文的主要内容是用AT89C51单片机为核心控制元件,设计一个可以测量障碍物距离并当离障碍物距离小于50cm时,会拐弯的智能小车。智能小车通过前方所安装的超声波传感器来发射高频超声波,在遇到障碍物时高频超声波会反射回来,从而测出与前方障碍物的距离,距离通过1602液晶显示器显示出来。拐弯则通过小车的左、右轮伺服电机来完成。本文分别从硬件部分的设计和软件部分的设计来详细阐述。硬件部分包括超声波传感器、左、右轮伺服电机、1602液晶显示器,软件部分包括测距程序、导航程序、显示程序。编程是用了汇编程序和C语言的混合编写,仿真是用了Protues和Keil来实现的。1.3 设计的主要内容介绍本毕业设计是设计出一个可以对前方障碍物体距离测量并躲避障碍物的智能小车,具体有以下几点设计的内容:1距离测量:超声波传感器发射高频超声波,对前方障碍物距离进行测量。2距离显示:通过1602液晶显示对超声波测量结果进行显示。3小车的行走:通过左、右轮伺服电机对小车轮胎进行驱动,电源部分则使用2V干电池。4躲避障碍物:当小车行进到距离障碍物小于50cm时,向左拐弯。 第二章 设计思路的介绍根据设计的要求,系统采用“MCU+传感器+显示设备+执行机构”的总体设计方案,要求MCU对非接触式传感器获取的外部距离信息进行计算转换,将得出的轮式机器人与前方障碍物的距离值送到显示设备显示,并根据程序设定的距离阈值控制轮式机器人实现自动导航功能。其中MCU采用目前性价比较高的AT89C51单片机;传感器采用“超声波传感器”,以非接触的形式测量前方物体的距离;显示设备采用LCD1602液晶显示模块;执行机构采用PARALLAX公司生产的连续旋转伺服电机,其优点是编程控制方便且不需额外增加驱动电路。系统总体框图如下:图2-1 系统框图2.1 AT89C51单片机介绍AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图2-2所示。图2-2 51系列单片机AT89C51单片机管脚说明VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:P3口管脚备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。LE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度2.2超声波介绍及其应用领域当物体振动时会发出声音。科学家们将每秒钟振动的次数称为声音的频率。它的单位是赫兹。人类耳朵听到的声波频率为20-20K赫兹。当声波的振动大于20K赫兹或小于20赫兹时,人们便听不见了。因此,把频率高于20K赫兹的声波称为超声波。超声波的优势在于:1、 超声波在传播时,方向性强,能量易于集中。2、 超声波能在各种不同媒质中传播,且可传播足够远的距离。 3、超声与传声媒质的相互作用适中,易于携带有关传声媒质状态的信息(诊断或对传声媒质产生效应。(治疗) 超声波是一种波动形式,它可以作为探测与负载信息的载体或媒介(如B超等用作诊断)。4、 超声波同时又是一种能量形式,当其强度超过一定值时,它就可以通过与传播超声波的媒质的相互作用,去影响,改变以致破坏后者的状态,性质及结构(用作治疗)。 5、针对以上超声波的优点,超声波的主要应用领域有: (一)工程学方面的应用:水下定位与通讯、地下资源勘查等 (二)生物学方面的应用:剪切大分子、生物工程及处理种子等 (三)诊断学方面的应用:A型、B型、M型、D型、双功及彩超等 (四)治疗学方面的应用:理疗、治癌、外科、体外碎石、牙科等 (五)机械学方面的应用:防锈油脂的去除:量具刀具的清洗:机械零部件的除油除锈发动机:化油器及汽车零件的清洗等 (六)表面处理方面的应用:电镀前的除油除锈:离子镀前的清洗:磷化处理:清除积碳:氧化皮等 (七)超声波清洗:清除污染物,疏通细小孔洞,如:清洗印章,古董修复和汽车电喷头疏通等 (八)超声波搅拌:加快溶解,提高均匀度,加快物理化学反应,防止过腐蚀和加速油水乳化,如:溶剂染料混合和超声磷化等 (九)超声波凝聚:加速沉淀,分离,如:种子浮选和饮料除渣等 (十)超声波杀菌:杀灭细菌及有机污染物,如:污水处理和除气等 (十一)超声波粉碎:降低溶质颗粒度,如:细胞粉碎和化学检测等 (十二)超声波封孔:排除间隙气体,提高整体密度,如:工件浸漆等 理论研究表明,在振幅相同的情况下,一个物体振动的能量与振动频率成正比,超声波在介质中传播时,介质质点振动的频率很高,因而能量很大。在我国北方干燥的冬季,如果把超声波通入水罐中,剧烈的振动会使罐中的水破碎成许多小雾滴,再用小风扇把雾滴吹入室内,就可以增加室内空气湿度,这就是超声波加湿器的原理。2.3 超声波距离传感器简介 超声波传感器是利用超声波的特性研制而成的传感器, 它是通过传送一个超声波(远高于人的听觉范围)和提供一个对应于爆裂回声返回到传感器所需时间的输出脉冲来工作的。超声波传感器在非接触性测量方面的应用非常广泛,如检测液体水位(特别是具有腐蚀性的液体,如硫酸、硝酸液体),汽车倒车防撞系统,金属/非金属探伤等,都可以用到超声波距离传感器。本章应用位差超声波距离传感器作为机器人运动的双眼(测距范围是:2厘米至3米),C51单片机作为机器人的大脑,随时判断和监控前方障碍物的距离。图2-3 位差超声波传感器测距示意图2.4 位差超声波距离传感器工作时序位差超声波距离传感器通过发射短超声波爆裂,然后听回音来探测物体。通过测量回波脉冲的宽度(即时间),就能计算出目标的距离,在主机微控制器发送的触发脉冲的控制下,位差超声波传感器发出一道短40 kHz的(超声波)爆裂声,此爆裂声在空气中以约1130英尺每秒的速度传播,当碰到物体时便反射回到传感器,此时传感器会产生一个输出脉冲,向主机微控制器表示回波被探测,这个脉冲宽度就是对应于爆裂回声返回到传感器所需时间。图2-4 位差超声波传感器工作时序图注意:位差超声波距离传感器在下列情况下不能精确地测量距离:a) 与物体距离大于3米;b) 与物体的表面形成的反射角太小,使声音不能反映回到传感器;c) 物体太小以致没有足够强度的声音返回到传感器。2-5 超声波不能精确测距的三种情况第三章 超声波导航系统硬件电路的设计基于C51单片机的超声波距离检测电路原理如图3-1所示。图3-1 系统原理3.1单片机最小电路的设计如图3-3所示,单片机最小电路是由晶振电路和复位电路所组成。图3-2片机最小电路晶振电路:AT89C51单片机的振荡器输入分别由引脚19(XTAL1)和引脚18(XTAL2)来完成。只要将这两个引脚外接石英晶体和陶瓷电容,就可与CPU内部组成完整的振荡电路。 AT89C51单片机的一个机器周期含有6个状态周期,而每个状态周期为2个振荡器周期,因此一个机器周期共有12个振荡周期,如振荡器的频率为12MHz,一个振荡器周期为1/12微秒,而一个机器周期为1微秒。复位电路:复位电路产生复位信号,复位信号送入RST后还要送至片内的施密特触发器,由片内复位电路在每个机器周器的S5P2时刻对触发器输出采样信号,然后由内部复位电路产生复位操作所要的信号。一般的复位电路可分为上电自动复位和按键复位,我们在此选用的是按键复位。 上电自动复位原理:RST 引脚是复位信号的输入端,只要高电平的复位信号持续两个机器周期以上的有效时间,就可以使单片机上电复位。上电自动复位是通过电容充电实现的,上电瞬间,RST端电位与VCC相同,随充电电流的减少,RST的电位逐渐下降,直到复位信号无效。按键复位在此不在作过多的介绍,其原理和上电复位是相同的。但其采用的是脉冲复位电路和电平复位电路两种。3.2超声波发射接收电路的设计发射电路主要由反向器74LS04(74HC04)和超声波发射换能器T(发射端)构成,单片机RB1端口输出的40 kHz方渡信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反向器后进到超声波换能器的另一个电极。用这种推挽形式将方渡信号加到超声波换能器两端,可以提高超声波的发射强度。输出端采用两个反向器并联,用以提高驱动能力。模块,一方面可以提高反向器74LS04(74HC04)输出高电平的驱动能力,另一方面可以增加超声换能器的阻尼效果,缩短其自由振荡的时间。压电式超声波换能器是利用压电晶体的谐振来工作的,它有两个压电晶片和一个共振板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动产生超声波,这时它就是一个超声渡发生器;反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声渡接收换能器了。超声波发射换能器与接收换能器其结构上稍有不同,使用时应分清器件上的标志。我们需要注意的是,超声波在空气中传播时受到环境的影响衰减比较大,理论上讲发射探头的电压越高,功率越大,发射的距离就越远。但是,传感器的发射有其工作电压的极限值,工作电压超过了这个极限值之后,会对传感器的内部电路造成不可恢复的损害,这样就并不能有效的发射出准确的脉冲信号。图3-3 超声波发射电路图集成电路CX20106A是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率38 KHz与测距的超声波频率40 KHz较为接近,可以利用它制作超声波检测接收电路。实验证明用CX20106A接收超声波(无信号时输出高电平),具有很高的灵敏度和较强的抗干扰能力。适当更改电容C4的大小,可以改变接收电路的灵敏度和抗干扰能力。CX20106A的2号管脚是一个RC电路。电阻减小 电容增大 放大倍数增大。但是电阻太小也不行,会导致没接受到信号7号管脚也有低电平产生。 这样就不能准确的测出距离了。所以网上的有些原理图只能做个参考了。具体2号管脚的电容,电阻值要根据实际的调试电路来确定的。图3-4 超声波检测接收电路图3.3显示模块的设计 1602液晶显示电路单片机将计算处理的结果采用1602液晶进行显示,显示电路的电路原理图如图3-5所示图 3-5 1602液晶显示电路第四章 系统软件的设计4.1超声波距离测量程序 根据超声波传感器的时序原理图,应用c51单片机定时/计数器实现对前方物体距离的测量并在LCD模块上显示。程序名:distance.c功 能:利用超声波传感器测距,并在LCD上显示距离值。#includeat89x52.h #includeuart.h #include #define uint unsigned int#define uchar unsigned charvoid delay_ns(uint i);void delay_nms(uint n); void Time0_Init (void);void main(void) uint count,x,H,L,x1,x2; /定义变量 uart_Init(); /串口初始化 Time0_Init();/计数器初始化 LCM_Init(); /LCD模块初始化 printf(Program Running!n); while(1) /进入循环体 TL0 = 0;/计数器低位赋初值0 TH0 = 0;/计数器高位赋初值0 P1_3 = 0 ;/置P1_3为0 P1_3 = 1; /置P1_3为1 delay_ns(5); /延时5sP1_3 = 0 ; delay_ns(750); while(!P1_3) ;TR0 = 1; while (P1_3); TR0 = 0;/定时器1计时停止H = TH0;L = TL0; H = TH0;L = TL0; count=H*256 + L; x=count/29.034; if(x0&x400) x=x/2; x1=x/10;x2=x%10;Set_xy_LCM(0,0);Write_Data_LCM(0x30+x1);/在LCD上显示距离的十位数Set_xy_LCM(0,1);Write_Data_LCM(0x30+x2); /在LCD上显示距离的显示个位数Display_List_Char(0, 2, cm); printf(x = %d cmn,x); /在PC机上显示器上显示所测到的距离 elseprintf(no ping!); delay_nms(200); /延时200msvoid delay_ns(uint i) /延时ns i=i/10; while(-i); void delay_nms(uint n) /延时n ms n=n+1; while(-n) delay_ns(900); void Time0_Init (void) /计数器0初始化程序TMOD |= 0x01;/计数器选择工作模式1TL0 = 0;/计数器低四位赋初值零TH0 = 0;/计数器高四位赋初值零TR0 = 0;/停止计数4.1.1距离测量程序设计思路简要分析以上程序的基本设计思路,用流程图表示如下:开始LCM及串口初始化延时75S产生5S触发脉冲控制引脚置高定时器计数开始N引脚电下降沿?Y定时器停止计数将计数值转换为距离调显示函数图4-1距离测量程序流程图主要分为两步:1、先是根据位差超声波传感器的控制时序图,起动位差超声波距离传感器,即通过单片机编程,给超声波传感器的信号引脚提供一个持续时间为5s的高电平,然后拉低信号引脚750s,这样位差超声波传感器就被启动,发出超声爆裂,与此同时,启动单片机的定时器开始计数,当超声波遇到物体时会立即反射回来,位差超声波传感器的接收器接到回波时,会自动拉低其信号引脚的电平,单片机查询到此引脚的电平下降沿到来时停止定时器计数,此时定时器计数值就间接反应了超声波从反射到返回所经历的时间。2、然后读出定时器的计数值除以2,便得到超声波在遇到被测物体返回的时间,根据:距离=速度*时间,就可以计算出前方物体的距离,因超声波在常温下的空气介质中传播的速度大约为344m/s, 即29.034s超声波能传播1cm,所以在程序中用语句x=count/29.034来计算距离值,获得被测距离值后,调用LCD显示函数将距离值在LCD模块上显示出来。4.2 超声波导航程序根据位差超声波距离传感器测量得的“距离”信息进行避障行走;当轮式教育机器人距离前面障碍物小于20cm时,它会向左拐改变行进方向,避免与物体碰撞。程序名:moveroaming.c功 能:利用超声波传感器探测前方物体并引导轮式教育机器人避开障碍物#includeat89x52.h #define uint unsigned int#define uchar unsigned charvoid delay_ns(uint i);void delay_nms(uint n);void Forward(void);void Left_Turn(void);void Right_Turn(void) ;void Backward(void) ;void Time0_Init (void);int main(void) /主函数,程序从这里开始运行 uint count,x,H,L; /定义无符号整型变量count,x,Time0_Init (); while(1)/循环 TL0 = 0;/计数器低位赋初值0 TH0 = 0;/计数器高位赋初值0 P1_3 = 0 ;/置P1_4输出为高电平,其余的输出低电平 P1_3 = 1; delay_ns(5); /延时5s P1_3 = 0 ; delay_ns(750); while(!P1_3) ;TR0 = 1; while (P1_3); TR0 = 0;/定时器1计时停止H = TH0;L = TL0; count=H*256 + L; x=count/29.034; if(x=20) /如果距离小于20cm时 Backward(); /后退 Left_Turn(); /向左转 else /距离不小于等于20cm时 Forward(); /向前走 delay_nms(30); /延时30msvoid delay_ns(uint i) /延时ns i=i/10; while(-i); void delay_nms(uint n) /延时n ms n=n+1; while(-n) delay_ns(900); void Time0_Init (void) /计数器初始化TMOD |= 0x01; /计数器选取方式1TL0 = 0;/计数器低位赋初值0TH0 = 0;/计数器高位赋初值0TR0 = 0; /停止计数void Forward(void) /声明一个前进子函数P1_0 = 1; /设置P1_0输出高电平delay_ns(1700); /延时0.0017s P1_0 =0; /设置P1_0输出低电平P1_1 = 1; /设置P1_1输出高电平delay_ns(1300); /延时0.0013sP1_1 = 0; /设置P1_1输出低电平delay_nms(20); /延时20msvoid Left_Turn(void) /声明一个向左子函数 uint i;for(i=1;i=7;i+) P1_0 = 1; /设置P1_0输出高电平 delay_ns(1300); /延时0.0013s P1_0 = 0; /设置P1_0输出低电平 P1_1 = 1; /设置P1_1输出高电平 delay_ns(1300); /延时0.0013s P1_1 = 0; /设置P1_1输出低电平 delay_nms(20); /延时20ms void Backward(void) /声明一个向后子函数 uint i;for(i=1;i=4;i+) P1_0 = 1; /设置P1_0输出高电平 delay_ns(1300); /延时0.0013s P1_0 = 0; /设置P1_0输出低电平 P1_1 = 1; /设置P1_1输出高电平 delay_ns(1700); /延时0.0017s P1_1 = 0; /设置P1_1输出低电平 delay_nms(20); /延时20ms 4.2.1 导航程序设计思路下面简要分析以上程序的基本设计思路,用流程图表示如下:开始LCM及串口初始化延时75S产生5S触发脉冲控制引脚置高定时器计数开始N引脚电下降沿?Y定时器停止计数将计数值转换为距离距离20cm?N调用前进函数调用左拐函数Y调用后退函数图4-2 导航程序流程图第五章 系统调试5.1仿真环境介绍5.1.1用Keil软件编译程Keil Vision3是Keil C51(V8.02)工具包中的一个重要组件,Vision3是用于多种8051MCU的集成开发环境(IDE,Integrated Development Environment),集编辑、编译、连接、调试、仿真于一体,支持汇编和C语言的程序设计。Vision3提供对多种最新的8051类MCU支持,其内嵌的仿真器不但可以对目标系统进行实时在线仿真,而且允许模拟仿真, 从而对没有仿真器的用户带来了便利。打开Keil Vision3软件后,新建一个工程,选择CPU的型号和厂家,这里我所选用的是AT89C51单片机,如图 5-1。在上述工程对话框中新建一个文件,保存文件名为huibian 类型为.C后缀,保存完后将文件加到工程中。图选择AT89C51芯片选择Source Group1中的Add/Remove Source File 菜单项,将出现Add/Remove Source Code Files对话框。添加后,在文件中写入程序。写完后应该编译该程序是否正确。其显示如图5-2所示。图5-2 程序的写入和编译因为我所编写的程序包含了汇编语言和C语言,所以对程序进行编译之前,要对Keil软件进行设置,具体设置就不详细介绍了,以下是其中的一个步骤,如图5-2所示:生成.HEX文件,进行编译,如图5-2所示:图5-2程序编译如果要在KILE中仿真就还要生成16进制的文件。点击Traget图标,到Options for target target1对话框,并在其Output标签中选择生成16进制的文件的选项。如图5-3所示。图 5-3 生成文件5.2超声波导航元器件的焊接与安装图5-4 元件安装图5.3超声波导航所需电子元器件清单AT89C51单片机 1块1062液晶屏1只1.5V干电池1只左轮伺服电机1只右轮伺服电机1只按键开关2只超声波发送头1个超声波接收头1只12MHZ晶振1块USB借口1个PNP三极管4个结 论 超声波测距是指利用超声波的反射特效进行距离测量。超声波传感器是利用超声波的特性研制而成的传感器, 它是通过传送一个超声波(远高于人的听觉范围)和提供一个对应于爆裂回声返回到传感器所需时间的输出脉冲来工作的。超声波传感器在非接触性测量方面的应用非常广泛,如检测液体水位(特别是具有腐蚀性的液体,如硫酸、硝酸液体),汽车倒车防撞系统,金属/非金属探伤等,都可以用到超声波距离传感器。 利用超声波传感器作为轮式教育机器人的双眼,C51单片机作为轮式教育机器人的大脑,按要求设计硬件电路和编写程序,使轮式教育机器人能够随时监控前方障碍物的距离。并根据传感器采集的数据作出不同的运动策略。(1)能够应用超声波准确前方物体的距离(2)能够应用超声波测距引导轮式机器人航行致 谢时光荏苒,三年的大学时光转瞬之间接近了尾声。这几个月辛苦的论文写作,既磨练了我的意志,也对我大学期间所学的知识进行了一次考察和升华。在毕业论文付梓之际,我想向曾经给过我帮助和支持的人们表示衷心的感谢。 首先,要向我的指导老师单丹致以诚挚的谢意。在写作过程中,从选题立意、谋篇布局、收集资料、形成提纲直至全文定稿,都是在老师的悉心指导下完成的。在整个毕业论文指导期间,老师严谨求实的治学态度、兢兢业业的工作作风以及谦厚亲切的师德风范使我受益匪浅。在老师的指导下我明晰了论文的关键所在以及文章的主旨思路,也学到了诸多方面的知识,专业水平有了很大的提高。 其次,要感谢这三年中我所有的恩师。是他们在学习上的不断指导和帮助,增添了我智慧的力量,更加懂得了为人处事的道理;是他们用渊博的知识和精心的授课深深吸引了我,使我感到了学习的快乐,较好地掌握了每门功课的内容,为毕业论文的顺利完成打下了良好的基础。 再次,要感谢我亲爱的同学们,是他们伴我度过了人生中最关键、最美好的大学时光,和他们日常相处的点点滴滴让我印象深刻。同学们对我的启发和帮助,为我营造了和谐的研究氛围,给予我战胜困难的勇气和信心。 最后,再次衷心的感谢各位老师和在我论文写作过程中给予我帮助的同学们和朋友们。参考文献1俞国亮等.MCS-51单片机原理与应用M.清华大学出版社. 2006:5068.2樊明龙,任丽静.单片机原理与应用M.化学工业出版社出版. 2004:125144.3邱平,略论我国非金属超声波检测仪器的发展状况,工程质量,1998(1).34-35 5田燕,超声波的物理特性及应用,现代物理知识,1996 (11), 24-266查济旋、范国良,超声波及其在工业上的应用,科学出版社,20048彭军,传感器与检测技术,西安电子科技大学出版社,2003-11-1 10郝芸,传感器原理与应用,电子工业出版社,2002-5 11黄继昌,传感器工作原理及应用实例,人民邮电出版社,1998-1212吴旗,传感器及其应用,高等教育出版社,2003 16沈红卫,单片机系统应用设计实例与分析,北京航空航天人学出版社,2003 18何希才等,传感器应用及其接口电路,科技技术文献出版社,2004 腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆羃蒈蚂螂羂薁袈肀肁芀蚁羆肁莃袆袂肀薅虿袈聿蚇蒂膇肈莇螇肃肇葿薀罿肆薂螆袅肅芁薈螁膅莃螄聿膄蒆薇羅膃蚈螂羁膂莈蚅袇膁蒀袀螃膀薂蚃肂腿节衿羈腿莄蚂袄芈蒇袇螀芇蕿蚀聿芆艿蒃肅芅蒁螈羁芄薃薁袆芃芃螆螂芃莅蕿肁节蒈螅羇莁薀薈袃莀艿螃蝿荿莂薆膈莈薄袁肄莇蚆蚄羀莇莆袀袆

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论