反文抄袭检查小学部分

更新时间:2024-01-21 作者:用户投稿原创标记本站原创 点赞:5348 浏览:20074

本科毕业设计

(2007届)

题目基于单片机控制的超声波测距系统

设计与实现学院电子信息学院专业电子信息工程班级030418学号03903203学生姓名张春梅指导教师王维平完成日期2007年3月

诚信承诺

我谨在此承诺:本人所写的毕业论文《基于单片机控制的超声波测距系统地设计与实现》均系本人独立完成,没有抄袭行为,凡涉及其他作者的观点和材料,均作了注释,若有不实,后果由本人承担.

承诺人(签名):张春梅

2007年3月23日

摘 要

超声波测距在社会生活中已经有广泛的应用如汽车倒车雷达等.本文主要研究了一种基于单片机微处理器的超声波测距仪.该仪器以空气中超声波的传播速度为确定条件,利用反射超声波测量待测距离.本文阐述了仪器研制的理论基础,介绍了具体的软硬件设计以及相关情况.

该系统的硬件部分主要由单片机系统及显示电路,超声波发射电路和超声波检测接收电路三部分组成.软件部分主要由主程序,超声波发生子程序,超声波接收中断程序及显示子程序等部分组成.利用单片机AT89C2051对超声波接收信号进行处理(通过一定的算法),并将它显示到LED上.单片机程序使用KEIL设计并调试.

关 键 词:超声波,测距系统,单片机

ABSTRACT

Thetechnologyofmeasuringdistancebyultrasonicsignaliswidelyusedinmany

socialfields,suchasbacking-carradarandsoon.Thispaperprimarilyinvestigatsakindofultrasonicrangefinderbasedonmicroprocessor.Thisdevicecanmeasurecertaindistancewithreflectedweonconditionthatthespeedoftranittingweiixed.Itgenerallyspecifiesthetheoreticalfoundationofthedevice,introducesthesoftwareandhardwaredesignofthedeviceandcorrelativethings.

Thepartofthehardwareofthesystemiainlyposedwiththethreepartsasthemicroprocessorsystemanddisplaycircuit,theultrasonictranittingcircuitandtheultrasonicreceivingdetectioncircuit.Thepartofsoftwareiainlyposedwithmainprogram,ultrasonicoccurredsubrouting,ultrasonicreceivedinterruptionsubroutinganddisplaysubrouting.UsingtheMCUAT89C2051,dealsthesignaloftheultrasonic(throughsomealgorithm),andshowsitontheLED.

Keywords:ultrasonicrangingsystem,microcontroller

目录

1引言1

2概述2

2.1超声与超声的应用2

2.1.1超声的产生2

2.1.2超声的发展史2

2.1.3超声的分类3

2.1.4超声声速的计算3

2.1.5使用超声波和使用激光测距的比较4

2.2超声波换能器的介绍4

2.2.1超声波换能器的分类4

2.2.2超声波换能器的基本原理4

2.2.3超声波换能器的基本构造6

2.3超声波测距电路原理6

2.4测量盲区7

2.5超声波的衰减8

2.6主要技术指标9

2.7总结9

3硬件电路设计10

3.1AT89C51和AT89C2051的区别10

3.2硬件电路的总体设计12

3.3测距原理12

3.4超声波测距系统的工作过程13

3.5超声波测距部分硬件实现13

3.5.1单片机系统部分13

3.5.2显示部分13

3.5.3发射部分15

3.5.4接收部分15

3.5.5限制系统的最大可测距离的因素16

3.5.6硬件电路设计总结16

3.6用PROTEL绘制原理图16

4软件设计18

4.1总体方案18

4.2程序流图18

4.3模块说明19

4.3.1超声波测距仪的算法设计19

4.3.2主函数19

4.3.3超声波发生子程序和超声波接收子程序20

4.3.4显示函数20

5.制作与调试22

5.1硬件的制作与调试22

5.2软件的调试22

5.3软硬件结合调试23

致谢25

340;宽广频段.

2.1.2超声的发展史

超声的研究和发展,与媒质中超声的产生和接收的研究密切相关.1883年Galton首次制成超声气哨,其原理是将压缩气体经过狭缝喷嘴形成气流,吹动圆形刀口振动形成共振腔,从而产生超声.此后又出现了各种形式的汽笛和液哨等机械型超声换能器.山于这类换能器成本低,所以经过不断改进,至今仍广泛地用于对流体媒质的超声处理技术中.

