超声波测距论文.docx
《超声波测距论文.docx》由会员分享,可在线阅读,更多相关《超声波测距论文.docx(40页珍藏版)》请在冰豆网上搜索。
超声波测距论文
毕业设计(论文)
题目:
基于单片机的超声波测距仪
学院:
专业班级:
指导教师:
职称:
学生姓名:
学号:
摘要
在空气介质中超声测距传感器因其性能好,价格低廉、使用方便,在现场机器人定位系统、车辆自动导航、车辆安全行驶辅助系统、城市交通管理和高速公路管理监测系统,以及河道、油井和仓库及料位的探测中都有应用。
由于超声波传播不易受干扰,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距和物位测量等都可以通过超声波来实现。
为此,深入研究超声波的产生与传播规律、开发高性能超声波换能器及其收发电路,对于超声波检测技术的发展具有十分重要的现实意义。
本设计介绍了基于单片机控制的超声测距的原理:
由STC89C52控制定时器产生一定频率脉冲,计算从发射到接收回波时间,从而得到实测距离,数据处理采用,显示距离,语音播报。
关键词:
超声波,距离测量,语音播报,单片机
ABSTRACT
Intheairmedium,ultrasonicrangefindersensorbecauseofitsgoodperformance,lowprice,convenientuse,inthefieldofrobotpositioningsystem,automaticvehiclenavigation,vehiclesafetydrivingassistsystem,citytrafficmanagementandmanagementofexpresswaymonitoringsystem,aswellasriver,wellandwarehouseandmaterialleveldetectionusedin.Becausetheultrasonicwavepropagationisnotsusceptibletointerference,energyconsumptionslow,mediumofcommunicationinthelongerdistance,whichareoftenusedforultrasonicdistancemeasurement,suchasthelocationandlevelmeasurementcanbeachievedbyultrasound.Therefore,in-depthstudyofultrasonicgenerationandpropagation,thedevelopmentofhighperformanceultrasonictransduceranditstransceivercircuit,theultrasonicdetectiontechnologydevelopmenthasveryimportantrealsense.
Thisarticleintroducesthedesignofcontrolbasedonsinglechipultrasonicrangingprinciple:
controlbySTC89C52timerproducesacertainfrequencypulse,calculatedfromtransmittingtoreceivingechotime,soastoobtainthemeasureddistance,dataprocessingusingthetemperaturecompensation,fourdigitaltubedisplaydistance,voicebroadcast.
KEYWORDS:
ultrasonic,rangemeasurement,voicebroadcast,singlechip
诚信声明
第1章绪论
1.1课题设计目的及意义
1.1.1设计的目的
随着科学技术的快速发展,超声波在测距中的应用越来越广。
但就目前的急速水平来说,人们可以具体利用的测距技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域。
由于超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因此超声波经常用于距离测量,如超声波测距和物位测量等都可以通过超声波来实现。
利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制。
为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。
研制具有更高定位精度的被动测距声纳,以满足水中武器实施全隐蔽攻击的需求;继续发展采用低频线谱检测的潜艇拖拽线列阵声纳,实现超远程的被动探测和识别;研制更适合与前还工作的潜艇声纳,特别是解决浅海水中目标识别问题;搭理降低潜艇自噪声,改善潜艇声纳的工作环境。
毋庸置疑,无线的超声波测距将于自动化智能化接轨,与其他的测距仪集成和融合,形成多测距。
随着测距仪的技术进步,测距仪将从具有单纯判断功能发展到具有学习功能,最终发展到具有创造力。
在新的世纪里,面貌一新的测距仪将发挥更大的作用。
1.1.2设计的意义
由于超声测距是一种非接触检测技术,不受光线、被测对象颜色等的影响,较其它仪器更卫生,更耐潮湿、粉尘、高温、腐蚀气体等恶劣环境,具有少维护、不污染、高可靠、长寿命等特点,所以超声波测距系统主要应用于汽车的倒车雷达、机器人自动避障行走、建筑施工工地以及一些工业现场中的液位、井深、管进长度测量等场合。
因此研究超声波测距系统有着很大的现实意义。
对本课题的研究与设计,还能进一步提高自己的电路设计水平,深入对单片机的理解和应用。
1.2国内外研究动态
国外在提高超声波测距方面做了大量的研究,国内一些学者也作了相关的研究。
目前超声波测距方法主要有三种:
(1)相位检测法:
精度高,但检测范围有限;
(2)声波幅值检测法:
易受反射波的影响;(3)渡越时间法:
工作方式简单,直观。
现在对超声波测距的精度主要取决于所测的超声波传输时间和超声波在介质中的传输速度,二者中以传输时间的精度影响较大,所以大部分文献采用降低传输时间的不确定度来提高测距精度。
温度对传感器的影响也很大,因此,需要用温度传感器进行校正,目前相位探测法和声谱轮廓分析法或二者结合起来的方法是主要的降低探测传输不确定度的方法。
1.3本课题研究的主要内容
超声波是指频率高于20KHz的机械波。
为了以超声波作为检测手段,必须产生超生波和接收超声波。
完成这种功能的装置就是超声波换能器。
超声波传感器有发送器和接收器,但一个超声波换能器也可具有发送和接收声波的双重作用。
超声波换能器是利用压电效应的原理将电能和超声波相互转化,即在发射超声波的时候,将电能转换,发射超声波;而在收到回波的时候,则将超声振动转换成电信号。
超声波测距的原理一般采用渡越时间法TOF(timeofflight)。
首先测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就得到二倍的声源与障碍物之间的距离,拟应用以下三种技术:
a、单片机技术:
STC89C52系列的单片机具有体积小,重量轻,结构较为简单,成本低廉,可以实现一般的控制功能的优点。
而且单片机更适用应用于小型的嵌入式系统,因此它得到了广泛的应用。
现代人类生活大部分电子和机械产品中都会集成有单片机。
b、超声波测距技术:
超声波测距技术与一般测距技术相比,具有操作方便、系统简单以及计算简单的优点。
c、显示技术:
数据处理,数码管显示测出与物体之间的距离。
d、语音模块技术:
OTP芯片来语音播报距离。
第2章总体方案
2.1方案选择
采用单片机来控制超声波测距,信号线发射到与超声波发射器相连的信号端,超声波发射器向既定方向发射,在发射的同时开始计时,超声波在空气中传播,途中碰到障碍物将产生回波。
2.2超声波测距仪的设计思路
2.2.1超声波测距原理
超声波测距的方法有多种,如相位检测法、声波幅值检测法和渡越时间检测法等。
相位检测法虽然精度高,但检测范围有限,声波幅值检测法易受反射波的影响。
本测距系统采用超声波渡越时间检测法。
其原理为:
检测从发射传感器发射的超声波经气体介质传播到接收传感器的时间t,这个时间就是渡越时间,然后求出距离l。
设l为测量距离,t为往返时间差,超声波的传播速度为c,则有l=ct/2。
超声波接收器收到反射波就立即停止计时。
再由单机计算出距离,送数码管显示测量结果。
超声波测距的算法设计:
超声波在空气中传播速度为每秒钟340米(15℃时)。
是接收超声波时刻,
是超声波声波发射时刻,
得出的是一个时间差的绝对值,假定
=0.03S,则有340m×0.03S=10.2m。
由于在这10.2m的时间里,超声波发出到遇到返射物返回的距离如下:
如图2-1为测距原理。
图2-1测距原理
因为θ/2角度较小,可以忽略不计,所以L≈S。
超声波发出到遇到返射物返回的距离如下:
(2-1)
由于超声波也是一种声波,其声速c与空气温度有关,一般来说,温度每升高1摄氏度,声速增加0.6米/秒。
表2-1列出了几种温度下的声速。
表2-1声速与温度的关系表
温度(摄氏度)
-30
-20
-10
0
10
20
30
100
声速(米/秒)
313
319
325
323
338
344
349
386
在使用时,如果温度变化不大,则可认为声速c是基本不变的,计算时取c为340m/s。
如果测距精度要求很高,则可通过改变硬件电路增加温度补偿电路的方法或者在硬件电路基本不变的情况下通过软件改进算法的方法来加以校正。
2.2.2超声波测距原理框图
超声波测距模块用HC-SR04,微处理器使用STC89C52单片机,显示部分采用共阳数码管。
HC-SR04集成的发射电路模块发出超声波,遇到障碍物产生回波,被接收电路模块接收,STC89C52单片机统计出声波传输所用时间,经过温度补偿温,计算出正确的待测距离,同时OTP语音芯片根据相关数据处理进行组合播报当前测试距离,并且由数码管显示。
图2-2超声波测距系统结构图
2.3使用元件选择
由于测量距离的精度和长度要求不是很高,精度达到2cm,测量距离达到2m即可,因此超声波模块选用价格低廉且实用的HC-SR04即可。
控制核心部分选择实用的STC89C52单片机即可满足计算和控制要求。
温度补偿的温度传感器选择普遍且实用的DS18B20。
语音播报:
此系列语音芯片是技针对市场推出的一款具有PWM输出的OTP语音标准芯片。
共有3个IO口,外围最低仅需要一个104电容就可以稳定的工作,产品方案成本极低。
此语音芯片内置电阻,没有外围元件,外围电路只要一个104电容。
整个方案的费用为您节省30%-50%左右
显示部分:
选择了四位数码管。
第3章系统的硬件结构设计
3.1STC89C52单片机的功能及特点
STC89C52单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。
3.1.1主要特性
增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051。
工作电压:
5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)
工作频率范围:
0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz。
用户应用程序空间为8K字节。
片上集成512字节RAM。
通用I/O口(32个)复位后为:
P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。
ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器无需,专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒可完成一片。
具有EEPROM功能。
具有看门狗功能。
共3个16位定时器/计数器。
即定时器T0、T1、T2。
外部中断4路,下降沿中断或低电平触发电路,PowerDown模式可由外部中断低电平触发中断方式唤醒。
通用异步串行口(UART),还可用定时器软件实现多个UART。
工作温度范围:
-40~+85℃(工业级)/0~75℃(商业级)。
3.1.2工作模式
掉电模式:
典型功耗<0.1μA,可由外部中断唤醒,中断返回后,继续执行原程序。
空闲模式:
典型功耗2mA典型功耗。
正常工作模式:
典型功耗4Ma~7mA典型功耗。
掉电模式可由外部中断唤醒,适用于水表、气表等电池供电系统及便携设备。
3.1.3引脚功能说明
VCC(40引脚):
电源电压
VSS(20引脚):
接地
P0端口(P0.0~P0.7,39~32引脚):
P0口是一个漏极开路的8位双向I/O口。
作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入每个引脚能驱动写入“1”时,可以作为高阻抗输入。
在访问外部程序和数据存储器时在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线位数据的复用总线。
此时,P0口内部上拉电阻有效。
在FlashROM编在程时,P0端口接收指令字节端口接收指令字节;而在校验程序时,则输出指令字节则输出指令字节。
验证时,要求外接上拉电阻。
P1端口(P1.0~P1.7,1~8引脚):
P1口是一个带内部上拉电阻的8位双向I/O口。
P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。
对端口写入1时,通过内部上拉电阻把端口拉到高电位,这是可用作输入口。
P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流。
此外,P1.0和P1.1还可以作为定时器/计数器2的外部技术输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体参见下表:
在对FlashROM编程和程序校验时,P1接收低8位地址。
表3-1P1.0和P1.1引脚复用功能
引脚号
功能特性
P1.0
T2(定时器/计数器2外部计数输入),时钟输出
P101
T2EX(定时器/计数器2捕获/重装触发和方向控制)
P2端口(P2.0~P2.7,21~28引脚):
P2口是一个带内部上拉电阻的8位双向I/O端口。
P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入。
对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。
P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。
在访问外部程序存储器和16位地址的外部数据存储器时,P2送出高8位地址。
在访问8位地址的外部数据存储器时,P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的内容),在整个访问期间不会改变。
在对FlashROM编程和程序校验期间,P2也接收高位地址和一些控制信号。
P3端口(P3.0~P3.7,10~17引脚):
P3是一个带内部上拉电阻的8位双向I/O端口。
P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。
对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。
P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流。
在对FlashROM编程或程序校验时,P3还接收一些控制信号。
P3口除作为一般I/O口外,还有其他一些复用功能,如下表所示:
表3-1P3口引脚复用功能
引脚号
复用功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
(外部中断0)
P3.3
(外部中断1)
P3.4
T0(定时器0的外部输入)
P3.5
T1(定时器1的外部输入)
P3.6
(外部数据存储器写选通)
P3.7
(外部数据存储器读选通)
RST(9引脚):
复位输入。
当输入连续两个机器周期以上高电平时为有效,用来完成单片机单片机的复位初始化操作。
看门狗计时完成后,RST引脚输出96个晶振周期的高电平。
特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。
DISRTO默认状态下,复位高电平有效。
ALE/ROG(30引脚)地址锁存控制信号:
(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。
在Flash编程时,此引脚(ROG)也用作编程输入脉冲。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。
然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。
图3-1STC89C52引脚图
3.2单片机最小系统
单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。
对52系列单片机来说,最小系统一般应该包括:
单片机、晶振电路、复位电路。
3.2.1单片机最小系统电路介绍
52单片机最小系统复位电路的极性电容C1的大小直接影响单片机的复位时间,一般采用10~30uF,51单片机最小系统容值越大需要的复位时间越短。
52单片机最小系统晶振Y1也可以采用12MHz,在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。
52单片机最小系统起振电容C2、C3一般采用15~33pF,并且电容离晶振越近越好,晶振离单片机越近越好4.P0口为开漏输出,作为输出口时需加上拉电阻,阻值一般为10k。
设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。
计数值N乘以机器周期Tcy就是定时时间t。
设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。
在每个机器周期的S5P2期间采样T0、T1引脚电平。
当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。
由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。
当晶振频率为12MHz时,最高计数频率不超过1/12MHz,即计数脉冲的周期要大于2ms。
图3-2单片机最小系统
3.3语音播报
语音模块采用OTP语音模块,此系列语音芯片是技针对市场推出的一款具有PWM输出的OTP语音标准芯片。
共有3个IO口,外围最低仅需要一个104电容就可以稳定的工作,产品方案成本极低。
此语音芯片内置电阻,没有外围元件,外围电路只需要一个104电容。
整个方案的费用为您节省30%-50%左右。
优势说明:
工作电压2.2-5.5V,适用范围很宽。
输出方式:
PWM
此芯片是特定的固定标准模块,可以通过单片机最少2个IO口控制多达128段声音任意调用和组合的语音标准芯片。
通常最常用的制方式是3个IO,现针对此模式做一个详细的原理说明,以方便调试。
BUSY:
芯片工作时(播放声音),输出低电平,停止工作或者待机时,保持高电平;
DATA:
接受控制脉冲的脚位。
收到几个脉冲,就播放第几个地址的内容;
REST:
任何时候,收到一个脉冲的时候,可以使芯片的播放指针归零(就是是DATA的脚位恢复到初始状态),同时即刻是芯片停止,进入待机状态;
工作示例:
例如现在需要播放第十段声音。
单片机控制原理是:
先发送一个复位脉冲到RST(Rest)脚,接着发送10个脉冲到DATA脚。
芯片即刻工作,播放第十段的声音;如果需要播放第5段的声音,则是先发送一个复位脉冲到REST脚,接着发送5个脉冲到DATA脚。
芯片即刻工作,播放第5段的声音。
3-3语音播报电路
3.4显示单元
本设计在接收端部分采用数码管显示模块来显示距离,图3-3为数码管显示电路图。
图3-6显示电路图
第4章系统的软件设计
超声波测距仪的软件设计主要有主程序、超声波发生程序、超声波接收中断程序及显示子程序组成。
我们知道C语言程序有利于实现较复杂的算法,汇编语言程序则具有较高的效率且容易精细计算程序运行的时间,而超声波测距仪的程序需要有较复杂的计算(计算距离时),所以控制程序可采用C语言编程。
4.1主程序流程图
软件分为两部分,主程序和中断服务程序,如图4-1、图4-2、图4-3所示。
主程序完成初始化工作、各路超声波发射和接收顺序的控制。
定时中断服务子程序完成单方向超声波的发射,外部中断服务子程序主要完成时间值的读取、距离计算、结果的输出等工作。
主程序首先是对系统环境初始化,设置定时器T0工作模式为16位定时计数器模式。
置位总中断允许位EA并给显示端口P0和P1清0。
然后调用超声波发生子程序送出一个超声波脉冲,为了避免超声波从发射器直接传送到接收器引起的直射波触发,需要延时约0.1ms(这也就是超声波测距仪会有一个最小可测距离的原因)后,才打开外中断1接收返回的超声波信号。
图4-1主程序流程
由于采用的是12MHz的晶振,计数器每计一个数就是1μs,当主程序检测到接收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)按式(4-1)计算,即可得被测物体与测距仪之间的距离,设计时取20℃时的声速为344m/s则有:
(4-1)
其中,T0为计数器T0的计算值。
测出距离后结果将传给LCD数码显示约5s,同时测量距离送语音模块播报。
然后再发超声波脉冲重复测量过程。
为了有利于程序结构化和容易计算出距离,主程序采用C语言编写。
4.2超声波发生子程序和超声波接收中断程序
超声波发生子程序的作用是通过P1.1端口发送2个左右超声波脉冲信号(频率约40kHz的方波),脉冲宽度为20μs左右,同时把计数器T0打开进行计时。
超声波发生子程序较简单,但要求程序运行准确。
图4-2定时中断服务子程序
图4-3外部中断服务子程序
超声波测距仪主程序利用外中断1检测返回超声波信号,一旦接收到返回超声波信号(即INT1引脚出现低电平),立即进入中断程序。
进入中断后就立即关闭计时器T0停止计时,并将测距成功标志字赋值1。
如果当计时器溢出时还未检测到超声波返回信号,则定时器T0溢出中断将外中断1关闭,并将测距成功标志字赋值2以表示此次测距不成功。
第5章超声波测距接收
5.1HC-SR04模块
HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,其结构简单,使用单片机控制电路简单容易,而且价格便宜。
该模块包括超声波发射、接收与控制电路。
实物如图5-1。
图5-1HC-SR04模块实物图
电气参数
HC-SR04模块参数如下表5-1所示。
表5-1模块参数
电气参数
HC-SR04超声波模块
工作电压
DC5V
工作电流
15mA
工作频率
40khz
最远射程
4m
最近射程
2cm
测量角度
15°
输入触发信号
10us的TTL脉冲
输入回响信号
输出TTL电平信号,与射程成比例
规格尺寸
45*20*15cm
基本工作原理
①采用IO口TRIG触发测距,给至少10us的高电平信号;
②模块自动发送8个40khz的方