基于51单片机的超声波测距系统的研究与设计

发布者:Dingsir1902最新更新时间:2011-10-12 关键字:51单片机  超声波测距 手机看文章 扫描二维码
随时随地手机看文章

  在日常生产生活中,很多场合如汽车倒车、机器人避障、工业测井、水库液位测量等需要自动进行非接触测距。超声波是指频率大于20 kHz的在弹性介质中产生的机械震荡波,其具有指向性强、能量消耗缓慢、传播距离相对较远等特点,因此常被用于非接触测距。由于超声波对光线、色彩和电磁场不敏感,因此超声波测距对环境有较好的适应能力,此外超声波测量在实时、精度、价格也能得到很好的折衷。

  为此,文中尝试以单片机AT89S52为核心,利用一对40 kHz压电超声传感器设计一款体积较小、价格低廉、精度较高、具有温度补偿、实时LCD显示和报警的超声波测距仪。

  1 超声波测距原理

  超声波传感器分机械方式和电气方式两类,它实际上是一种换能器,在发射端它把电能或机械能转换成声能,接收端则反之。本次设计超声波传感器采用电气方式中的压电式超声波换能器,它是利用压电晶体的谐振来工作的。它有两个压电晶片和一个共振板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,产生超声波。反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,就成为超声波接收器。在超声波电路中,发射端输出一系列脉冲方波,脉冲宽度越大,输出的个数越多,能量越大,所能测的距离也越远。超声波发射换能器与接收换能器其结构上稍有不同,使用时应分清器件上的标志。

  超声波测距的方法有多种:如往返时间检测法、相位检测法、声波幅值检测法。本设计采用往返时间检测法测距。其原理是超声波传感器发射一定频率的超声波,借助空气媒质传播,到达测量目标或障碍物后反射回来,经反射后由超声波接收器接收脉冲,其所经历的时间即往返时间,往返时间与超声波传播的路程的远近有关。测试传输时间可以得出距离。

  假定s为被测物体到测距仪之间的距离,测得的时间为t/s,超声波传播速度为v/m·s-1表示,则有关系式(1)

s=vt/2 (1)

  在精度要求较高的情况下,需要考虑温度对超声波传播速度的影响,按式(2)对超声波传播速度加以修正,以减小误差。

v=331.4+0.607T (2)

  式中,T为实际温度单位为℃,v为超声波在介质中的传播速度单位为m/s。

一些温度下的声速

  2 系统总体设计方案

  本系统由超声波发射、回波信号接收、温度测量、显示和报警、电源等硬件电路部分以及相应的软件部分构成。系统原理框图,如图1所示。

系统原理框图

  整个系统由单片机AT89S52控制,超声波传感器采用收发分体式,分别是一支超声波发射换能器TCT40-16T和一支超声波接收换能器TCT40-16R。超声波信号通过超声波发射换能器发射至空气中,遇被测物反射后回波被超声波接收换能器接收。进行相关处理后,输入单片机的INT0脚产生中断,计算中间经历的时间,同时再根据具体的温度计算相应的声速,根据式(2)就可得出相应的距离用来显示,当然在一些场合也可根据需要,设置距离报警值。

  3 硬件设计

  3.1 超声波发射部分

  超声波发射部分是为了让超声波发射换能器TCT40-16T能向外界发出40 kHz左右的方波脉冲信号。40 kHz左右的方波脉冲信号的产生通常有两种方法:采用硬件如由555振荡产生或软件如单片机软件编程输出,本系统采用后者。编程由单片机P1.0端口输出40 kHz左右的方波脉冲信号,由于单片机端口输出功率不够,40 kHz方波脉冲信号分成两路,送给一个由74HC04组成的推挽式电路进行功率放大以便使发射距离足够远,满足测量距离要求,最后送给超声波发射换能器TCT40-16T以声波形式发射到空气中。发射部分的电路,如图2所示。图中输出端上拉电阻R31,R32,一方面可以提高反向器74HC04输出高电平的驱动能力,另一方面可以增加超声换能器的阻尼效果,缩短其自由振荡的时间。

发射部分的电路

  3.2 超声波接收部分

  上述TCT40-16T发射的在空气中传播,遇到障碍物就会返回,超声波接收部分是为了将反射波(回波)顺利接收到超声波接收换能器TCT40-16R进行转换变成电信号,并对此电信号进行放大、滤波、整形等处理后,这里用索尼公司生产的集成芯片CX20106,得到一个负脉冲送给单片机的P3.2(INT0)引脚,以产生一个中断。接收部分的电路,如图3所示。

