超声波测距.docx

上传人:b****1 文档编号:14866620 上传时间:2023-06-28 格式:DOCX 页数:28 大小:651.74KB
下载 相关 举报
超声波测距.docx_第1页
第1页 / 共28页
超声波测距.docx_第2页
第2页 / 共28页
超声波测距.docx_第3页
第3页 / 共28页
超声波测距.docx_第4页
第4页 / 共28页
超声波测距.docx_第5页
第5页 / 共28页
超声波测距.docx_第6页
第6页 / 共28页
超声波测距.docx_第7页
第7页 / 共28页
超声波测距.docx_第8页
第8页 / 共28页
超声波测距.docx_第9页
第9页 / 共28页
超声波测距.docx_第10页
第10页 / 共28页
超声波测距.docx_第11页
第11页 / 共28页
超声波测距.docx_第12页
第12页 / 共28页
超声波测距.docx_第13页
第13页 / 共28页
超声波测距.docx_第14页
第14页 / 共28页
超声波测距.docx_第15页
第15页 / 共28页
超声波测距.docx_第16页
第16页 / 共28页
超声波测距.docx_第17页
第17页 / 共28页
超声波测距.docx_第18页
第18页 / 共28页
超声波测距.docx_第19页
第19页 / 共28页
超声波测距.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

超声波测距.docx

《超声波测距.docx》由会员分享,可在线阅读,更多相关《超声波测距.docx(28页珍藏版)》请在冰点文库上搜索。

超声波测距.docx

超声波测距

课程设计

题目:

超声波测距

院(系):

信息与通信工程

专业:

通信工程

学生姓名:

学号:

指导教师:

武小年

职称:

副教授

2012年12月8日

 

摘要

由于超声波具有指向性强,能量消耗缓慢,传播距离较远等优点,所以,,在利用传感器技术和自动控制技术相结合的测距方案中,超声波测距是目前应用最普遍的一种,它广泛应用于防盗、倒车雷达、水位测量、建筑施工工地以及一些工业现场。

本设计详细介绍了超声波传感器的原理和特性,在学习分析了超声波测距的原理的基础上,分析了指出了设计测距系统的思路和所需考虑的问题,并给出了以STC89c52单片机为核心的低成本、高精度、微型化数字显示超声波测距仪的硬件电路和软件设计方法。

该系统电路设计合理、工作稳定、性能良好、检测速度快、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求。

关键词:

超声波;单片机;测距;STC89c52

 

Abstract

Ultrasonicwavehasstrongpointingtonature,slowlyenergyconsumption,propagatingdistancefarther,so,inutilizingtheschemeofdistancefindingthatsensortechnologyandautomaticcontroltechnologycombinetogether,ultrasonicwavefindsrangetousethemostgeneraloneatpresent,itappliestoguardagainsttheft,movebackwardtheradar,waterlevelmeasuring,buildingconstructionsiteandsomeindustrialscenesextensively。

Thissubjecthasintroducedprincipleandcharacteristicoftheultrasonicsensorindetail,onthebasisofanalyzingprinciplethatultrasonicwavefindsrange,thesystematicthinkingandquestionsneededtoconsiderthathavepointedoutthatdesignsandfindsrange,providelowcost,thehardwarecircuitofhighaccuracy,ultrasonicrangefinderofminiaturedigitaldisplayandsoftwaredesignmethodtakingSTC89c52asthecore,thiscircuitofsystemisreasonableindesign,workingstability,performancegoodmeasuringspeedingsoon,calculatingsimple,apttoaccomplishreal-timecontrol,andcanreachindustry'spracticaldemandinmeasuringtheprecision。

KeyWords:

Ultrasonicwave;One-chipcomputer;Rangefinding;STC89c52

 

目录

引言1

1超声波测距原理1

1.1超声波发生器的种类1

1.2压电式超声波发生器原理1

1.3超声波测距原理1

1.4设计任务及要求2

2单片机STC89C52RC3

2.1单片机简介3

2.2单片机引脚功能3

3系统组成4