20世纪初,电子学的发展使人们能利用某些材料的压电效应和磁致伸缩效应制成各种机电换能器.1917年,法国物理学家朗之万(PaulLangevin)用天然压电石英制成了夹心式超声换能器,并成功地应用于水下探测潜艇.随着军事和国民经济各部门中超声应用的不断发展,又出现更大超声功率的磁致伸缩换能器,以及各种不同用途的电动型,电磁力型,静电型等多种超声换能器.

材料科学的发展,使得应用最广泛的压电换能器也由天然压电晶体发展到机电祸合系数高,低廉,性能良好的压电陶瓷,人工压电单晶,压电半导体以及塑料压电薄膜(PVDF)等.产生和检测超声波的频率,也由几十千赫提高到上千兆赫.产生和接收的波型也由单纯的纵波扩大为横波,扭转波,弯曲波,表面波等.如频率为几十兆赫到上千兆赫的微型表面波都己成功地用于雷达,电子通信和成像技术等方面.

2.1.3超声的分类

利用超声波易于获得指向性极好的定向声束,超声波在媒质中的反射,折射,衍射散射等传播规律与可听声波并无质的区别,超声在一般流体媒质(气体,液体)中的传播理论已较成熟.同时,当超声在媒质中传播时,由于声波和媒质之间的相互作用,使媒质发生一系列物理的和化学的变化,也出现一系列力学,光学,电,化学等超声效应因此,就超声的物理机制和应用目的来看,可大致分为检测超声和功率超声.

检测超声主要是利用超声的信息载体作用,即通过超声在媒质中的传播,吸收,波形转换等,提取反映媒质本身特性或内部结构的信息,达到检测媒质性质,物体形状或几何尺寸,内部缺陷或结构的目的.如超声测距,测厚,测物位,工业测井,工业无损探伤,测媒质的流速,密度,粘度,硬度等等.广义的说,医学上以人体为检测对象的超声医学诊断,如超声显微镜,超声成像,以海洋探测及水下目标识别为目的的水声应用等,也归于此类.功率超声则主要利用超声的能量对物质的作用,即利用超声振动产生的大功率,高强度超声波,来改变物质的性质与状态.如超声清洗,焊接,加工,粉碎,促进化学或生物医学效应等.

2.1.4超声声速的计算

由于超声有很好的指向性,超声在某种媒质中的传播速度较为恒定,因此超声最常用的功能是距离测量及定位.

检测设超声波通过的媒质是空气,任何物体都能反射,吸收,折射一部分通过

它自身的声波,其比例依赖于物体自身的均衡度.反射波的振幅与目标物体上能

产生反射的表面成比例.表面尺寸,形状,方位是影响反射波强度的主要因素.

目标物体的组成成份也是一个因素.一部分声波发射到达物体表面后被反射,一

部分则进入物体,在物质中传输,最终被遇到的物体界面反射.因此你也可以接

收到来自物体内部的信号,不过它是很细微的.

声波传播涉及能量经过空间的传递.从声源发出的声波向各个方向扩散时,声波可能被反射,折射,散射,衍射,干涉和吸收.

声波的传输需要一种媒质,声波在媒质中的传播的速度,称为声速.其符号为c,单位为m/s.由声波产生的物理过程可知,声速与质点速度是完全不同的,声波的传播只是扰动形式和能量的传递,并不把在各自平衡位置附近振动的媒质质点传走.某种媒质中的声速主要取决于该媒质的密度和温度.

由于气体没有剪切弹性,只有体积弹性,因而气体中的声波的传播形式只能是纵波.也就是说,在声扰动下,气体媒质中的质点在各自平衡位置附近运动,形成稠密和稀疏依次交替的传递过程,而且,质点运动的方向与声波传播的方向一致.

声速在相当大的频率范围内不随频率发生变化,也就是说超声的传播速度与可听声波的传播速度是相同的,超声波在媒质中的反射,折射,衍射,散射等传播规律与可听声波的并无质的区别,与一般声波相比,超声具有更好的定向性,并且可以穿透不透明物质.超声在一般流体媒质(气体,液体)中的传播理论已较成熟.

可知,超声波在空气中的传播速度为:

(2.1)

其中为环境温度.这样,在实际测量中,我们可以根据声速与温度的关系作相应的温度补偿.

2.1.5使用超声波和使用激光测距的比较

基于以上介绍的超声波的特点不难区分它们的各自的适用场合,激光测距主要用于远程,如测月球到地球距离,或远距离无障碍测距,而且成本要比用超声波大,因为光速为3×10^8M/S,而一般市场上的单片机最高频率在十几至几十兆,如果测量的距离在十米左右,那么检测设单片机别的都不做只是计数,出射光将在大约0.033us后返回,要求单片机CLK为1/0.033MHz,也就是说30M时钟频率的单片机刚发出出射激光的命令,光就已经在它的下个CLK脉冲来到了,更别提计数了,即使使用频率很高的单片机或其他器件如FPGA等在精度上将不能满足需要(通常在收发间隔中得到的计数脉冲越多精度越高).但值得注意的是,超声波在空气中传播速度会随介质温度的升高而增大,气温每上升1摄式度,声波速度增加


