基于单片机超声波测距毕业论文.doc
《基于单片机超声波测距毕业论文.doc》由会员分享,可在线阅读,更多相关《基于单片机超声波测距毕业论文.doc(34页珍藏版)》请在冰点文库上搜索。
毕业设计(论文)报告
题目基于单片机技术的超声波测距
院
专业
学号cvxsvcxv
姓名梁军
指导教师赵扬
起讫日期2010年5月28日
超声波测距仪的设计
ThedesignofaSilentWave
MeasureDistance
摘要
随着科技的发展,人们生活水平的提高,城市发展建设加快,城市给排水系统也有较大发展,其状况不断改善。
但是,由于历史原因合成时间住的许多不可预见因素,城市给排水系统,特别是排水系统往往落后于城市建设。
因此,经常出现开挖已经建设好的建筑设施来改造排水系统的现象。
城市污水给人们带来了困扰,因此箱涵的排污疏通对大城市给排水系统污水处理,人们生活舒适显得非常重要。
而设计研制箱涵排水疏通移动机器人的自动控制系统,保证机器人在箱涵中自由排污疏通,是箱涵排污疏通机器人的设计研制的核心部分。
控制系统核心部分就是超声波测距仪的研制。
因此,设计好的超声波测距仪就显得非常重要了。
本设计采用以AT89C51单片机为核心的低成本、高精度、微型化数字显示超声波测距仪的硬件电路和软件设计方法。
整个电路采用模块化设计,由主程序、预置子程序、发射子程序、接收子程序、显示子程序等模块组成。
各探头的信号经单片机综合分析处理,实现超声波测距仪的各种功能。
在此基础上设计了系统的总体方案,最后通过硬件和软件实现了各个功能模块。
相关部分附有硬件电路图、程序流程图。
经实验证明,这套系统软硬件设计合理、抗干扰能力强、实时性良好,经过系统扩展和升级,可以有效地解决汽车倒车、建筑施工工地以及一些工业现场的位置监控。
关键词:
AT89c51;超声波;测距
Abstract
Withthedevelopmentofscienceandtechnology,theimprovementofpeople'sstandardofliving,speedingupthedevelopmentandconstructionofthecity.urbandrainagesystemhavegreatlydevelopedtheirsituationisconstantlyimproving.However,duetohistoricalreasonsmanyunpredictablefactorsinthesynthesisofhertime,thecitydrainagesystem.Inparticulardrainagesystemoftenlagsbehindurbanconstruction.Therefore,thereareoftengoodbuildingexcavationhasbeenbuildingfacilitiestoupgradethedrainagesystemphenomenon.Itbroughttothecitysewage,anditiscleartothecitysewageanddrainageculvertinthesewagetreatmentsystem.comfortisveryimportanttopeople'slives.MobilerobotsdesignedtoclearthedrainageculvertandtheautomaticcontrolsystemFreesewageculvertclearguaranteerobot,therobotisdesignedtocleartheculvertsewagetothecore.ControlSystemisthecorecomponentofthedevelopmentofultrasonicrangefinder.Therefore,itisveryimportanttodesignagoodultrasonicrangefinder.
AtthecoreofthedesignusingAT89C51low-cost,highaccuracy,Microfiguresshowthattheultrasonicrangefinderhardwareandsoftwaredesignmethods.Modulardesignofthewholecircuitfromthemainprogram,presubroutinefiredsubroutinereceivesubroutine.displaysubroutinemodulesform.SCMcomprehensiveanalysisoftheprobesignalprocessing,andtheultrasonicrangefinderfunction.Onthebasisoftheoverallsystemdesign,hardwareandsoftwarebytheendofeachmodule.
Theresearchhasledtothediscoverythatthesoftwareandhardwaredesigningisjustified,theanti-disturbancecompetenceispowerfulandthereal-timecapabilityissatisfactoryandbyextensionandupgrade,thissystemcanresolvetheproblemofthecaravailably,buildingconstructionthepositionoftheworkplaceandsomeindustriesspotsupervision.
Keywords:
AT89S52;SilentWave;MeasureDistance
目录
摘要···························································I
Abstract··························································II
绪论···························································1
I.1课题设计的目的及其意义·································1
I.2超声波测距仪的设计思路·································1
1课题的方案设计与论证···········································3
1.1系统整体方案的设计·····································3
1.2系统整体方案的论证·····································3
2系统的硬件结构设计·············································4
2.1单片机的功能特点及测距原理·····························4
2.2超声波发射电路·········································6
2.3超声波检测接收电路·····································7
2.4超声波测距系统的硬件电路设计···························7
3系统软件的设计·················································9
3.1超声波测距仪的算法设计·································9
3.2主程序流程图···········································10
3.3超声波发生子程序与超声波接受中断程序···················11
3.4系统的软硬件的调试·····································12
总结····························································13
致谢····························································15
参考文献··························································16
附录一超声波测距电路原理图··································18
附录二超声波测距电路版图····································19
附录三程序清单··············································20
27
绪论
Ⅰ.1课题设计目的及意义
Ⅰ.1.1设计的目的
随着科学技术的快速发展,超声波将在测距仪中的应用越来越广。
但就目
前技术水平来说,人们可以具体利用的测距技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域。
展望未来,超声波测距仪作为一种新型的非常重要有用的工具在各方面都将有很大的发展空间,它将朝着更加高定位高精度的方向发展,以满足日益发展的社会需求,如声纳的发展趋势基本为:
研制具有更高定位精度的被动测距声纳,以满足水中武器实施全隐蔽攻击的需要;继续发展采用低频线谱检测的潜艇拖曳线列阵声纳,实现超远程的被动探测和识别;研制更适合于浅海工作的潜艇声纳,特别是解决浅海水中目标识别问题;大力降低潜艇自噪声,改善潜艇声纳的工作环境。
无庸置疑,未来的超声波测距仪将与自动化智能化接轨,与其他的测距仪集成和融合,形成多测距仪。
随着测距仪的技术进步,测距仪将从具有单纯判断功能发展到具有学习功能,最终发展到具有创造力。
在新的世纪里,面貌一新的测距仪将发挥更大的作用。
Ⅰ.1.2设计的意义
随着科技的发展,人们生活水平的提高,城市发展建设加快,城市给排水系统也有较大发展,其状况不断改善。
但是,由于历史原因合成时间住的许多不可预见因素,城市给排水系统,特别是排水系统往往落后于城市建设。
因此,经常出现开挖已经建设好的建筑设施来改造排水系统的现象。
城市污水给人们带来了困扰,因此箱涵的排污疏通对大城市给排水系统污水处理,人们生活舒适显得非常重要。
而设计研制箱涵排水疏通移动机器人的自动控制系统,保证机器人在箱涵中自由排污疏通,是箱涵排污疏通机器人的设计研制的核心部分。
控制系统核心部分就是超声波测距仪的研制。
因此,设计好的超声波测距仪就显得非常重要了。
这就是我设计超声波测距仪的意义。
Ⅰ.2超声波测距仪的设计思路
Ⅰ.2.1超声波测距原理[1,2]
发射器发出的超声波以速度υ在空气中传播,在到达被测物体时被反射返回,由接收器接收,其往返时间为t,由s=vt/2即可算出被测物体的距离。
由于超声波也是一种声波,其声速v与温度有关,下表列出了几种不同温度下的声速。
在使用时,如果温度变化不大,则可认为声速是基本不变的。
如果测距精度要求很高,则应通过温度补偿的方法加以校正。
表1-1超声波波速与温度的关系表
温度(℃)
-30
-20
-10
0
10
20
30
100
声速(m/s)
313
319
325
323
338
344
349
386
Ⅰ.2.2超声波测距仪原理框图如下图
单片机发出40kHZ的信号,经放大后通过超声波发射器输出;超声波接收器将接收到的超声波信号经放大器放大,用锁相环电路进行检波处理后,启动单片机中断程序,测得时间为t,再由软件进行判别、计算,得出距离数并送LED显示。
图1-1超声波测距仪原理框图
1课程的方案设计与论证
1.1系统整体方案的设计
由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量。
利用超声波检测距离,设计比较方便,计算处理也较简单,并且在测量精度方面也能达到农业生产等自动化的使用要求。
超声波发生器可以分为两大类:
一类是用电气方式产生超声波,一类是用机械方式产生超声波。
电气方式包括压电型、电动型等;机械方式有加尔统笛、液哨和气流旋笛等。
它们所产生的超声波的频率、功率、和声波特性各不相同,因而用途也各不相同。
目前在近距离测量方面常用的是压电式超声波换能器。
根据设计要求并综合各方面因素,本文采用AT89C51单片机作为控制器,用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器。
1.2系统整体方案的论证
超声波测距的原理是利用超声波的发射和接受,根据超声波传播的时间来计算出传播距离。
实用的测距方法有两种,一种是在被测距离的两端,一端发射,另一端接收的直接波方式,适用于身高计;一种是发射波被物体反射回来后接收的反射波方式,适用于测距仪。
此次设计采用反射波方式。
测距仪的分辨率取决于对超声波传感器的选择。
超声波传感器是一种采用压电效应的传感器,常用的材料是压电陶瓷。
由于超声波在空气中传播时会有相当的衰减,衰减的程度与频率的高低成正比;而频率高分辨率也高,故短距离测量时应选择频率高的传感器,而长距离的测量时应用低频率的传感器。
2系统的硬件结构设计
由单片机AT89C51编程产生40kHz的方波,由P3.6口输出,再经过放大电路,驱动超声波发射探头发射超声波。
发射出去的超声波经障碍物反射回来后,由超声波接收头接收到信号,通过接收电路的检波放大、积分整形及一系列处理,送至单片机。
单片机利用声波的传播速度和发射脉冲到接收反射脉冲的时间间隔计算出障碍物的距离,并由单片机控制显示出来。
该测距装置是由超声波传感器、单片机、发射/接收电路和LED显示器组成。
传感器输入端与发射接收电路相连,接收电路输出端与单片机相连接,单片机的输出端与显示电路输入端相连接。
其时序图如图1-2所示。
图1-2时序图
单片机在T0时刻发射方波,同时启动定时器开始计时,当收到回波后,产生一负跳变到单片机中断口,单片机响应中断程序,定时器停止计数。
计算时间差,即可得到超声波在媒介中传播的时间t,由此便可计算出距离。
2.151系列单片机的功能特点及测距原理[3~6]
2.1.151系列单片机的功能特点
5l系列单片机中典型芯片(AT89C51)采用40引脚双列直插封装(DIP)形式,内部由CPU,4kB的ROM,256B的RAM,2个16b的定时/计数器TO和T1,4个8b的工/O端I:
IP0,P1,P2,P3,一个全双功串行通信口等组成。
特别是该系列单片机片内的Flash可编程、可擦除只读存储器(E~PROM),使其在实际中有着十分广泛的用途,在便携式、省电及特殊信息保存的仪器和系统中更为有用。
该系列单片机引脚与封装如图2-1所示。
5l系列单片机提供以下功能:
4kB存储器;256BRAM;32条工/O线;2个16b定时/计数器;5个2级中断源;1个全双向的串行口以及时钟电路。
空闲方式:
CPU停止工作,而让RAM、定时/计数器、串行口和中断系统继续工作。
掉电方式:
保存RAM的内容,振荡器停振,禁止芯片所有的其他功能直到下一次硬件复位。
5l系列单片机为许多控制提供了高度灵活和低成本的解决办法。
充分利用他的片内资源,即可在较少外围电路的情况下构成功能完善的超声波测距系统。
2.1.2单片机实现测距原理
单片机发出超声波测距是通过不断检测超声波发射后遇到障碍物所反射的回波,从而测出发射和接收回波的时间差tr,然后求出距离S=Ct/2,式中的C为超声波波速。
限制该系统的最大可测距离存在4个因素:
超声波的幅度、反射的质地、反射和入射声波之间的夹角以及接收换能器的灵敏度。
接收换能器对声波脉冲的直接接收能力将决定最小的可测距离。
为了增加所测量的覆盖范围、减小测量误差,可采用多个超声波换能器分别作为多路超声波发射/接收的设计方法。
由于超声波属于声波范围,其波速C与温度有关。
2.4超声波测距系统的硬件电路设计
本系统的特点是利用单片机控制超声波的发射和对超声波自发射至接收往返时间的计时,单片机选用AT89C51,经济易用,且片内有4K的ROM,便于编程。
电路原理图如图2-4所示。
图2-4超声波测距电路原理图
3系统软件的设计
超声波测距仪的软件设计主要由主程序、超声波发生子程序、超声波接收中断程序及显示子程序组成。
我们知道C语言程序有利于实现较复杂的算法,汇编语言程序则具有较高的效率且容易精细计算程序运行的时间,而超声波测距仪的程序既有较复杂的计算(计算距离时),又要求精细计算程序运行时间(超声波测距时),所以控制程序可采用C语言和汇编语言混合编程。
3.1超声波测距仪的算法设计 [10]
超声波测距的原理为超声波发生器T在某一时刻发出一个超声波信号,当这个超声波遇到被测物体后反射回来,就被超声波接收器R所接收到。
这样只要计算出从发出超声波信号到接收到返回信号所用的时间,就可算出超声波发生器与反射物体的距离。
距离的计算公式为:
d=s/2=(c×t)/2
(1)
其中,d为被测物与测距仪的距离,s为声波的来回的路程,c为声速,t为声波来回所用的时间。
在启动发射电路的同时启动单片机内部的定时器T0,利用定时器的计数功能记录超声波发射的时间和收到反射波的时间。
当收到超声波反射波时,接收电路输出端产生一个负跳变,在INT0或INT1端产生一个中断请求信号,单片机响应外部中断请求,执行外部中断服务子程序,读取时间差,计算距离。
其部分源程序如下:
TMOD=0X01;//T0计数,方式1
TH0=0;//计数初值
TL0=0; //计数初值
IT0=1;//INT0负脉冲触发
EA=1;//开总中断
EX0=1;//开外部INT0中断
AGAIN=1;
WHILE
(1)
{
UCHARX;
IF(ON==0) //启动键处理
{
DELAY1MS(5);//按键消抖
IF(ON==0)
{
ONOFF=1;//启动
WHILE(ON); //等待按键释放
}
}
IF(OFF==0) //停止键处理
{
DELAY1MS(5);//按键消抖
IF(OFF==0)
{
ONOFF=0;//停止
WHILE(OFF); //等待按键释放
}
}
IF(ONOFF)
{
OUT=0; //产生方波,输出低电平 <模拟发射>
DELAYS(); //延时产生几个微秒的低电平,让模拟反射的单片机能正确接收信号
OUT=1; //恢复高电平,停止模拟发射
TH0=0;
TL0=0;
AGAIN=0; //
TR0=1;//T0开始计数
FOR(X=0;X<20;X++)
DISPLAY(); //数码管显示
IF(AGAIN==0)
{BWEI=SHWEI=GWEI=0;}
}
ELSE
{
BWEI=SHWEI=GWEI=10;
}
}
}
VOIDINT0(VOID)INTERRUPT0USING1//INTO中断服务程序
{
FLOATCOUNT;
ULONGNUM;
TR0=0;//停止计数
COUNT=(TH0*256+TL0)/2;
NUM=(COUNT/10000)*344;//计算超声波来回距离
//NUM=NUM/2; //总距离除2等于实际距离
3.2主程序流程图
软件分为两部分,主程序和中断服务程序,如图3-1所示。
主程序完成初始化工作、各路超声波发射和接收顺序的控制。
定时中断服务子程序完成三方向超声波的轮流发射,外部中断服务子程序主要完成时间值的读取、距离计算、结果的输出等工作。
主程序首先是对系统环境初始化,设置定时器T0工作模式为16位定时计数器模式。
置位总中断允许位EA并给显示端口P0和P1清0。
然后调用超声波发生子程序送出一个超声波脉冲,为了避免超声波从发射器直接传送到接收器引起的直射波触发,需要延时约0.1ms(这也就是超声波测距仪会有一个最小可测距离的原因)后,才打开外中断0接收返回的超声波信号。
由于采用的是12MHz的晶振,计数器每计一个数就是1μs,当主程序检测到接收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)按式
(2)计算,即可得被测物体与测距仪之间的距离,设计时取20℃时的声速为344m/s则有:
d=(c×t)/2=172T0/10000cm
(2)
其中,T0为计数器T0的计算值。
测出距离后结果将以十进制BCD码方式送往LED显示约0.5s,然后再发超声波脉冲重复测量过程。
为了有利于程序结构化和容易计算出距离,主程序采用C语言编写。
3.3超声波发生子程序和超声波接收中断程序
超声波发生子程序的作用是通过P1.0端口发送2个左右超声波脉冲信号(频率约40kHz的方波),脉冲宽度为12μs左右,同时把计数器T0打开进行计时。
超声波发生子程序较简单,但要求程序运行准确,所以采用汇编语言编程。
超声波测距仪主程序利用外中断0检测返回超声波信