4系统硬件设计5

4.1超声波发射电路5

4.2超声波接收电路5

4.3超声波传感器5

4.4显示电路6

4.5外围电路6

4.6电路原理图6

4.7PCB.........................................................7

5系统软件设计8

5.1主程序8

5.2中断服务程序9

6调试过程10

6.1使用仪器设备................................................10

6.2调试中的问题及解决方案......................................10

6.3实物图......................................................11

7总结13

谢辞14

参考文献.................................................15

附录.....................................................15

引言

超声波技术是一门各行各业都要使用的通用技术,它是通过超声波产生、传播以及接收的物理过程完成的。

超声波指向性强,能量耗损缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量。

利用超声波测距迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求,因此得到广泛应用。

目前超声波技术广泛应用于各个工业部门的超声波探测、超声焊接、超声检测和超声医疗方面。

此次系统设计利用STC89C52RC为主控芯片,利用单片机程序产生40KHz方波信号,通过推挽放大驱动超声波发射器向外发射超声波信号,同时开始计时,超声波信号经障碍物反射后被超声波接收器接收,利用接收芯片接收并将信号传至单片机,单片机通过发射与接收之间的时间差,即可计算障碍物的距离。

并通过程序的设计利用四位数码管将探测结果直观显示出来。

基于单片机的超声波测距系统易实现,成本低,精确度高,并且容易做到实时控制,具备较强的实用性。

1超声波测距原理

1.1超声波发生器的种类

为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。

总体上讲,超声波发生器可以分为两大类:

一类是用电气方式产生超声波,一类是用机械方式产生超声波。

电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。

它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。

目前较为常用的是压电式超声波发生器。

1.2压电式超声波发生器原理

压电式超声波发生器实际上是利用压电晶体的谐振来工作的。

超声波发生器内部结构如图1所示,它有两个压电晶片和一个共振板。

当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。

反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。

1.3超声波测距原理

  超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。

超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:

s=340t/2。

这就是所谓的时间差测距法。

图1超声波测距原理

超声波测距的原理是利用超声波在空气中的传播速度为已知,测量声波在发射后遇到障碍物反射回来的时间,根据发射和接收的时间差计算出发射点到障碍物的实际距离。

由此可见,超声波测距原理与雷达原理是一样的。

1.4设计任务及要求

利用所学数字电子技术、信号处理、控制等技术,设计、制作并调试完成一个单片机最小化系统。

在此基础上,将最小系统与综合实验开发平台上的超声波模块、显示模块进行正确的连接,使单片机可接收超声波模块输出的距离信号,并对其进行合理的处理后,在显示模块上实时显示超声波模块与障碍物的距离。

具体要求:

实验开发平台上的数码管可实时现实障碍无语超声波的距离信息,单位为cm,精确到小数点后1位;当测试距离小于20时报警,允许以蜂鸣器或者LED灯闪烁来体现报警系统应具备测距启动功能,或当系统报警后,可以复位系统,使其开始重新测距。

2单片机STC89C52RC

2.1单片机简介

本设计中选用的宏晶科技的STC89C52RC型单片机是一种低功耗、高性能、采用CMOS工艺的8位微处理器,与工业标准型80C51单片机的指令系统和引脚完全兼容。

片内8KFlash存储器可在线重新编程,或使用通用的非易失性存储器编程器。

由于一般的距离测量中,距离的变化速度并不太快,而且单片机的机器周期可达μs级,则其计时精度为μs级,完全可以满足系统测量的要求,并且成本较低,所以本设计中选用STC89C52RC型号的单片机。

STC89C52RC单片机,基于STC89C51内核,是新一代增强型单片机,指令代码完全兼容传统STC89C51,速度快8~12倍,带ADC,4路PWM,双串口,有全球唯一ID号,加密性好,抗干扰强。

图2STC89C52RC实物图

2.2单片机引脚功能

STC89C52RC采用40Pin封装的双列直插DIP结构。

40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。

STC89C52RC的引脚功能如下:

1.Pin20:

接地脚。

2.Pin40:

正电源脚,工作时,接+5V电源。

3.Pin19:

时钟XTAL1脚,片内振荡电路的输入端。

4.Pin18:

时钟XTAL2脚,片内振荡电路的输出端。

5.STC89C52RC的时钟有两种方式,一种是片内时钟振荡方式,但需在18和19脚外接石英晶体(2-12MHz)和振荡电容,振荡电容的值一般取10p-30p。

另外一种是外部时钟方式,即将XTAL1接地,外部时钟信号从XTAL2脚输入。

6.输入输出(I/O)引脚:

Pin39-Pin32为P0.0-P0.7输入输出脚。

Pin1-Pin8为P1.0-P1.7输入输出脚。

Pin21-Pin28为P2.0-P2.7输入输出脚。

7.Pin9:

RESET/Vpd复位信号复用脚,当STC89C52RC通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。

STC89C52RC的复位方式可以是自动复位,也可以是手动复位。

此外,RESET/Vpd还是一复用脚,Vcc掉电期间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。

8.Pin30:

ALE当访问外部程序存储器时,ALE(地址锁存)的输出用于锁存地址的低位字节。

而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。

如果单片机是EPROM,在编程其间,将用于输入编程脉冲。

9.Pin29:

当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。

 

10.Pin31:

EA/Vpp程序存储器的内外部选通线,STC89C52RC和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。

如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。

3系统组成

本系统设计主要利用STC89C52RC为主控芯片,通过其配合发射电路,接收电路以及显示电路的协调工作,最终实现超声波测距的目的,系统的组成框图如图4所示。

图4系统组成框图

4系统硬件设计

4.1超声波发射电路

超声波发射部分是为了让超声波发射换能器能向外界发出40kHz左右的方波脉冲信号。

编程由单片机端口输出40kHz左右的方波脉冲信号,由于单片机端口输出功率不够,40kHz方波脉冲信号送到实验箱进行功率放大以便使发射距离足够远,满足测量距离要求。

4.2超声波接收电路

上述超声波发射换能器发射的超声波在空气中传播,遇到障碍物就会返回,超声波接收部分是为了将反射波(回波)顺利接收到超声波接收换能器进行转换变成电信号,并对此电信号进行放大、滤波、整形等处理后,得到一个负脉冲送给单片机的引脚,以产生一个中断。

4.3超声波传感器

图7超声波传感器

超声波发射接收头为本设计中的主要元件,如图7所示,其中标有T字样的是发射头,标有R字样的是接收头。

图7中左侧上面两个为发射头与接收头的背面引脚。

左侧下面两个为超声波传感器的正面视图,右边为超声波传感器的侧面视图。

安装时应保持超声波发射头与接收头的中心轴线平行并相距4~8cm,其余元件无特殊要求。

若能将超声波接收电路用金属壳屏蔽起来,则可提高抗干扰能力。

发射接收头的主要参数如下:

型号:

TCT40-12R/T(直径12mm)

标称频率(KHz):

40KHz

发射声压at10V(0dB=0.02mPa):

≥117dB

接收灵敏度at40KHz(0dB=V/ubar):

≥-65dB

静电容量at1KHz,<1V(PF):

2000±30%

4.4显示电路

本设计的显示电路采用四位一体共阳数码管利用单片机进行动态显示,动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。

所谓动态扫描显示即轮流向各位数码管送出字型码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。

本电路中单片机的P0.0至P0.7依次控制段码a、b、c、d、e、f、g、h。

利用P2.4、P2.5、P2.6、P2.7口控制位选,从而达到动态显示的目的。

显示电路采用简单的4位共阳LED数码管,位码用9012驱动。

图8显示电路

4.5外围电路

外围电路包括时钟电路,复位电路,报警器(LED灯或者蜂鸣器)电路。

这些都可以从试实验箱上找到对应的电路与单片机相连完成整体电路。

4.6电路原理图

图9电路原理图

4.7PCB

5系统软件设计

超声波测距系统的控制核心是单片机,软件主要完成测量过程控制、精确计时、数据计算及结果处理等功能。

