学 科 类:工科 学 号:5 学校代码:12795密 级:公开
2014届本科生毕业论文
超声波测距系统的设计
院 系:电子与信息学院 专 业:通 信 工程 姓 名:军 指导教师: 建平 答辩日期: 二〇一四年五月
. . . .
毕业论文诚信声明
本人重声明:
所呈交的毕业论文《 超声波测距系统的设计》是本人在指导老师的指导下,独立研究、写作的成果。论文中所引用是他人的无论以何种方式发布的文字、研究成果,均在论文中以明确方式标明。
本声明的法律结果由本人独自承担。
作 者 签 名: 指导教师签名:
年 月 日
. . . .
摘 要
超声波是指频率在20kHz以上的声波,它属于机械波。超声波也遵循一般机械波在弹性介质中的传播规律,如在介质的分界面处发生反射和折射现象,在进入介质后被介质吸收而发生衰减等。正是因为具有这些性质,使得超声波可以用于距离的测量中。随着科技水平的不断提高,超声波测距技术被广泛应用于人们日常工作和生活之中。
系统的设计主要包括两部分,即硬件电路和软件程序。硬件电路主要包括发射电路、接收电路、单片机电路、电源电路和显示电路,另外还有LCD控制电路和复位电路等。我采用以AT89S51单片机为核心的低成本、高精度、微型化数字显示超声波测距仪的硬件电路。整个电路采用模块化设计,由信号发射和接收、供电、温度测量、显示等模块组成。发射探头的信号经放大和检波后发射出去,单片机的计时器开始计时,超声波被发射后按原路返回,在经过放大带通滤波整形等环节,然后被单片机接收,计数器停止工作并得到时间。温度测量后送到单片机,通过程序对速度进行校正, 结合两者实现超声波测距的功能。软件程序由主程序、发射子程序、接收子程序、预置子程序、显示子程序等模块组成。它控制单片机进行数据发送与接收,在一定温度下对超声波速度的校正,还有实现数据正确显示在LCD上。另外程序控制单片机消除各探头对发射和接收超声波的影响。相关部分附有硬件电路图、程序流程图。
实际的环境对超声波有很大的影响,如外部电磁干扰电源干扰信道干扰等等,空气的温度对超声波的速度影响也很大。此外供电电源也会使测量差生很大的误差。在设计的过程中考虑了这些因素,并给出了一些解决方案。
[关键词]: AT89S51超声波测距
I / 34
. . . .
Abstract
Is the frequency at 20kHz ultrasonic sound waves above , it is a mechanical wave . Also follow the general mechanical ultrasonic wave propagation in elastic media , such as reflection and refraction at the interface media into the media after the decay occurs , such as dielectric absorption . It is because of these properties , so that ultrasound can be used to measure the distance .
With increasing levels of technology , ultrasonic ranging technology is widely used among people's daily work and life.Design of the system consists of two parts , namely hardware and software programs. The hardware circuit includes a transmitter circuit, a receiver circuit, the microcontroller circuit, a power supply circuit and a display circuit , in addition to the LCD control circuit and a reset circuit. I used to AT89S51 core, low-cost, high-precision, miniaturized ultrasonic rangefinder digital display hardware circuits. The entire circuit is modular in design , the signal transmission and reception , power , temperature measurement and display module. Signal amplification and detection probe launch after launch out MCU timer is started , the original way back after the ultrasound was launched , after amplification bandpass filtering plastic and other sectors, then the microcontroller receives the counter to stop working and get the time . After the temperature measurement to the microcontroller, the speed through the process of correcting a combination of both to achieve Ultrasonic Ranging function. Software program from the main program , launch subroutine receives subroutine , preset routines, subroutines and other display modules . It controls the microcontroller for data transmission and reception , at a certain temperature correction of ultrasonic velocity , as well as data on the LCD display correctly . Another procedure controls the microcontroller to eliminate the influence of the probe for transmitting and receiving ultrasonic waves . Accompanied by the relevant part of the hardware schematics, program flow .
The actual environment of great influence on the ultrasonic wave , such as
II / 34
. . . .
an external electromagnetic interference power interference channel interference , etc., the temperature of the air is also a great influence on the speed of the ultrasonic wave . Besides measuring the power supply also make great error of poor students . Redesign process to consider these factors , and gives some solutions.
[Key words]:AT89S51 Ultrasonic wave
Ranging
目 录
一、绪论1
1.1课题研究的背景与意义1 1.2超声检测在国发展综述1 1.3本文主要研究容2 二、超声波测距原理与方法3 2.1超声波简介3
2.1.1 超声波的三种形式3 2.1.2 超声波的物理性质3 2.1.3 超声波对声场产生的作用4 2.2超声波传感器介绍4
2.2.1 超声波的测距原理与结构5 2.2.2超声波传感器选择6 2.2.3超声波测距的原理7 2.2.4发射脉冲波形7 2.3本章小结8 三、系统硬件设计9 3.1 发射电路设计9
3.1.1发射电路设计方案10 3.1.2发射电路方案10
3.1.3 超声波发射器的注意事项11 3.2 接收电路设计11
III / 34
. . . .
3.3单片机显示电路设计13 3.3.1 LCD显示部分17 3.3.2报警部分18 3.4本章小结18
四、软件设计和测量结果分析19 4.1系统软件设计19 4.2外部中断子程序22 4.3定时器中断子程序24 4.4 实现重要功能的程序分析25 4.4.1 实现温度读取功能25 4.4.2 实现根据温度转化声速25 4.4.3 实现距离计算26 4.5本章小结26 五、结论26 致27 参考文献27
IV / 34
. . . .
一、绪论
1.1课题研究的背景与意义
近年来,随着电子测量技术的发展,运用超声波作出精确测量已成可能。随着经济发展,电子测量技术应用越来越广泛,而超声波测量精确高,成本低,性能稳定则备受青睐。超声波指的是20kHz以上的声波。超声波同样遵循一般机械波在介质中的传播规律,比如在介质的分界面处发生折射与反射现象,进入介质后而被介质吸收而发生衰减等。正是因为具有这些性质,使得超声波可以用于距离的测量中。随着科技水平的不断提高,超声波测距技术被广泛应用于人们日常工作和生活之中。一般的超声波测距仪可用于固定物位或液位的测量,适用于建筑物部、液位高度的测量等。
由于超声测距是一种非接触检测技术,不受光线、被测对象颜色等的影响,较其它仪器更卫生,更耐潮湿、粉尘、高温、腐蚀气体等恶劣环境,具有少维护、不污染、高可靠、长寿命等特点。因此可广泛应用于纸业、矿业、电厂、化工业、水处理厂、污水处理厂、农业用水、环保检测、食品(酒业、饮料业、添加剂、食用油、奶制品)、防汛、水文、明渠、空间定位、公路限高等行业中。可在不同环境中进行距离准确度在线标定,可直接用于水、酒、糖、饮料等液位控制,可进行差值设定,直接显示各种液位罐的液位、料位高度。因此,超声在空气中测距在特殊环境下有较广泛的应用。利用超声波检测往往比较迅速、方便、计算简单、易于实现实时控制,并且在测量精度方面能达到工业实用的指标要求,因此为了使移动机器人能够自动躲避障碍物行走,就必须装备测距系统,以使其与时获取距障碍物的位置信息(距离和方向)。因此超声波测距在移动机器人的研究上得到了广泛的应用。同时由于超声波测距系统具有以上的这些优点,因此在汽车倒车雷达的研制方面也得到了广泛的应用。
国外超声波测距仪技术领先,产品齐全,性能比较稳定,市场需求量大,测量精度高,测量误差小。
[1]
1.2超声检测在国发展综述
在基于传统的测距存在不可克服的缺陷。例如,液面测量就是一种距离测量,一般的电极法是采用的差位分布电极,再通过电或脉冲来检测液面,但是电极长时间浸泡在水中或其他液体中,容易被腐蚀或者电解,从而失去灵敏性。超声波具有方向性好、强度大等特点,因此利用超声波测距技术在工业控制、机器人定位、勘探测量和安全防等领域得到了广泛的应用。
[2]
1 / 34
. . . .
超声波测距电路可以由传统的模拟或者数字电路构建,但是基于这些传统电路构建的系统往往可靠性差,调试困难,可扩展性差,所以基于单片机的超声波测距系统被广泛的应用。通过简单的外围电路发和接收超声波,单片机通过采样获取到超声波的传播时间,用软件来计算出距离,并且可以采集环境温度进行测距补偿,其测量电路小巧,精度高,反映速度快,可靠性好。
[3]
1.3本文主要研究容
本系统硬件部分由AT89C51控制器、超声波发射电路与接收电路、温度测量电路DS18B2、声音报警电路和LCD显示电路组成。汽车行进时LCD显示环境温度,当倒车时,发射和接收电路工作,经过AT89C51数据处理将距离也显示到LCD上,如果距离小于设定值时,报警电路会鸣叫,提醒司机注意车距。超声波测距器的系统框图如下图所示:
图1-1系统设计总框图
由单片机AT89C51编程产生10us以上的高电平,由指定引脚输出,就可以在指定接收口等待高电平输出。一旦有高电平输出,即在模块中经过放大电路,驱动超声波发射探头发射超声波。超声波经障碍物反射回来,超声波接收头接收此信号,然后通过接收电路的处理,指定接收口就变为低电平,读取单片机中定时器的值。
由图1-2时序图可以看出,超声波测距模块的发射端在T0时刻发射方波,同时启动定时器开始计时,当收到回波后,产生一负跳变到单片机中断口,单片机响应中断程序,定时器停止计数。计算时间差,即可得到超声波在媒介中传播的时间t,由此便可计算出距离。
接收电路 发射电路 AT89C51 0 报警电路 LCD DS18B22 / 34
. . . .
图1-2时序图
二、 超声波测距原理与方法
2.1超声波简介
超声波技术是一门以物理、电子、机械、以与材料科学为基础的、各行各业都可使用的通用技术之一。超声波技术是通过超声波的产生、传播以与接收的物理过程完成的。该技术在国民经济中,对提高产品质量,保障生产安全和设备安全运作,降低生产成本,提高生产效率特别具有潜在能力。因此,我国对超声波的研究特别活跃。 2.1.1 超声波的三种形式
超声波在介质中可以产生三种形式的振荡波:横波,质点振动方向垂直于传播方向的波;纵波,质点振动方向、波的传播方向一致;表面波,质点振动介于纵波、横波之间。横波只能传播在固体里,纵波能在气体、液体和固体中传播,表面波随深度的增加而衰减更快。一般采用纵波形式的超声波来测量各种状态下的物理量。 2.1.2 超声波的物理性质
(1) 超声波的反射和折射
当超声波传播到两种特性阻抗不同介质的平面分界面上时,一部分超声波被反射;另一部分透射过界面,在相邻介质部继续传播。这样的两种情况称之为超声波的反射和折射。
(2)超声波的衰减
超声波在一种介质中传播,其声压和声强按指数函数规律衰减。 (3)超声波的干涉
如果在一种介质中传播几个声波,于是产生波的干涉现象。由于超声波的干涉,在辐射器的周围形成一个包括最大最小的扬声场。
3 / 34
. . . .
2.1.3 超声波对声场产生的作用
(1) 机械作用
超声波传播过程中,一般会引起介质质点交替的伸与压缩,造成了压力的变化,引起机械效应。超声波引起质点的运动,尽管位移和速度不大,但是与超声波振动的频率的平方成正比的质点的加速度却很大,有时足以破坏介质。
(2) 空化作用
流体动力学指出,在声场作用下振动的液体中的微气泡在达到一定声压值的时候,气泡会迅速膨胀,之后就突然闭合,而在气泡闭合时产生冲击波,这种膨胀、闭合、振动等一系列动力学过程就叫做为空化。
(3) 热学作用
如果超声波作用于介质时被介质所吸收,实际上也就是有能量吸收,同时,由于超声波的振动,使介质产生强烈的高频振荡介质相互摩擦产生热热量,这种能量使介质温度升高。
[4]
2.2超声波传感器介绍
总体上讲,超声波发生器可以分为两大类:一类是利用机械方式产生出超声波,一类是利用电气方式产生出超声波。机械方式有液哨、气流旋笛和加尔统笛等;电气方式则包括电动型、磁致伸缩型和压电型等。他们产生出的超声波频率、功率和声波特性都各自不一样,因此用途也不尽一样,压电式超声波发生器是目前比较常用的发生器。
实际上是利用压电晶体的谐振来工作的。它有两个压电晶片、一个共振板。当压电式超声波发生器的两极外加脉冲信号,频率等于压电晶片的固有振荡频率的时候,压电晶片将会发生共振,并带动共振板振动产生超声波。相反,未在两极间加电压时,当共振板接收到超声波时,将压迫压电晶片作振动来转换为电信号,这时它就成为超声波接收器了。超声波传感器结构如下图所示:
4 / 34
. . . .
图 2-1传感器的外部结构 图 2-2传感器的部结构
2.2.1 超声波的测距原理与结构
通过超声波发射装置发出超声波,根据接收器接到超声波时的时间差就可以知道距离了,这与雷达测距原理相似。 比如超声波发射器朝一方向发射出了超声波,同时在发射时刻的计时,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。(超声波在常温下的空气中的传播速度为340m/s,然后根据计时器记录的时间t,就能计算出发射点和障碍物的距离(s),即:s=340t/2)
在精度要求较高的情况下,需要考虑温度对超声波传播速度的影响,按式(2-1)对超声波传播速度加以修正,以减小误差。
V=331.4+0.607T (2-1)
式中,V为超声波在介质中的传播速度单位为m/s, T为实际温度单位为℃。 超声波指向性强,在介质中传播的距离较远,为直线传播方式,频率越高,绕射能力越弱,但反射能力越强,因此,利用超声波的这种性质就可制成超声波传感器。目前常用的超声传感器有两大类,即流体动力型与电声型。流体动力型中包括有气体、液体两种类型的哨笛。电声型主要有压电传感器、静电传感器和磁致伸缩传感器。
压电传感器的探头由楔块、压电晶片和接头等组成。压电材料可分为压电瓷和晶体两类。属于压电瓷的有锆钛酸铅,钦酸钡等,属于晶体的如石英,铌酸锂等,其具有下列的特性:把这种材料置于电场之中,它就产生一定的变化;相反,如果对它施以外力,由于产生了应变就会在其部产生一定方向的电场。
超声波传感器通常由双压电瓷片制成的。这种超声波传感器需要较少的压电材料,价格低廉,非常适合于气体和液体介质。当压电瓷改变交流电压的大小和方向,根据压电效应,压电瓷片将产生机械变形,机械变形是与在一定围所施加的电压大小和方向成比例的。即在压电瓷晶片上加有频率为交流电压,它就会产生一样频率的机械振动,以
5 / 34
. . . .
促进这种介质,例如空气,可发射超声波。如果在压电瓷片上,这将使得机械变形时,压电瓷片的机械变形,产生与机械超声波一样频率的电信号。
A
B
图2-3双压电晶片示意图
图2-4双压电晶片的等效电路图
双压电晶片的等效电路如图2-4所示, R是电损耗,C0为静电电容,R是损耗串联电阻,联电阻Cm、Lm是机械共振回路的电容和电感。压电瓷晶片有一个固定的谐振频率ƒ0,发射超声波时,加在它两端的交变电压的频率必须和它的固有谐振频率保持一致。在这种情况下,超声波传感器具有很高的灵敏度。当改变压电材料常数和改变压电瓷片,由超声波换能器的频率特性很容易改变使用的固有谐振频率的几何形状2.2.2超声波传感器选择
在超声波测量系统中,频率取得太高,在传播的过程中衰减较大,检测距离越短,分辨力也变高;频率取得太低,外界的杂音干扰会相应的变多。文中所采用的探头是40KHz的收发分体式超声传感器,由发射传感器UCM-T40KI和接收传感器UCM-R4OKI组成,其特性参数如表2-1所示。
表2-1传感器特性参数表
型号 结构 使用方式 中心频率 频带宽 灵敏度 UCM-T40K1 开放式 发射 401KHZ 20.5KHZ [5]
。
UCM-R40KQ 开放式 接收 381KHZ 20.5KHZ 110dBVubar 65dBVubar 6 / 34
. . . .
声压 指向角 容量 115dBmin(0dB0.02mPa) 70dBmin(0dB1Vubar) 75o 250025%pF 80o 250025%pF 2.2.3超声波测距的原理 超声波测距方法主要有三种:1)相位检测法:精度高,但检测围有限;2)声波幅值检测法:易受反射波的影响;3)渡越时间法:工作方式简单,直观,在硬件控制和软件设计上都容易实现,其原理为:检测从发射传感器发射的超声波经气体介质传播到接收传感器的时间t,这个时间就是渡越时间,然后求出距离l。设l为测量距离,t为往返时间差,超声波的传播速度为c,则有l=ct/2。综合以上分析,本设计将采用渡越时间法[6]。
图 2-6 测距原理
由于超声波也是一种声波,其声速c与空气温度有关,一般来说,温度每升高1摄氏度,声速就增加0.6米/秒。表2-2列出了几种温度下的声速:
表2-2 声速与温度的关系表
温度(摄氏度) -30 -20 -10 0 10 20 30 100 声速(米/秒) 313 319 325 331 337 343 349 389
在使用时,假设温度变化不是大的话,则可以当做声速c不变,计算的时候取c的大小为340m/s。只是测距精度要求很高的时候,就可以在硬件电路基本上保持不变的情况下通过软件来加以校正以与改变硬件电路增加温度补偿电路的方法。
在本系统中利用AT89S52中的定时器测量超声波传播时间,利用DS18B20测量环境温度,从而提高测距精度。空气中声速与温度的关系可表示为:
C331.45T273.16273.16331.40.6T(m/s)(2-3) 声速确定后,只要测得超声波往返的时间,即可求得距离:L=1/2(331.4+0.6T)t。 (系统中应用该式进行温度补偿) 2.2.4发射脉冲波形
超声测距常用的发射脉冲波形如图2.7所示有衰减振荡脉冲、单个尖脉冲、宽等幅
7 / 34
. . . .
波列脉冲和窄等幅波列脉冲。
单个尖脉冲 衰减振荡脉冲
窄等幅波脉冲
图2.7超声波测距常用发射脉冲波形
宽等幅波脉冲
2.3本章小结
本章介绍了超声波的形成、超声波在传播过程中的反射折射规律以与如何衰减;通过详细分析超声传感器的部结构以与影响超声传感器的几个重要参数给出本系统设计中所用超声传感器的特性参数;析了超声波测距的基本原理,并在此基础上给出了测距的几种常用方法以与传感器指向角、环境温度、工作频率、发射脉冲波形。
8 / 34
. . . .
三、 系统硬件设计
系统硬件主要由单片机系统与显示电路、超声波发射电路、超声波检测接收电路和温度补偿电路四部分组成。随着超声波测量技术的不断提高,用超声波测量任何目标物体,都存在着超声波的发射和接收问题。不论超声波传感器的大小、形状、灵敏度有何不同,其工作原理都是一样的(都是利用压电晶体将电能转换为机械振动弹性能,即在媒质中产生超声波),要提高超声测量的精度或分辨力,必须从超声波的发射和接收两方面入手,这也是设计超声测量仪器的关键和难点所在。
发射电路采用单片机P1.0端口编程输出大概40KHz的方波脉冲信号,同时开启部计数器T0单片机端口输出功率比较弱,所以加大加功率放大电路使测量距离能够满足要求,驱动超声传感器UCM-40T发射超声波距离足够远。
由于从接收传感器探头UCM40T传来的超声波回波很微弱,只有几十个mV级,同时又有着较强的噪声,所以必须考虑放大信号和抑制噪声。这里使用CX 20106A集成电路对接收探头接收滤波,信号经过P2.7端口送入单片机中进行处理。为节省硬件考虑,显示电路采用动态扫描显示。通过单片机编程将部计数得到的时间数据,转换为距离信息,通过三位LED数码管显示。
3.1 发射电路设计
40 kHz左右的方波脉冲信号的产生通常有两种方法:使用软件如单片机软件编程输出或采用硬件如由555振荡产生,本系统采用前者。编程由单片机P1.0端口输出40 kHz左右的方波脉冲信号,由于单片机端口输出功率不够,40 kHz方波脉冲信号分成两路,送给一个由74HC04组成的推挽式电路进行功率放大以便使发射距离足够远,满足测量距离要求,最后送给超声波发射换能器TCT40-16T以声波形式发射到空气中。发射部分的电路,如图3-1所示。图中输出端上拉电阻R31,一方面可以增加超声换能器的阻尼效果,缩短其自由振荡的时间,另一方面可以提高反向器74HC04输出高电平的驱动能力。
9 / 34
. . . .
图3-1 超声波发射电路
3.1.1发射电路设计方案
一、发射电路输出波形分析 1.发射波形电压与功率
传感器的发射电压大小一般是由发射信号损失与接收机的灵敏度决定;考虑实际发射传感器最大输入电压为20V,而单片机输出的最大正常工作电压为5V,功率传感器传输的信号直接决定超声波距离传感器信号的发射,所以在一样的时间电压应考虑如何增加他们的功率,以使发射电路是比较合理的。
2.发射波形的重复性
各个振动的发射波应是以大致一样的频率,这样,接收的带通滤波器可用于消除干扰和接收一样的振动波峰,以避免由于反射面和干涉障碍物造成的各种损失。为了获得高的分辨率,超声发射器的电路设计应确保良好的发射波形的重复性。
为了保证发射波功率和波形的重复性,发射电路的设计必须合理。一般发射电路通常按发射方式分为: 单脉冲发射、多脉冲发射和连续发射。测距所用超声波一般都是间断单脉冲发射,每测距一次,发送、接收一次。间断地激发换能器晶片振动[7]。 3.1.2发射电路方案
从上面的分析可以知道,发射电路设计的主要目的是提供输入到发射探头电压和功率。本系统单片机的P1.0发出了一组方波脉冲信号,输出波形稳定可靠,但由于输出电流和输出功率非常低,所以还不足以推动发射传感器发射足够的超声波信号,所以在这里加入了一个单电源乙类互补对称功率放大电路,如图3-2所示。
图3-2 超声波发射电路
10 / 34
. . . .
3.1.3 超声波发射器的注意事项
超声波发射器向某一方向发射超声波,在发射超声波的同时开始计时,超声波在空气中传播,途中碰到障碍物反射后立即返回来,超声波接收器收到反射波后就会立即停止计时。超声波在空气中的传播速度约为340m/s,根据计时器记录的时间t,就可以计算出超声波发射点距障碍物的距离(s),即为:s=340t/2,这就是所谓的时间差测距法。
存在4个因素限制了该系统的最大可测距离:超声波的幅度、反射的质地、反射回波和入射声波之间的夹角以与接收换能器的灵敏度。
误差一般由以下几个方面引起的:
(1)探测目标的入射角会受超声波波束影响;
(2)待测距离的远近关系着超声波回波声强,就会导致实际测量时不一定是第一个回波的过零点触发;
(3)传播速度的影响。超声波传播速度的稳定与准确度是保证测量精度的必要条件,而超声波的传播速度又受传播媒质特性的影响。传播媒质的压力、温度、密度都将对声速产生直接的影响,因此需对声速加以修正。
(4)由于超声波利用接收发射波来进行距离的计算,因而不可避免地存在发射和反射之间的夹角,其大小为2,当很小的时候,可直接按式SCt2进行距离的计算;当夹角很大的时候,必须进行距离的修正,修正的公式为:
Scosct(3-1) 2 实际的调试过程中,要十分注意发射和接收探头在电路板上的安装位置,这是因为每一种超声波发射、接收头都有一个有效测量夹角,这里用到的发射、接收头有效测量夹角为45°。
接收换能器对超声波脉冲的直接接收能力将决定该系统最小的可测距离。为了增加所测量的覆盖围、减小测量误差,可采用多个超声波换能器分别作为多路超声波发射接收的设计方法[8]。
3.2 接收电路设计
接收部分主要由接收换能器和放大电路组成。里面的放大电路是一个三级运算放大器A1,功能是将从目标处反射回来的微弱信号进行放大整形后送入计数控制电路部分。由于在距离较远的情况下,回波信号很小,转换为电信号的幅度也较小,此要求将信号放大60万倍左右。采用三级放大:前两级放大100倍,用高精密放大器LM318,带宽为
11 / 34
. . . .
15MHz,充分满足要求;第三级采用LF353运算放大器,宽为4MHz。放大后的交流信号经光电隔离送入比较器,比较器的作用是将交流信号整形为一个方波信号,输出信号送入555单稳态触发器。
前置放大电路单元的作用是对有用的信号进行放大,并抑制其它的噪声和干扰,从而达到最大信噪比,以利于后续电路的设计。
图3-3前置放大电路图
电路如图3-3所示,超声换能器的输出电阻比较大,因此前置放大器必须有足够大的输入阻抗(Input Impedance);换能器的输出电压很大前置放大电路是由一个高精度、高输入阻抗放大器TL082与电阻R2、R3和Rp构成,组成反向比例放大电路,这样可以减小地线噪声的影响。
由电路可列出:
IfIi把放大器理想化后:
1.集成运放两个输入端之间的净输入电压U通常接近于零,即U=U-UO,若把它理想化,则有U=0,但不是短路,故常称为虚短。
2.集成运放两输入端几乎不取用电流,即净输入电流I0,如把它理想化,则有
UUR3 (3-2) UiU (3-3) R2I0,但不是断开,故常称为虚断。
故可知本电路中:U+=0,U-=U+=0所以有
UR3Ui (3-4) R2上式表明,输出电压与输入电压成比例运算关系,式中的负号表示U与Ui反相。电路的电压放大倍数为:
AufUR3 (3-5) UiR2根据本设计需要,接收传感器输出电压很小(数十毫伏),故分别取R2=1KΩ;R3=200KΩ;RP=1KΩ,即放大电路将输入信号放大200倍。
12 / 34
. . . .
3.3单片机显示电路设计
显示器是一个其应用是极为广泛的设备,基本上所有的电子产品都要使用显示器,而其差别仅在于显示器的结构类型不同而己。最简单的显示器可以使LED发光二极管,给出一个简单的开关量信息,而复杂的较完整的显示器应该是CRT监视器或者屏幕较大的LCD于显示的距离围在4米之,选用3位LED示,表示距离的XXXcm数值。液晶屏。综合课题的实际要求由数码管通过单片机编程实现显示,表示距离的XXXcm数值。
LED数码管显示与单片机接口通常涉与以下几个问题: 1.由数码转换为笔划信息借软件译码还是硬件译码 2.LED数码管显示用共阴极管还是共阳极管 3.显示扫描采用动态扫描还是静态扫描
问题1软件译码是将各数码的笔划信息构成一个表格预储于存,以后根据要显示的每一数码执行一段查表程序,查得相应笔划信息再送数码管显示;硬件译码则采用CD4511、74LS46、74LS47、74LS48、74LS49等BCD码七段锁存、译码、驱动芯片直接译出笔划信息。
问题2采用共阴极数码管还是共阳极数码管没有太明显的优缺点。如图3-4(a)所示数码管,每个数码管部,由8个发光二极管组成,其中七个组成8字形的七段笔划,分别编号为a、b、c、d、e、f、g,还有一个为小数点,标为DP。当发光二极管导通时,相应的一段笔划或点就发亮,控制不同二极管导通就能显示出不同符号。发光二极管的阴极连在一起的称为共阴极数码管,如图3-4(b)所示;发光二极管的阳极连在一起的称为共阳,如图3-4(c)所示。两种数码管仅在单片机编程时数码对应的笔划信息码不同。
13 / 34
. . . .
图3-4 数码管结构图
问题3动态扫描其实指的是我们采用分时的方法,轮流控制各个显示器的COM端,这样各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象与发光二极管的余辉效应给人的印象就是一组稳
14 / 34
. . . .
VCC910111213141516Res Pack487654321X1X2X3X4X5X6X7X8abcdefgDPDpy Red-CCKKX1X2X3X4X5X6X7X8abcdefgDPDpy Red-CCKKX1X2X3X4X5X6X7X8abcdefgDPDpy Red-CCKKY1Y2Y3VCCC32VCC1918XTALP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P1.0/T2P1.1/T2EXP1.2/ECIP1.3/CEX0P1.4/CEX1P1.5/CEX2P1.6/CEX3P1.7/CEX4P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A1540393837363534333212345678X1X2X3X4X5X6X7X81C2XTAL1XTAL2Y1Y2Y312345678IN1IN2IN3IN4IN5IN6IN7GNDULN2003AOUT1OUT2OUT3OUT4OUT5OUT6OUT7COM161514131211109VCCR11KVCC931C12930RSTEA/VPPPSENALE/PROG1011121314151617P3.0/RxDP3.1/TxDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD1112345678910OEVCCCLKD0D1D2D3D4D5D6D7GND74ACQ574PCO0O1O2O3O4O5O6O7VCC2020VSSAT89S511918171615141312 图3-5 显示部分电路图
15 / 34
. . . .
定的显示数据,不会有闪烁感。采用静态扫描方式控制点亮LED数码管无位选信号,各数码管是同时点亮的。它的原理比较简单。静态扫描显示编程容易,显示比较清晰,亮度一般较高;但要求占用很多I/O接口线和增用不少硬件芯片,成本较高。所以,动态扫描用得更多点。
针对以上3个问题,实际考虑节约单片机的接口资源以与减少硬件芯片成本投入,本单元电路设计如图3-5所示,采用3位共阴极数码显示管,显示字符由单片机P2口送至锁存器74ACQ574锁存,再经显示驱动芯片ULN2O03驱动数码管显示,P0.1-P0.3分别控制每一位的动态显示。
74ACQ574为三态输出D型上升沿触发器,图3-6为其引脚图,在输入使能端OE有效时,当时钟脉冲CLK有上升沿跳变,触发器发生翻转,将锁存的8路输入数据(即单片机P2口送出的字符数据)送出显示。其功能表,如表3-1所示。
图3-6 74HC574引脚图 图3-7 ULN2003引脚图
表3-1 74ACQ574功能表
INPUTS OUTPUT OE CLK D L ↑ H L ↑ L L H or L X H X X
16 / 34
H L Q0 Z . . . .
ULN2003为显示驱动芯片,抬升单片机的输出电流,提高负载驱动能力。它引脚如图3-7所示,其部含七对达林顿放大管,其主要功能是输入为低电平时,输出为高电平; 当输入为高电平时,输出为低电平。本课题让单片机P0.1-P0.3经此芯片提升驱动能力从而控制数码管的位选,实现数据动态扫描输出[9]。
但是声音的速度在不同的温度下可能会有所改变,所以采用了温度补偿功能了提高系统的精度。这里采用的主要元器件是Dallas半导体公司生产的单总线数字温度传感器DS18B20,其具有智能化、体积小、精度高、线路简单等特点。将DS18B20数据线与单片机的P1.1口相连,就可以实现温度测量,如图3-8所示。
图3-8 DS18B20 温度测量电路
3.3.1 LCD显示部分
本设计中显示部分采用字符型TC1602液晶来显示我们所测距离值。TC1602显示的容量为2行16个字。液晶显示屏有体积小、显示容丰富、超薄轻巧、微功耗、使用方便等诸多优点。使用时,可将P0与LCD的数据线相连,P2口与LED的控制线相连,如图3-9所示。
其中,TC1602第4脚RS为寄存器选择,第5脚RW为读写信号线,第6脚E为使能端。第7~14脚:D0~D7为8位双向数据线。这里要注意的是,为了布线方便,单片机端的D0~D7是接到LCD/602的D7~D0,正好相反, 因此在编写软件时需要做处理,使读取正确[10]。
17 / 34
. . . .
图 3-9 TC1602液晶显示电路
3.3.2报警部分
采用一个蜂鸣器,由P1.2输出一定频率的信号,在连接到蜂鸣器之前,经过一个三极管9012的放大。报警部分的连线,如图3-10所示。[11]
图3-10报警电路
3.4本章小结
本章主要介绍了基于单片机的超声测距系统的硬件设计电路。对其中主要硬件单元:发射电路、接收电路、检测电路以与显示电路的设计给出原理图并进行了分析计算。
18 / 34
. . . .
四、 软件设计和测量结果分析
4.1系统软件设计
系统程序结构:
(1)DS18B20温度传感器接口模块,分为初始化程序、写入命令以与读取子程序等部分;
(2)基于YB1602的显示模块,分为初始化子程序、写入子程序以与显示子程序; (3)温度补偿与距离计算模块、分为超声波发送控制程序、接收处理程序、温度补偿子程序等;
(4)本次设计使用C语言编写程序,C语言相比汇编有许多的优势;编译器使用Keil
Version2进行程序编译,Keil功能强大使用方便[12]。
主程序,分为系统初始化、按键处理以与各个子程序的调度管理等部分。 如图4-1所示描述了各个模块的关系:
图 4-1系统软件方框图
系统主程序:
本设计主程序的思想如下:
19 / 34
. . . .
(1)温度为两位显示,距离为四位显示单位为mm;
(2)温度每隔900ms采样一次,DS18B20在12位精度下转换周期为750ms ,故900ms满足该速度要求;超声波每隔60ms发送一次。
(3)按键S为测量启动键;
(4)系统采用AT89S51的时钟:12MHz; (5)没有使用看门狗功能;
(6)超声波发送一定时间后才开始启动检测,避免直达信号造成误判。所以系统最小测量约为112mm;如图4-2所示:
图 4-2主程序流程图
系统主程序如下: void main(void) {
uchar i,j;
for(i=0;i<255;i++)
for(j=0;j<255;j++); //延时,等待系统外围复位完成
20 / 34
. . . .
sys_init(); //初始化 display(); //显示 sta_flag=0; //标准复位 waitforstarting: //检测按键 while(START); for(i=0;i<20;i++) delay1ms(); if(START)
goto waitforstarting;
BUZZER=0; //蜂鸣器鸣音一次提示按键按下 i=100000; while(i--); BUZZER=1; i=100000; while(i--);
TR0=1; //启动定时器0 ET0=1;
testtemp(); //启动温度转换 while(1) {
if(sta_flag) //60MS到了,超声波已经发送 {
while(0==CSBIN); //等待超声波返回 TR1=0;
jsh=TH1; //停止计数 jsl=TL1;
if(15==count) //1S到,检测温度 {
temp=wd(); count=0;
21 / 34
. . . .
testtemp(); //重新启动转换 display(); //刷新显示 }
computer(); //计算距离 hextobcd(); //转化成BCD码 sta_flag=0; //标志清零 } } }
void sys_init(void) { uchar i;
for(i=0;i<29;i++) //显示清零 { num[i]=0;} TMOD=0x11; TH0=0x15; TL0=0xA0; P0=0;
CNT=0; //超声波发送关闭 CSBIN=1;
EA=1; //开放总中断 Init_LCD(); }
4.2外部中断子程序
对某个中央处理机而言,它的外部非通道式装置所引起的中断称为外部中断。例如,时钟中断、操作员。单片机的外部中断的响应是服务程序。在主程序中,发射的40KHz脉冲信号遇到障碍物反射后,经接收检测电路产生外中断信号至单片机。在中断服务程序中,首先要对现场进行保护,然后把进入中断服务程序处的计数值读出并对该数据进行处理,计算得到相应的距离值,同时转换为十进制,最后送到P2口显示输出。
子程序流程图如图4-3所示:
22 / 34
. . . .
图 4-3外部中断子程序
RECEIVE: PUSH PSW ;中断现场保护 PUSHA
CLR EXO ;关闭外部中断INTO MOV R0,TL0 ;读取时间 MOV R1,TH0
LCALL MULD ;调用乘法子程序计算机距离 LCALLADJ ;调用十进制调整子程序 LCALLDISP
SETBEX0 ;打开外部中断INT0 POPA POPPSW
23 / 34
. . . .
RETI
4.3定时器中断子程序
因为51单片机是16位定时器,最大的计时时间为65536us,所以当测量的距离很远的时候,定时器必然会发生溢出;我们必须对溢出中断进行相应的设置才能使得单片机正常工作。同时由于电路的测量距离有限最远为5米,当测量距离超出5米时,接收探头就不能检测回波,那就不能产出外部中断更不可能关闭定时器。流程图如图4-4所示:
程序如下:
TIME0: PUSH PSW PUSHA CLR EX0 CLR TR0 MOV TL0,#00H MOV TH0,#00H SETB TR0 SETB EX0
LCALLPULSE POP A POPPSW
图 4-4定时器中断子程序
;中断现场保护 ;调用发射脉冲子程序 24 / 34
. . . .
RETI
4.4 实现重要功能的程序分析
4.4.1 实现温度读取功能
uint Read_Temperature(void) //读取温度,返回整数值 { uint c; reset(); // tu=0;
//if(r) {
write(0xCC); // write(0xBE); // c=read(); // reset();
// write(0xCC);
write(0x44);
if(c>0x1000){c=c+1;tu=1;} // c>>=4;
*0.0625
return c; }
else{return r; } //}
4.4.2 实现根据温度转化声速
int C_speed(void) //{ uchar y;
y=Read_Temperature(); if(r){
{
复位18b20芯片
先置位温度正负标示为正
跳过多传感器识别skio rom 发读部9字节容指令 读两个字
读完两个字节后复位 跳过多传感器识别skio rom 发启动温度变换指令
若温度小于0,tu=1 去掉低四位即为整数温度值,无需
返回0XFF表示未检测到18B20芯片 根据温度查算声速值
//采温度
//若温度有变化则按温度值取声速
25 / 34
// //
//. . . .
T_C=y; //温度值=变化后的温度值
if(tu==0)speed=332+T_C*0.607; //温度为正则+声速
else speed=332-T_C*0.607; //温度为负则-声速 }
//若1820不存在即无法读取温度,声
}else speed=346.5;
速=346.5M/S(取25度) return speed; }
4.4.3 实现距离计算
float Dis_count() {
float cm; cm=TH1*256+TL1; cm-=7610; cm*=speed; cm/=20000; return cm; }
//减去限制10M的初值+可调误差值 //计算距离uS*34650m //转换为s 单程
//距离计算函数
4.5本章小结
本章主要结合超声测距系统的硬件设计方案,给出具体实现时单片机涉与到的软件结构与其相关编程。主要包括整个程序的算法思想,采用模块化设计,大量采用子程序设计的方法,大大缩短编程开发周期,方便程序阅读以与程序查错。程序采用先在计算机上进行软件仿真,后灌进单片机中和硬件结合调试。
五、 结论
本设计是以AT89C51为核心,借助于模数电技术和单片机技术的结合,解决了超声波测距的一些难题。灵活的运用超声波换能集成电路作为超声波的接收电路,在讨论了超声波测距原理、硬件电路实现和软件设计方法基础上,完成了超声波测距的设计要求。利用单片机的运算和控制功能,利用超声波的特性设计出的一种简单的测距系统。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面
26 / 34
. . . .
能达到工业实用的要求,随着科学技术的快速发展,超声波的应用将越来越广。但就目前技术水平来说,人们可以具体利用的超声波技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术与产业领域。
致
本文研究工作是在我的导师建平老师的精心指导和悉心关怀下完成的,从开题伊始到论文结束,我所取得的每一个进步、编写的每一段程序都无不倾注着导师辛勤的汗水和心血。导师严谨的治学态度、渊博的各科知识、无私的奉献精神使我深受启迪,从尊敬的导师身上,我不仅学到了扎实、宽广的专业知识,也学到了做人的道理。在今后的学习工作中,我将铭记恩师对我的教诲和鼓励,尽自己最大的努力取得更好的成绩。
在此我要向我的导师建平老师致以最衷心的感!
在四年的大学学习期间,各位老师给予了我的学习、生活很热情的关心和帮助,使我的水平得到了很大的提高,取得了长足的进步。
在此,由衷地感那些关心和帮助我的老师、同学和朋友们!衷心感在百忙之中评阅论文和参加答辩的各位专家、教授!
参考文献
[1] 维成,加国.单片机原理与应用与C51程序设计 [M].:清华大学,2006 [2] 蔡菲娜.单片微型计算机原理和应用 [M]. 大学,1995 [3] 建忠.单片机原理与应用 [M]. 电子科技大学,2002
[4] 齐等.单片机应用系统设计技术----基于C语言编程 [M].电子工业,2004 [5] 吴延海.微型计算机接口技术[M].大学,1997: 15~16
[6] 丽霞.单片机在超声波测距中的应用[J].电子技术,2002: 22~23
[7] 道连,宁延一,袁世良.用AT89C2051设计超声波测距仪[J].国外电子元器件,2000: 11~12
[8] 鹏,有志.一种新型超生测距系统[J].:大学学报,2003,33(1)
[9] 学海.PIC单片机实用教程-基础篇(第1版)[M].航天航空大学,2002(2): 34~36
[10] 贾伯年. 传感器技术[M].东南大学,2000
[11] 大新,胡学同,周杏鹏.利用FPGA改进超声波测距模块设计[J].传感器技
27 / 34
. . . .
术,2005,24(2): 57~59
[12] 谭浩强.C程序设计(第三版).: 清华大学, 2005 附录1 系统原理图
系统PCB板图
28 / 34
因篇幅问题不能全部显示,请点此查看更多更全内容