超声波接收部分

  可以看到,集成芯片CX20106在接收部分电路中起了很大的作用。CX20106是一款应用广泛的红外线检波接收的专用芯片,其具有功能强、性能优越、外围接口简单、成本低等优点,由于红外遥控常用的载波频率38 kHz与测距的超声波频率40 kHz比较接近,而且CX20106内部设置的滤波器中心频率f0五可由其5脚外接电阻调节,阻值越大中心频率越低,范围为30~60 kHz。故本次设计用它来做接收电路。CX20106内部由前置放大器、限幅放大器、带通滤波器、检波器、积分器及整形电路构成。工作过程如下:接收的回波信号先经过前置放大器和限幅放大器,将信号调整到合适幅值的矩形脉冲,由滤波器进行频率选择,滤除干扰信号,再经整形,送给输出端7脚。当接收到与CX20106滤波器中心频率相符的回波信号时,其输出端7脚就输出低电平,而输出端7脚直接接到.AT89S52的INT0引脚上,以触发中断。若频率有一些误差,可调节芯片引脚5的外接电阻R42,将滤波器的中心频率设置在40 kHz,就可达到理想的效果。

 3.3 其他主要电路

  (1)温度测量部分。

  由于声音的速度在不同的温度下有所不同,为提高系统的精度,采用了温度补偿功能。这里采用的主要元器件是是美国Dallas半导体公司生产的单总线数字温度传感器DS18B20,其具有精度高、智能化、体积小、线路简单等特点。将DS18B20数据线与单片机的P1.1口相连,就可以实现温度测量,如图4所示。

温度测量部分

  (2)LCD显示部分。

  本设计显示部分采用字符型TC1602液晶显示所测距离值。TC1602显示的容量为2行16个字。液晶显示屏有微功耗、体积小、显示内容丰富、超薄轻巧、使用方便等诸多优点,与数码管相比,显得更专业、美观。使用时,可将P0与LCD的数据线相连,P2口与LCD的控制线相连,如图5所示。

LCD显示部分

  其中,TC1602第4脚RS为寄存器选择,第5脚RW为读写信号线,第6脚E为使能端。第7~14脚:D0~D7为8位双向数据线。这里要注意的是,为了布线方便,单片机端的D0~D7是接到LCD/602的D1~D0,正好相反,因此在编写软件时需要做处理,使读取正确。

  (3)报警部分。

  采用一个蜂鸣器,由P1.2输出一定频率的信号,在连接到蜂鸣器之前,经过一个三极管9 012的放大。报警部分的连线,如图6所示。

报警部分

  (4)电源电路:220 V经9 V变压器降压后,再经D1~D4桥式整流和7 805稳压后给电路各部分供电。

  (5)晶振电路:采用12 MHz的晶振。

  4 软件

  系统软件设计采用模块化设计,主要包括主程序设计、T1中断服务子程序、INT0外部中断服务子程序、测温子程序、距离计算子程序、显示子程序、延时子程序和报警子程序设计等。

  系统软件编制时应考虑相关硬件的连线,同时还要进行存储空间、寄存器以及定时器和外部中断引脚的分配和使用。本设计中P1.0引脚连接到7 HC04推挽放大电路再连接到超声波发射传感器,P1.0引脚输出的将是软件方式产生的40 kHz方波,而P3.2(INT0)则被用来接收回波。定时器T1,T0均工作在工作方式1,为16位计数,T1定时器被用来开启一次测距过程以它的溢出为标志开始一个发射测量循环,T0定时器是用来计算脉冲往返时间,它们的初值均设为0。

  系统初始化后就启动定时器T1从0开始计数,此时主程序进入等待,当到达65 ms时T1溢出进入T1中断服务子程序;在T1中断服务子程序中将启动一次新的超声波发射,此时将在P1.0引脚上开始产生40 kHz的方波,同时开启定时器T0计时,为了避免直射波的绕射,需要延迟1 ms后再开INT0中断允许;INT0中断允许打开后,若此时P3.2(INT0)引脚出现低电平则代表收到回波信号,将提出中断请求进入INT0中断服务子程序,在INT0中断服务子程序中将停止定时器T0计时,读取定时器T0时间值到相应的存储区,同时设置接收成功标志;主程序一旦检测到接收成功标志,将调用测温子程序,采集超声波测距时的环境温度,并换算出准确的声速,存储到RAM存储单元中;单片机再调用距离计算子程序进行计算,计算出传感器到目标物体之间的距离;此后主程序调用显示子程序进行显示;若超过设定的最小报警距离还将启动扬声器报警;当一次发射、接收、显示的过程完成后,系统将延迟100 ms重新让T1置初值,再次启动T1以溢出,进入下一次测距。如果由于障碍物过远,超出量程,以致在T0溢出时尚未接收到回波,则显示“ERROR”重新回到主流程进入新一轮测试。主程序和定时器T1、外部中断INT0中断服务子程序的框图分别,如图7~图9所示。