系统采用单片机内部自带的定时器/计数器T0中断功能,对发射到接收的时间进行精确计时。

而且为了节约硬件成本,系统采用单片机发出40kHz方波信号,由方波输出程序控制单片机管脚P1.0输出方波信号。

利用外中断0口监测超声波接收电路输出的返回信号,然后单片机不停的检测INT0引脚,当INT0引脚的电平由高电平变为低电平时就认为超声波已经返回。

计数器所计的数据就是超声波所经历的时间,通过换算就可以得到传感器与障碍物之间的距离。

5.1主程序

超声波是通过端口发出超声波脉冲信号(频率约40kHz的方波),脉冲宽度为12μs左右,同时把计数器T0打开进行计时。

超声波测距仪主程序利用外中断0检测返回超声波信号,一旦接收到返回超声波信号(即INT0引脚出现低电平),立即进入中断程序。

进入中断后就立即关闭计时器T0停止计时,并将测距成功标志字赋值1。

并且同时读取计数值,对测量结果进行计算,然后显示测量结果。

由于采用12MHz的晶振,机器周期为1us,当主程序检测到接收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)按下式计算即可测得被测物体与测距仪之间的距离,设计时取声速为340 m/s则有:

S=(V*T0)/2 =17T0/1000cm(其中T0为计数器T0的计数值),测出距离后结果将以十进制BCD码方式让四位LED显示,然后再发超声波脉冲重复测量过程。

主程序流程图如图10所示。

显示测量结果

 

 

图10主程序流程图

5.2中断服务程序

超声波发生子程序的作用是通过端口发送超声波信号频率约40KHz的方波,脉冲宽度为12us左右,同时把计数器T0打开进行计时。

超声波测距器主程序利用外中断0检测返回超声波信号,一旦接收到返回超声波信号(INT0引脚出现低电平),立即进入中断程序。

进入该中断后就立即关闭计时器T0停止计时,并将测距成功标志字赋值1。

如果当计时器溢出时还未检测到超声波返回信号,则定时器T0溢出中断将外中断0关闭,并将测距成功标志字赋值2以表示此次测距不成功。

然后重新发射超声波,等待回波信号,中断服务程序的流程图如图11所示。

NO

 

图11中断服务程序流程图

6调试过程

6.1使用仪器设备

整个测距系统由单片机最小系统、实验开发平台(其中用到超声波收发模块、数码管显示模块、按键模块)、PC机、跳线若干根组成。

6.2调试中的问题及解决方案

因为在整个调试过程中,电路箱要保持通电状态,而且单片机也要和PC保持通电,这就导致了调试过程中很多不安全隐患,是不是能闻到周围有因短路而烧焦的味道,使得很多实验箱的部分模块无法正常工作。

期间因为更换跳线,在手持单片机和摆弄试验箱的时候被电过。

在指导老师的提醒下,我们通过用纸制品隔离的方式来减少短路及安全隐患。

如图12所示,纸张是标签用完后的蜡光纸,废物利用下。

图12纸质物隔离

经过几次跳线,部分模块更换和程序的微调,终于在数码管成功显示出了实验结果

图13调试成功结果

6.3实物图

 

7总结

超声波测距是工业上用的比较多的一种技术,廉价,精度高,适合于人员无法实地测量的场合,缺点是对环境要求非常高,非常容易受到干扰。

在调试过程中需要非常大的耐心,因为有些很细小的问题是很难发现的,比如调试时就出现了一个引脚虚焊和最小系统接错的情况,用万用表找了好久才找到问题。

该系统对测量范围在0.7m~3m内的平面物体能进行测量,其最大误差为5cm,且重复性好;通过修改部分子程序可根据需要扩展成六通道、二通道、单通道的汽车后视仪及根据不同的要求作不同的报警处理。

可见基于单片机设计的数显超声波测距系统具有硬件结构简单、工作可靠、测量误差小等特点。

因此,它不仅可用于移动机器人,还可广泛应用于各种检测系统中。