0.6mPs.所以在测量中要考虑温度变化的因素,进行温度补偿修正,减少测量误差.另外超声波在传输距离稍大时衰减很大,精度也随之降低.

2.2超声波换能器的介绍

2.2.1超声波换能器的分类

为了研究和利用超声波,人们已经设计和制成了许多超声波发生器.总体上讲,超声波器可以分为两大类:一类是用电气方式产生超声波,一类是用机械方式产生超声波.电气方式包括压电型,磁致伸缩型和电动型等,机械方式有加尔统笛,液哨和气流旋笛等.它们所产生的超声波的频率,功率和声波特性各不相同,因而用途也各不相同.

图2-1双压晶片示意图

图2-1是双压晶片示意图.在上下层间施加交流电压时,若上片的电场与极化方向相同,则下面的方向相反.因此,上下一伸一缩,形成超声波振动.

图2-2是双压电晶片的等效电路

图2-2是双压电晶片的等效电路.C0为静电电容,R为陶瓷材料介电损耗并联电阻,Cm和Lm为机械共振回路的电容和电感.Rm为损耗串联电阻.

压电陶瓷晶片有一个固有的谐振频率,即中心频率fo,发射超声波时,加在其上面的交变电压的频率要与它的固有谐振频率fo一致,接收超声波时,作用在其上面的超声机械波的频率也要与它的固有频率fo一致.这样,超声传感器才有较高的灵敏度.

当所用的压电材料不变时,改变压电陶瓷晶片的几何尺寸,就可非常方便地改变其固有谐振频率.利用这一特性可制成各种频率的超声传感器.用于测距的传感器的中心频率一般为40KHz.

2.2.3超声波换能器的基本构造

目前较为常用的是压电式超声波器.压电式超声波器40KHz左右的超声波在空气中传播的效率最佳,同时为了处理方便,发射的超声波被调制成40KHz左右,具有一定间隔的调制脉冲波信号.本测距仪使用的超声波换能器是TCT40-12F1(T发射)和TCT40-12S1(R接收),中心频率是40KHz.超声波发生/接收器的外形和通常的驻极体话筒差不多,如果发生接收是分开的两个在安装过程中要注意它们之间的距离大概在4—8CM,否则过于靠近易产生干扰.若将超声波接收电路用金属壳屏蔽起来可提高抗干扰性能.

2.3超声波测距电路原理

由于超声波发射与接收器件所具有的固有频率特性,使超声波测距系统可部分采用选频电路,这具有很高的抗干扰性能.但由于这个特性,使频分制超声波多通道检测系统,实现起来不太方便.在多通道超声波检测系统中,一般采用码分制.

1.单通道超声波检测电路

单通道超声波检测电路比较简单,其原理图如图2-4所示

图2-4单通道超声波测距电路原理图

单通道超声波测距电路的发射器一般由超声波信号振荡器(由AT89C2051单片机来实现),驱动电路,超声发射器件(超声波传感器发射TX401)构成,接收电路一般由超声波接收器(超声波传感器接收RX401),前置放大器,记忆驱动电路,执行电路构成.

2.多通道超声波检测电路

超声波多通道检测电路一般采用码分制,图3-2是码分制超声波电路的原理图.

图2-5码分制超声波测距电路原理图

由图2-5可见,码分制超声波测量电路与码分制红外遥控电路的结构基本相同,只是发射与接收的器件不同而已.总而言之,超声波测距是通过不断检测超声波发射后遇到障碍物所反射的回波,从而测出发射和接收回波的时间差t,然后求出距离:当发射超声波时,发射信号虽然只维持一个极短时间,但停止施加发射信号后,探头上还存在一定余振(由于机械惯性作用).因此,在一段较长时间内,加在接收放大器输入端的发射信号幅值仍具有一定幅值高度,可以达到限幅电路的限幅电平.当反射面离探头越来越远,接收和发射信号相隔时间越来越长,其幅值也越来越小.在超声波检测中,接收信号的衰减总是比发射信号余振衰减慢的多.为保证一定的信噪比,接收信号幅值需达到规定的阐值V,亦即接收信号的幅值必须大于这一m值才能使接受放大器有输入信号.由图3-3,从b点以后,接收的信号低于阐值,相当于测距的远限.另外,从图中A点以后,接收信号才比发射信号大,但还将与发射信号相迭加,难以分辨.从c点以后,发射信号低出阐值V,接收信号才基本摆脱发射信号干扰,而能明显的被分辨,所以在要求较高是,把oc这段时间规定为盲区时间.从距离上说,根据盲区时间和声速,就可以求得盲区距离.因此,cb为可测距范围,b点就为测距远限,其外部就为测量不到的区域.

图2-6传感器回波原理分析

2.5超声波的衰减

声波在媒质中传播时,其强度随传播距离的增加而逐渐减弱的现象,统称为声衰减.声波的衰减主要分为以下三种主要类型:吸收衰减,散射衰减和扩散衰减.其中,吸收衰减主要是由媒质的粘滞性,热传导及各种弛豫过程引起的:散射衰减是由于声波在遇到媒质界面时,向不同的方向产生散射,从而导致声波减弱,扩散衰减则是由声源特性引起的,是因为声波传播过程中因波阵面的面积扩大导致的声强减弱,若声源辐射的是球面波(波阵面是同心球面),其波阵面随的平方增大,声强随规律减弱.声波的描述方程与电磁波是类似的:

(2.2)

上式中,A(x)为振幅,为传播角频率,为传播时间,为传播距离,为波速,为声长.

由于声波的衰减,使得随传播距离的变化而变化.声学理论证明,吸收衰减和散射衰减都遵从指数衰减规律.对沿X方向传播的平面波而言,由于不需要计算扩散衰减,则的变化规律可以由下式表示:

(2.3)

为声源处质子振幅,为不变量,为衰减系数.衰减系数与声波所在介质及频率的关系为:

(2.4)

其中,为介质常数,为振动频率.在空气中,,当振动的声波频率时,可得,即.它的物理意义在于:超声波在空气媒介中传播,因空气分子运动摩擦等原因,能量被吸收损耗,在长度上,平面声波的振幅衰减为原来的1/e.而且,频率越高,衰减系数a越大,传播的距离也越短.在实际的应用中,一般选用30-100KHz的超声波进行距离测量,比较的典型的频率为40KHz.

2.6主要技术指标

测量范围:0.5~3m

测量精度:1cm

2.7总结

以上对超声波测距的基本原理及超声波传感器作了介绍.关于超声波的发射电路,接收前置放大,脉冲形成与记忆电路,电源电路,以及码分制超声波测距电路中的编码与解码电路,脉冲调制与解调电路.可以参考红外发送电路.

在设计超声波传感器测距电路时应注意以下几点:

1.超声波传感器作为谐振器件,驱动时所需电流较小,一般仅为几毫安到十几毫安.但要有一定幅度的驱动电压,驱动电路不加限流电阻.

2.发射器驱动电压的频率一定要接近传感器的中心频率,设计时元件参数

经过比较精确的计算.调试时要注意通过频率计来监测频率.

要选用阻抗较高的前置放大器,以获得较高的接收灵敏度和选择性.

3硬件电路设计

3.1AT89C51和AT89C2051的区别

AT89C51和AT89C2051都是AT89系列的典型代表,便宜,都可以用于超声波测距仪中.

表1AT89C51和AT89C2051主要性能表

AT89C51AT89C20514KB可编程Flash存储器(可擦写1000次)2KB可编程Flash存储器(可擦写1000次)程序存储器保密两级程序存储器保密静态工作频率:0Hz-24MHz静态工作频率:0Hz-24MHz128字节内部RAM128字节内部RAM2个16位定时计数器/计时器2个16位定时计数器/计时器一个串行通讯口一个串行通讯口六个中断源六个中断源32条I/O引线15条I/O引线片内时钟振荡器一个片内模拟比较器从上表可以看出它们大体相同,由于AT89C2051的IO线很少,导致它无法外加RAM和程序ROM,片内Flash存储器也很少,但它的体积比AT89C51小的多,也便宜一些.由于超声波测距仪的电路比较简单,AT89C2051已经足够使用,所以使用AT89C2051作为主控制器.

AT89C2051是一个2k字节可编程EPROM的高性能微控制器.它与工业标准MCS-51的指令和引脚兼容,因而是一种功能强大的微控制器,它对很多嵌入式控制应用提供了一个高度灵活有效的解决方案.AT89C2051支持二种软件可选的电源节电方式.空闲时,CPU停止,而让RAM,定时/计数器,串行口和中断系统继续工作.可掉电保存RAM的内容,但可使振荡器停振以禁止芯片所有的其它功能直到下一次硬件复位. AT89C2051有2个16位计时/计数器寄存器Timer0Timer1.作为一个定时器,每个机器周期寄存器增加1,这样寄存器即可计数机器周期.因为一个机器周期有12个振荡器周期,所以计数率是振荡器频率的1/12.作为一个计数器,该寄存器在相应的外部输入脚P3.4/T0和P3.5/T1上出现从1至0的变化时增1.由于需要二个机器周期来辨认一次1到0的变化,所以最大的计数率是振荡器频率的1/24,可以对外部的输入端P3.2/INT0和P3.3/INT1编程,便于测量脉冲宽度的门.充分利用AT89C2051的片内资源,即可在很少电路的情况下构成功能完善的超声波测距系统.