子程序的框图

子程序的框图

  此外,还有几点需要说明的是:

  (1)定时器T1之所以是65 ms溢出是因为它是16位定时/计数器(65 535)。在使用12MHz的晶振时,由于周期T=1/f=1/[(12×106)/12]=1μs,则一个机器周期是1μs,计数器每65 ms计数器溢出。

  (2)本设计中40 kHz方波的产生采用软件方式实现:控制P1.0口输出12μs的高电平,再输出13μs的低电平,这样得到一个周期的40 kHz的脉冲,再循环发送8次。

  (3)在CPU停止发送脉冲群后,由于电阻尼,换能器不能立即停止发送超声波,在一段时间内仍然会发送,故这段时间内不可立即开启INT0接收回波,要等待一段后以避免发送端的部分直射波未经被测物就直接绕射到接收端,这段被称为“虚假反射波”。从发射开始一直到“虚假反射波”结束这段时间,不开放INT0中断申请,可有效躲避干扰,但也会造成测试的“盲区”。本次设为1 ms,假定温度为20℃,则测量盲区为s=1×10-3×344/2≈17.2 cm。

  (4)最大测试距离将取决于:两次脉冲群发送之间的最小时间间隔和脉冲的能量。一般来说,发射端脉冲个数越多,能量越大,所能测的距离也越远。但也不是无限制的,本次读取定时器T0的计数值,最大能测试的距离是T0尚没溢出,故在温度20℃下,最大测试距离为s=vt/2=65 535×344/(2×106)=11.272 m。在一些周期性发射超声波设备中,如果要测试的最大距离是10 m,则两次脉冲群之间的最小时间为t=2×s/v=2×10/344≈60:ms 。

  5 结束语

  为了验证系统的测量精度,在实验室进行了实地测量。利用本系统对20~1 000 cm范围进行了多次测试,经补偿后最大误差达2 cm,线性度、稳定性和重复性都比较好。系统具有结构简单、体积小、实时LCD显示和报警、带温度补偿、抗干扰性能好等优点。系统的误差主要来自于发射探头发出的超声波是呈喇叭状扩散传播、被测物的表面不光滑且不一定垂直于两探头的轴线而导致所反射回来的波也许是从不同点获得,此外电子元器件自身的时延、干扰等也造成一定影响。可以根据具体场合,选择合适功率的探头,以及调整程序中脉冲的频率、宽度和个数等提高精度或测量距离,扩大系统的应用范围。

关键字:51单片机  超声波测距 引用地址:基于51单片机的超声波测距系统的研究与设计

上一篇:基于51单片机实现智能照明控制系统的设计
下一篇:用单片机模拟2272软件解码

推荐阅读最新更新时间:2024-03-16 12:43