本次毕业设计给了我很多新的认识,我的意志得到了磨练,毕业设计不只是一个工程设计的学习过程,更是一个做人、做事的感悟背景。

设计前期,首先要明确目的,这个阶段需要阅读大量的参考文献,这对我来说是一个比较大的挑战,因为自己平时动手能力比较差,文献也读的比较少,在经过大半月之后,对课题有了进一步的了解,并确定了大体的设计方案。

明确目的后,就要对其所需的知识有个基础的了解,并掌握其专业技术,然后进行总体设计的架构,下一步对设计的具体模块进行硬件设计。

具体设计过程中,遇到很多困难,经过自己不断努力,一点一点克服。

通过本系统的学习,不仅更加熟悉了工程系统的设计步骤和方法,从应用的角度掌握了许多电子技术、超声波传感技术、机器人技术、程序设计语言等科学技术知识,还更明确了怎样思考、优化时间、高效做事以及接人待物等等为人处事的基本原则和方法态度。

 

谢辞

感谢武小年老师对我的细心的指导以及帮助,正是由于武晋老师的细心的辅导和他提供给我们的参考资料,使得我的课程设计能够顺利的完成,同时在课程设计过程中,我也进一步学习了一些相关专业知识,而且还了解了一些以前一直没能学到的东西。

相信这不仅对我以后的课程设计和毕业设计将会有很大的帮助,而且将对我以后的工作带来大大的便利。

在这几个星期的时间里,虽然不是天天能和晋老师见面,但是有问题的时候随时向武小年提问,他都会抽空为你解答。

武小年百忙之中还抽空指导我们的课程设计,在武老师耐心和细心的指导下,我的电子秒表最终才得以顺利完成。

而且在这段时间里,通过武老师的指导,我在分析问题、解决问题的能力有了进一步的提高,同时我也认识到了自己的不足,非常感谢武老师给了我这次机会。

在阅读课设论文的时候,武老师也是不厌其烦的一一给我们讲解,帮我们纠正错误,使我们得以顺利完成课程设计论文。

最后,衷心感谢武老师的指导!

 

参考文献:

[1]邹应全51单片机原理与实验教程西安电子科技大学出版社

[2]郭天祥51单片机C语言教程北京电子工业出版社

[3]韩久强现代遥控遥测技术与系统清华大学出版社

 

附录

超声波测距程序

============================================================*/

#include//器件配置文件

#include

#defineRXP2_0

#defineTXP2_1

#defineLCM_RSP2_4//定义LCD引脚

#defineLCM_RWP2_5

#defineLCM_EP2_6

#defineLEDP2_2

#defineLCM_DataP0

#defineKey_DataP2_0//定义Keyboard引脚

#defineKey_CLKP3_2

#defineBusy0x80//用于检测LCM状态字中的Busy标识

voidLCMInit(void);

voidDisplayOneChar(unsignedcharX,unsignedcharY,unsignedcharDData);

voidDisplayListChar(unsignedcharX,unsignedcharY,unsignedcharcode*DData);

voidDelay5Ms(void);

voidDelay400Ms(void);

voidDecode(unsignedcharScanCode);

voidWriteDataLCM(unsignedcharWDLCM);

voidWriteCommandLCM(unsignedcharWCLCM,BuysC);

unsignedcharReadDataLCM(void);

unsignedcharReadStatusLCM(void);

unsignedcharcodemcustudio[]={"MOHURanging..."};

unsignedcharcodeCls[]={""};

unsignedcharcodeASCII[15]={'0','1','2','3','4','5','6','7','8','9','.','-','M'};

staticunsignedcharDisNum=0;//显示用指针

unsignedinttime=0;

unsignedlongS=0;

bitflag=0;

unsignedchardisbuff[4]={0,0,0,0,};

 

//写数据

voidWriteDataLCM(unsignedcharWDLCM)

{

ReadStatusLCM();//检测忙

LCM_Data=WDLCM;

LCM_RS=1;

LCM_RW=0;

LCM_

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2