图3-1AT89C2051的管脚图

表2AT89C2051管脚功能

管脚接脚符号方向信号I/O(输入/输出)方向与功能12~19P1.0~P1.7(P1)I/OP1口:是一个8位双向I/O口,具有内部提升电阻,P1口的输出缓冲能够吸收或者供应4个TTL负载电流,P1接脚被写入1后,由内部提升拉为高电位状态,此时可做为输入脚,做输入时,P1口如果被外部信号拉低电位(Pulllow),将因内部提升而提供电流(I)P1.0管脚第二功能:AIN0电压输入比较器P1.1管脚第二功能:AIN1电压输入比较器2~3

6~9

11P3.0~P3.1P3.2~P3.5P3.7(P3)I/OP3口:是一个8位双向I/O口,具有内部提升电阻,P3口的输出缓冲能够吸收或者供应4个TTL负载电流,P1接脚被写入1后,由内部提升拉为高电位状态,此时可做为输入脚,做输入时,P1口如果被外部信号拉低电位(Pulllow),将因内部提升而提供电流(I)

P3口还做为特殊功能接脚,详见下面列表P3.0管脚第二功能:RXD(串行口输入端)P3.1管脚第二功能:TXD(串行口输出端)P3.2管脚第二功能:INT0(外部中断0)P3.3管脚第二功能:INT1(外部中断1)P3.4管脚第二功能:T0(定时器0外部输入)P3.5管脚第二功能:T1(定时器1外部输入)5XTAL1I时钟振荡器输入脚:输入信号接到单片机内部的反相振荡放大器及内部时钟脉冲发生器电路.4XTAL20时钟振荡器输出脚:此脚接到单片机内部的反相振荡放大器(Oscillator'samplifier)的输出端1RSTI复位(RESET):一个高电位输入此脚将重新启动单片机程序,该信号须在振荡器起振以后持续两个机器周期20VCC电源正端:2.7~6V10GND电源地端3.2硬件电路的总体设计

根据设计要求并综合个方面的因素,本设计决定采用AT89C2051单片机为主控制器,用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器完成,超声波测距仪系统设计框架如图3-2所示.

图3-2超声波测距器系统设计框图

3.3测距原理

超声波测距的方法有多种,如相位检测法,声波幅值检测法和往返时间检测法等.相位检测法虽然精度高,但检测范围有限,声波幅值检测法易受反射波的影响.本论文硬件设计采用超声波往返时间检测法,其原理为:检测从超声波发射器发出的超声波(检测设传播介质为气体),经气体介质的传播到接收器的时间,即往返时间.往返时间与气体介质中的声速相乘,就是声波传输的距离.而所测距离是声波传输距离的一半,即:

(3.1)

式中,c为超声波在空气中的传播速度.在文章的前面已经说过c的计算方法.当温度不便或者常温时可以认为c时固定不变的.

图3-3超声波测距原理图

3.4超声波测距系统的工作过程

1.首先,系统控制部分初始化整个系统

1)初始化LED

2)初始化计数控制部分,清除计数值,使之恢复为0

2.单片机超声波脉冲信号,脉冲宽度为12us左右

3.立刻置P3.4为"1",打开计时器,等待回波信号.

4.情况1:回波信号到达,关闭计时器,P3.5为"0",清P3.4为"0"

情况2:回波信号没有到达,关闭计时器,清P3.5,P3.4为"0"

继续重一开始.

5.单片机读出计数值.

6.单片机将计数值进行计算后得出的距离值,显示在LED上.

3.5超声波测距部分硬件实现

硬件电路主要分为单片机系统,显示电路,超声波发射电路和超声波检测接收电路四个部分组成.下面就对每一个部分进行介绍.

3.5.1单片机系统部分

单片机采用89C2051.采用12M高精度的晶振,以获得较稳定的时钟频率,减小测量误差.单片机用P3.5口输出超声波换能器所需的40KHz方波信号,利用外中断0口监测超声波接收电路输出的返回信号.电路如图3-4所示.

图3-4单片机系统部分电路图

3.5.2显示部分

显示电路采用简单实用的4位共阳LED数码管,段码2千欧姆的电阻驱动,位码用PNP的管9012进行驱动.显示部分电路如图3-6所示.

数码管的介绍:

一位数码管的接法和驱动原理:一支七段数码管实际由8个发光二极管构成,其中7个组形构成数字8的七段笔画,所以称为七段数码管,而余下的1个发光二极管作为小数点.作为习惯,分别给8个发光二极管标上记号:a,b,c,d,e,f,g,h.对应8的顶上一画,按顺时针方向排,中间一画为g,小数点为h.我们通常又将各二极与一个字节的8位对应,a(D0),b(D1),c(D2),d(D3),e(D4),f(D5),g(D6),h(D7),相应8个发光二极管正好与单片机一个端口Pn的8个引脚连接,这样单片机就可以通过引脚输出高低电平控制8个发光二极的亮与灭,从而显示各种数字和符号,对应字节,引脚接法为:a(Pn.0),b(Pn.1),c(Pn.2),d(Pn.3),e(Pn.4),f(Pn.5),g(Pn.6),h(Pn.7).如果将8个发光二极管的负极(阴极)内接在一起,作为数码管的一个引脚,这种数码管则被称为共阴数码管,共同的引脚则称为共阴极,8个正极则为段极.否则,如果是将正极(阳极)内接在一起引出的,则称为共阳数码管,共同的引脚则称为共阳极,8个负极则为段极.

本系统采用四位一体的LED显示器,其原理与上面介绍的LED显示器相同.在四位一体的LED显示器中,各个相同的段连在一起(构成LED显示器的8个引脚),再加上连接位控线的4个引脚,总共12个引脚,如图3-5所示.

通常点亮LED显示器有静态和动态两种方法.所谓静态显示,就是当显示器显示一个字符时,相应的发光二极管恒定地导通或截止.当显示器位数少时,适合用静态显示地方法.所谓动态显示,就是一位一位地循环点亮显示器各个位(扫瞄),对于显示器地每个位来说,每隔一段时间点亮一次.显示器的亮度既与导通电流有关,也与点亮时间和间隔时间有关,调整电流和时间参数,可以实现亮度较稳定的显示.本设计采用动态显示方式.

图3-5四位一体七段数码管引

图3-6显示部分电路

LED显示使用的是四位共阳数码管,P3(P3.0~P3.3)脚进行选位,P1(P1.0~p1.7)脚进行选段.当P3脚为高电平时,三极管截至,相对应的数码管就不亮,当P3脚为低电平时,三极管导通,相对应的数码管就亮,通过轮流使P3.0~P3.3赋高低电平,达到数码管轮流的点亮,由于视觉造成的效果显示好象是同时亮的,这即动态扫描显示.在选位确定之后,当P1脚为高电平时,相对应的段不亮,当P1脚为低电平时,相对应的段就亮.

3.5.3发射部分

反射电路主要由反相器74LS04和超声波换能器构成,单片机P3.5端口输出的40KHz的方波信号一路经一级反相器后送到超声波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极,用这种推挽形式将方波信号加到超声波换能器两端可以提高超声波的发射强度.输出采用两个反相器并联,用以提高驱动能力.上拉电阻R14和R15一方面可以提高反相器74LS04输出高电平的驱动能力,另一方面可以增加超声换能器的阻尼效果,缩短其自由振荡的时间.

发射部分电路如图3-7所示.

图3-7发射部分电路

3.5.4接收部分

考虑到超声波在途中会有损耗和衰减,当超声波返回以后所接收到的信号是非常的微弱的.为了加强超声波的回波信号,决定采用管对信号进行放大,用三个IN9013管通过放大,使得单片机可以清楚的接收信号.超声波接收电路如图3-8所示.

图3-8超声波接收电路

3.5.5限制系统的最大可测距离的因素

限制系统的最大可测距离存在四个因素:超声波的幅度,反射的质地,反射和入射声波之间的夹角以及接收换能器的灵敏度.接收换能器对声波脉冲的直接接收能力将决定最小的可测距离.具有语言简洁,可移植性好,表达能力强,方式灵活,可进行结构化设计,可以直接控制计算机硬件,生成代码质量高,使用方便等诸多优点

图4-1超声波测距仪程序流程图

4.3模块说明

4.3.1超声波测距仪的算法设计

超声波测距的原理在前面已经介绍过了,即超声波发生器T在某一时刻发出一个超声波信号,当这个超声波信号遇到被测物体后反射回来,就会被超声波接收器R接收到,此时只要计算出从发出超声波信号到接收到返回信号所用的时间,就可算出超声波发射器与反射物体的距离.该距离的计算公试为:

(4.1)

其中:为被测物与测距仪的距离,为声波往返的路程,为声速,为声波往返所用的时间.

4.3.2主函数

主函数程序首先是对系统环境初始化,设置定时器T0工作模式为16位定时计数器模式,置位总中断允许位EA并将显示端口P1清零.然后调用超声波发生子程序送出一个超声波脉冲,为了避免超声波从发射器直接传送到接收器引起的直射波触发,需要延时一段时间(这也是超声波测距器会有一个最小可测距离的原因)后打开外中断0接收返回的超声波信号.由于采用的是12MHz的晶振,计数器每计一个数是1us,当主程序检测到接收成功的标志位后,将计数器T0中的数(即超声波往返所用的时间)按试(4.2)计算,即可得被测物体与测距仪之间的距离,设计时取20摄式度时的声速344m/s,则有

(4.2)

其中:为计数器T0的计数器.

测出距离后结果将送往LED显示,然后再发超声波脉冲重复测量过程.为了有利于程序结构化和容易计算出距离,主程序采用C语言编写.

voidmain()

{

TMOD等于0x01,

TCON等于0x00,

TH0等于0,

TL0等于0,

P3等于0xff,

while(1)

{

i等于10,

csb_out(i),

TR0等于1,

delay(200),

while(P3_7){if(TF0等于等于1)break,},

timer等于(TH0<,<,8)+TL0,

R0等于0,

TF0等于0,

distan等于timer*109*17/100000,

TH0等于0,

TL0等于0,

if(distan<,等于29&,&,(distan))dis_mode等于0,

if(distan>,29)dis_mode等于1,

if(distan等于等于0)dis_mode等于2,

_mode(dis_mode,distan),

}

}

4.3.3超声波发生子程序和超声波接收子程序

超声波发生子函数的作用是通过P3.5端口发送超声波脉冲信号,脉冲宽度为25us左右(频率约为40kHz),同时把计数器T0打开进行计时.超声波发生子函数比较简单,但要求程序运行时间准确.

超声波测距仪主函数利用外中断0检测返回超声波信号,一旦接受到返回超声波信号(溢出标志位为1),计算距离,显示结果.

若计时器溢出时还未检测到超声波返回信号,则溢出标志位为0,则表示测距不成功.

voidcsb_out(unsignedchari)//超声波发生函数

{

while(i)

{

P3_5等于0,//P3_4等于0,

_nop_(),_nop_(),_nop_(),_nop_(),_nop_(),

_nop_(),_nop_(),_nop_(),_nop_(),_nop_(),//延时

P3_5等于1,//P3_4等于1,

_nop_(),_nop_(),_nop_(),_nop_(),_nop_(),

_nop_(),_nop_(),_nop_(),_nop_(),_nop_(),//延时

i--,

}

}

4.3.4显示函数

显示采用四位一体的共阳数码管.

voiddisplay(unsignedlongdistan)//显示函数

{

P3_2等于0,//P3.2输出低电平,选通百位数

P1等于p[distan/100],//取出百位数,查表,输出.

delay(50),//延时

P3_2等于1,

P3_1等于0,//P3.1输出低电平,选通百位数

P1等于p[(distan/10)%10],//取出十位数,查表,输出.

delay(50),//延时

P3_1等于1,

P3_0等于0,//P3.0输出低电平,选通个位数

P1等于p[distan%10],//取出个位数,查表,输出.

delay(50),//延时

P3_0等于1,

}

5.制作与调试

5.1硬件的制作与调试

电路设计完成之后,就要进行硬件的制作了.制作硬件电路是制作这个仪器的前提保证,所以也是非常重要的一步.

首先就布局.布局的好坏是影响整个仪器的制作的.布局的第一步先要选好一块合适的试验版,把实物先在没有焊盘的一面布局.考虑到软件调试和以后更换的需要,AT89C2051和74LS04要插入插座使用,所以布局时使用插座.布局时要考虑连接线的焊接,元件与元件之间尽量不要靠得太近,要留出足够的空间给连接线,特别是接收电路和单片机以及两个超声换能器之间的距离.确定好了布局,接下来就是焊接了.

其次是焊接.焊接实验板是一项细致的工作.实验板的焊接不同与成品PCB的焊接,每一根走线都要经过测量——弯角——剥线——焊接的过程,工作量大大增加.走线弯角要尽量走直角.有些点距离很近,走线不好焊接,就直接用焊锡短路.

再是硬件的调试.硬件调试,首先是线路的检查.焊接完实验板后检查器件有否错焊,漏焊,虚焊,电解电容是否焊反,走线是否正确.再用万用表检查两点之间是否有虚焊.检查无误后,接下来就是上电,这时,AT89C2051,74LS04不要插上.在正式上电前,用万用表量一下电源与地是否短路.短路的话,要耐心检查,排除故障.

然后进行显示电路,用同样的方法对显示部分进行调试后,给单片机与数码管段码连接的输出的各个引脚加高低不同的电平,在用一个高电平分别对位码进行选种,数码管能够显示,说明显示部分电路没有了问题.

最后对发射和接收电路,用函数信号发生器把40K的方波信号直接加到发射电路的输入端后,用示波器检测超声波发射的换能器,结果有方波信号.再用函数信号发生器对超声波接收的换能器直接加40K的方波信号,用示波器对接收电路输出端进行检测,结果没有方波信号,仔细检查发现原来是其中一个管B,C之间的电阻错接到C与电源之间,经过改正之后,接收电路的输出端有40K的方波信号.

通过这些过程,硬件部分的调试就基本上完成了,剩下的就只有软件和硬件之间的联调了.

5.2软件的调试

本程序采用C语言编写.编程环境是KEILUV2.

首先,先编每一个子模块.包括显示程序,超声波发生程序和主函数,用KEILUV2看是否实现了预先的功能.

其次,在保证每一个子程序都正确的前提下,把所有的子程序都结合起来进行调试,保证没有语法错误,并可以用端口来验证是否正确.也可以用海神的仿真软件进行仿真,虽然跟现实有所不符,但是还是不会差太远的.

最后,在能基本实现功能的条件下,对程序再进行反复的修改,使其达到指标要求.

5.3软硬件结合调试

在做好软件和硬件的调试之后,就可以把两者结合到一起了.

把程序用烧路器烧到单片机中,看其是否实现所要求的功能,如果不行,则要进行反复的调试,不断的对软件和硬件进行修改.由于采用C语言编写,所以在时序方面要多进行调试,知道时序符和要求,以达到功能.最后做出来的超声波测距仪基本上实现功能,只是有一些干扰,可以再超声波接收电路上套上一个罩子,以减少干扰,也可以通过其它方法.

在程序设计时,由于超声波的速度受温度的影响,对于精度要求高的情况下,要进行温度补偿措施,对于精度要求不太高的情况下可以不进行温度补偿措施,但为了能使精度尽可能高的情况下,即使在精度要求不太高的情况下,也要对距离进行相应的处理,以达到指标要求.

6结论

整个毕业设计过程历经三个多月,通过对这个超声波测距仪的制作,培养了我各方面的能力,包括学习能力,动手能力和实际操作能力.这是一种综合能力的培养,通过这个可以验证你四年所学的知识是否扎实.

首先这个毕业设计要注意一下几点:

设计完电路以后,进行焊接之前要注意摆放元器件的摆放位置,因为如果元器件摆放不当可能会造成干扰,影响最后的测量结果.40KHZ已经属于高频的部分它对元器件的摆放和焊接都有很高的要求,所以即使焊接正确,软件编程也正确,但不能保证两个凑到一起就能正确显示结果.

安装时应保持两换能器中心轴线平行并相距4~8cm,如果距离太近,两换能器会互相干扰,影响测量结果.

发射频率的选择也很重要,频率越高,衰减系数a越大,传播的距离也越短.在实际的应用中,一般选用30-100KHz的超声波进行距离测量,比较的典型的频率为40KHz.

接收电路,主要注意的就是要将接收信号的电路放大,放大的方法也很多,这里主要用三个管对电路进行放大.这里还要注意的是接收电路要离单片机尽量远一点.

编程的时候由于采用的是C语言,因为C语言比汇编语言来说在时间精确度方面差了一些,所以在编程的时候要注意时间延时的调试.

这次毕业设计基本上实现了所要求的各项指标,但由于时间,水平和经验方面的欠缺,本设计在很多方面还有很多的不足,比如干扰,电路设计合理性等问题,这些还需日后有待解决.通过实际工程的设计也使我了解到书本知识和实际应用的差别.在实际应用中遇到很多的问题,这都需要我对问题进行具体的分析,并一步一步地去解决它.这就让我认识到只有不断的学习才会不断的提高.

致谢

整个毕业设计过程历经三个多月,通过这个超声波测距仪的制作,不紧巩固了我这个大学器件所学的知识,而且培养了自己动手能力和实际操作能力,这是用来验证大学期间所学的知识.

在这期间,许多人给与了我很多帮助.首先,我要感谢学校给我这次实践机会.其次,我要感谢我的指导老师王老师,他给与了我很多帮助,尤其时选题和资料方面,给与了很多的帮助.再次我要感谢所有给与我帮助的同学和老师,谢谢他们给我的许许多多的帮助.

最后感谢学校和老师们大学四年对我的培养.感谢父母对我的养育之恩.