关于51单片机数码管消影
看看原理图: 百度百科: 74HC573 数码管 ----------------------------------------------------------------------------------------------------------- 74HC573是拥有八路输出的透明 锁存器,输出为三态门,是一种高性能硅栅 CMOS器件。 SL74HC573跟LS/AL573的管脚一样。器件的输入是和标准 CMOS输出兼容的,加上拉电阻他们能和LS/ALSTTL输出兼容。 ---------------------------------------------------------------------
[单片机]
关于<font color='red'>51单片机</font>数码管消影
51单片机超声波系统板电路分析
比赛板电路板组成:51单片机(STC89C52芯片,下面统称为51单片机)电路、DC电源插座电路、复位电路、晶振电路、5V转3V3降压电路、0.96寸OLED屏幕电路、蜂鸣器电路、LED电路、超声波电路。 51单片机主控电路 我们用51单片机系列的STC89C52芯片作为主控芯片。P0引脚组接上4.7K的排阻和5V的VCC以形成上拉电阻,将不确定的信号通过排阻钳位在高电平,电阻同时起限流作用。 DC电源插座电路 本电路通过DC插头线给整个比赛板供电5V,但前提是按下按钮SW1,电路才会连接成功供电,否则一直为开路状态。通电后LED1亮表示已经供电。 复位电路 本电路按下REST按键时电流会走51单片机的RST引脚,引导
[单片机]
<font color='red'>51单片机</font>超声波系统板电路分析
51单片机对继电器的控制
典型的弱电控制强点途径。 怎么样理解这个电路图? 要理解这个电路,其实也比较容易.那么请您按照我的思路来,应该没有问题: 首先的,里面的三极管很重要.三极管是电子电路里很重要的一个元件.怎么样理解三极管呢? 简单的来说三极管有两个作用一个是放大作用,一个是开关作用.(严格来讲开关作用是放大作用的极限情况,不过没关系,把两者分开,更便于理解它的工作原理).在这里,我们只了解它跟本电路有关的开关作用. 首先把三极管想成一个水龙头. 简单C代码 主要功能:对白炽灯的控制,闪烁,时隔3秒 #include reg52.h sbit jdq_1=P1^0; void delay(void) //延时3S 误差 0us { u
[单片机]
<font color='red'>51单片机</font>对继电器的控制
51单片机PC数据传输 温度 距离 监控系统设计
_ :功能概述: 通过串口PC和单片机通信,可以询问单片机测得的温度,可以询问声呐测距的测量距离,同时把测量温度显示在数码管上。 _ :PC部分 这里com.cpp和com.h是串口通信的函数封装,在主函数中: 刚开始调用封装好的串口通信函数,设置打开串口COM4,波特率设置为9600,超时设置: 1 if(openport( com4 )) 2 printf( open comport success\n ); 3 if(setupdcb(9600)) 4 printf( setupDCB success\n ); 5 if(setuptimeout(0,0,0,0,0)) //如果
[单片机]
<font color='red'>51单片机</font>PC数据传输 温度 距离 监控系统设计
AT89C51单片机与74LS164动态显示接口
AT89C51介绍 AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。 AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。 单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了
[单片机]
AT89C<font color='red'>51单片机</font>与74LS164动态显示接口
基于51单片机的金属探测仪
一.硬件方案 本设计的金属探测是根据电磁感应原理制成的,将一金属置于变化的磁场当中时,根据电磁感应原理就会在金属内部产生涡流,涡流产生的磁场反过来又影响原磁场,这种变化可以转换为频率和幅值的变化,供相关电路进行检测。 硬件主要组成:51单片机+LM393+LCD1602液晶+电感线圈+ 按键+蜂鸣器; 二.设计功能 (1)实现金属物质的探测,如硬币,钥匙,金属手机壳等,LED和蜂鸣器实现声光报警。 (2)按键设置探测金属的精度,掉电记忆。 (3)液晶显示测量值,方便记录和更改。 (4)结构简洁,稳固,高效。 三.设计原理图 (1)原理图主要采用AD软件进行设计,如图: (2)Protues仿真图如下: 四.软件
[单片机]
基于<font color='red'>51单片机</font>的金属探测仪
51单片机的中断系统
有关单片机中断系统的概念:什么是中断,我们从一个生活中的例程引入。你正在家中看书,突然电话铃响了,你放下书本,去接电话,和来电话的人交谈,然后放下电话,回来继续看你的书。这就是生活中的“中断”的现象,就是正常的工作过程被外部的事件打断了。仔细研究一下生活中的中断,对于我们学习单片机的中断也很有好处。 第一、什么可经引起中断,生活中很多事件能引起中断:有人按了门铃了,电话铃响了,你的闹钟闹响了,你烧的水开了….等等诸如此类的事件,我们把能引起中断的称之为中断源,单片机中也有一些能引起中断的事件,8031中一共有5个:两个外部中断,两个计数/定时器中断,一个串行口中断。 第二、中断的嵌套与优先级处理:设想一下,我们正在看书,电话铃
[单片机]
<font color='red'>51单片机</font>的中断系统
51单片机P0口的特性及使用方法解析
一、P0口特性: P0口为三态双向I/O口。对于内部有程序存贮器的单片机基本系统(如定制的8051),P0口可以作为输入/输出口使用,直接连外部的输入/输出设备;也可以作为系统扩展的地址/数据总线口。对于内部没有程序存贮器的单片机(如8031),P0口只能作为地址/数据总线口使用。 1、P0口的输出驱动器中也有一个多路电子开关。输出驱动器转接至口锁动器的Q端时,P0口作为双向I/O口使用。 这时,CPU发来的控制信号为低电平,使输出驱动电路的上拉场效应管T1截止。P0口的锁存器为“1”时,输出驱动器中的两个场效应管均截止,引脚浮空;由于P0口输出电路是漏极开路的电路,必须外接10kΩ拉高电阻才能有高电平输出。而写入“0”时,下
[单片机]
<font color='red'>51单片机</font>P0口的特性及使用方法解析
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多每日新闻
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved