1、基于51单片机的超声波测距仪的设计摘要 由于本课程是开放性的课程,很多东西靠我们自己去查资料进行了解,在实验的过程中我们遇到过很多的问题,实验经过多次繁琐的调试,才能达到预期的效果。同时我们也是在解决问题的过程中学到了许多平常接触不到的知识,了解和掌握了很多的调试方法和技巧。通过本次实验,初步认识了超声波将在测距仪中的应用越来越广。但就目前技术水平来说,人们可以具体利用的测距技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域,超声波测距仪作为一种新型的非常重要有用的工具在各方面都将有很大的发展空间,它将朝着更加高定位高精度的方向发展,以满足日益发展的社会需求,无庸置疑,未
2、来的超声波测距仪将与自动化智能化接轨,与其他的测距仪集成和融合,形成多测距仪。在具体的制作过程中我们发现现在书本上的知识与实际的应用存在着的差距,书本上的知识很多都是理想化后的结论,忽略了很多实际的因素,或者涉及的不全面,可在实际的应用时这些是不能被忽略的,我们不得不考虑这方的问题。同时我们在老师的引导下加深了对专业知识的认识与应用,了解如何对成果的分析与总结,出现的问题该从什么地方入手,如何检查,如何解决。培养了我们要勇于思考,善于思考的能力。而分组进行团队实验,既利于激发同学们的参与热情,也有利于促进学员间相互了解、认识,为培养团队协作能力的建立打下基础;为今后同学们进行的工作做好一定的基
3、础。目 录引言1 1. 超声波测距仪的设计思路2 1.1 超声波测距原理2 1.2 超声波测距仪原理框图22. 系统的方案设计与论证3 2.1 总体设计方案3 2.2 系统整体方案的论证3 2.2.1 基于单片机的超声波测距系统3 2.2.2 基于 CPLD 的超声波测距系统33 系统的硬件结构设计4 3.1 发射电路的设计4 3.2 接收电路的设计5 3.3 显示模块的设计64 系统软件的设计84.1软件的设计的方案84.2软件的设计流程图85 系统硬件的调试96 总结117 参考文献13附 录 一 超声波测距程序清单14附 录 二 实物图与原理图对照21引言由于超声波指向性强,能量消耗缓慢
4、,在介质中传播的距离较远,因而超声波经常用于距离的测量,如测距仪和物位测量仪等都可以通过超声波来实现。超声波简单的说就是音频超过了人类耳朵所能够听到的范围。一般而言是指声音超过了20KHz时称之为超声波。与光波不同,超声波是一种弹性机械波,它可以在气体、液体和固体中传播。因为电磁波的传播速度为m/ s,而超声波在空气中的传播速度为340m / s,其速度相对电磁波是非常慢的。利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制,并且在测量精度方面能达到工业实用的要求。超声波测距在某些场合有着显著的优点,因为这种方法是利用计算超声波在被测物体和超声波探头之间的传输来测量距离的,因此它是一
5、种非接触式的测量所以它就能够在某些特定场合或环境比较恶劣的环境下使用。目前基于超声波精确测距的需求也越来越大,如油库和水箱液面的精确测量,物体内气孔大小的检测和机械内部损伤的检测等。本项目结合超声波精确测距的需要,分析了影响超声波测距精确的多种因素,进行了系统的硬件设计和软件设计,来有效提高超声波测距系统的精度。经实验证明,这套系统软硬件设计合理、抗干扰能力强、实时性良好。关键词:AT89c51; 超声波;测距1. 超声波测距仪的设计思路1.1超声波测距原理超声波测距是通过不断检测超声波发射后遇到障碍物所反射的回波, 从而测出发射和接收回波的时间差 t,然后求出距离。表1-1为超声波在空气中传
6、播的速度. 限制该系统的最大可测距离存在四个因素:超声波的幅度,反射物的质地, 反射和入射声波之间的夹角以及接收换能器的灵敏度. 接收换能器对声波脉冲的 直接接收能力将决定最小可测距离. 为了增加所测量的覆盖范围, 减少测量误差, 可采用多个超声波换能器分别作为多路超声波发射/接收的设计方法.由于超声 波发球声波范围,其波速 c 与温度有关,表 1-1 列出了几种不同温度下的波速.表1-1 超声波波速与温度的关系表温度()-30-20-100102030100声速(ms)3133193253233383443493861.2 超声波测距仪原理框图如下用555记时IC作为频率发生器发出40kHZ
7、的信号,经放大后通过超声波发射器输出;超声波接收器将接收到的超声波信号经放大器放大,进行检波处理后,启动单片机中断程序,测得时间为t,再由软件进行判别、计算,得出距离数并送LED显示。图 超声波测距仪原理框图2. 课程的方案设计与论证2.1 总体设计方案用555记时IC作为频率发生器发出40kHZ的信号的方波,再经过放大电路,驱动超声波发射探头发射超声波。发射出去的超声波经障碍物反射回来后,由超声波接收头接收到信号,通过接收电路的检波放大、整形及一系列处理,送至单片机。单片机利用声波的传播速度和发射脉冲到接收反射脉冲的时间间隔计算出障碍物的距离,并由单片机控制显示出来。2.2系统整体方案的论证
8、(两种常用的超声波测距方案的比较)2.2.1 基于单片机的超声波测距系统基于单片机的超声波测距系统,是利用频率为 40kHz的方波,经过发射驱动电路放大,使超声波传感器发射端震荡,发射超声波.超声波经反射物反射回来后,由传感器接收端接收,再经接收电路放大,整形, 单片机响应,读取时间差,计算距离,结果输出给 LED 显示。 利用单片机准确计时,测距精度高,而且单片机控制方便,计算简单. 许多超声波测距系统都采用这种设计方法.2.2.2 基于 CPLD 的超声波测距系统 这种测距系统采用 CPLD(Complex Programmable Logic Device)器件,运用VHDL(Very
9、High Speed Integrated Circuit Hardware Description Language) 编写程序,使用 MAX+plusII 软件进行软硬件设计的仿真和调试,最终实现测距 功能. 利用 CPLD 器件控制超声波的发射,并对超声波发射至接收的往返时间进行计数,将计算结果在 LED 上显示出来.配合使用 MAX+plusII 开发软件, 可集设计输入, 设计处理, 设计校验和器件编程于一体, 集成度高, 开发周期短. 本系统采用先进的CPLD 器件,性能高,成本高 集成度高,开发难度大。(不建议采用)3. 系统的硬件结构设计3.1 发射电路的设计用由555记时IC
10、作为频率发生器发出40kHZ 的方波需要进行放大, 才能驱动超声波传感器发射超声波,发射驱动电路其实就是一个信号放大电路,本课题所选用的是 4069 集成芯片。下图为发射电路图.4069内部集成了六个反向器,同时具有放大的功能 . 3.2 接收电路的设计 超声波接收头接收到超声波后,转换为电信号,此时的信号比较弱,必需经过放大.本系统采用了 LF347 对接收到的信号进行放大, 接收放大电路如图示. 超声波探头接收到超声波后,通过声电转换,产生一正弦信号,其频率约为传感器的中心频率,即 40kHz.该信号通过高通滤波后经 LF347 放大,最后经二极管整形后输出到单片机中断口.LF347是一种
11、场效应管与双极性管兼容的单片四运放,具有高输入阻抗,高速的性能,具有内部失调电压调节,低失调电流、低谐波失真、低噪声等特点,可广泛应用于高速积分、快速D/A转换、采样/保持电路及一般放大电路中。LF347的供电电压一般为+12V,其差模电压增益为100dB,输入失调电压3mV,共模抑制比为100dB,输入电阻106M欧,转换速率13V/uS,单位增益带宽为4MHz。 LF347 管脚图 LF347应用电路 3.3 显示模块的设计74HC164是高速硅门 CMOS 器件,与低功耗肖特基型 TTL (LSTTL) 器件的引脚兼容。74HC164是8位边沿触发式移位寄存器,串行输入数据,然后并行输出
12、。数据通过两个输入端(DSA 或 DSB)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。时钟 (CP) 每次由低变高时,数据右移一位,输入到 Q0, Q0 是两个数据输入端(DSA 和 DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。 主复位 (MR) 输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的输出为低电平。 LED 数码管LED(Light-Emitting Diode,发光二极管)有共阴和共阳两种。 共阳数码管是指将所有发光二极管的阳极接到一起形成
13、公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。 LED 数码显示管结构 LED 管的显示可以分为静态和动态两种。静态显示:静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动
14、的优点是编程简单,显示亮度高,缺点是占用I/O端口多。动态显示数码管动态显示是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程
15、中,每位数码管的点亮时间为35ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。4. 系统软件的设计4.1软件的设计的方案超声波测距是通过不断检测超声波发射后遇到障碍物所反射的回波, 从而测出发射和接收回波的时间差 t,然后求出距离。超声波发生器T在某一时刻发出一个超声波信号,当这个超声波遇到被测物体后反射回来,就被超声波接收器R所接收到。这样只要计算出从发出超声波信号到接收到返回信号所用的时间,就可算出超声波发生器
16、与反射物体的距离。距离的计算公式为d=s/2=(ct)/2 。其中,d为被测物与测距仪的距离,s为声波的来回的路程,c为声速,t为声波来回所用的时间。在启动发射电路的同时启动单片机内部的定时器T1,利用定时器的计数功能记录超声波发射的时间和收到反射波的时间。当收到超声波反射波时,接收电路输出端产生一个负跳变,产生一个中断请求信号,单片机响应外部中断请求,执行外部中断服务子程序,读取时间差,计算距离。 4.2主程序流程图 5. 系统的硬件的调试超声波发射和接收采用型号为TCT40-16R/T超声波模块(直径16mm)标称频率为40kHz。为提高超声波发射的效率,用555记时IC作为频率发生器时使
17、的555的输出频率为40kHZ的信号方波为最佳。若能将超声波接收电路用金属壳屏蔽起来,则可提高抗干扰能力。超声波接收头接收到超声波后,转换为电信号,此时的信号比较弱,必需经过放大。根据测量范围要求不同,可适当调整本系统中采用的 LF347 对接收到的信号进行放大的大小。一般一级放大10倍,保证波形的完整性,二级放大可以放大10到100倍,以提高系统的灵敏度。综合上述的建议可以获得较好的接收灵敏度和抗干扰能力。应该要注意的事项:超声波模块标称频率为40kHz。本系统中对接收到的信号进行放大时曾采用LM324,由LM324的频率特性可知道,放大倍数最大为一级放大10倍,二级放大可以放大到10 倍。
18、这点对系统的灵敏度造成较大的影响,不建议采用。而LF347 对接收到的信号进行放大时,一般一级放大10倍,二级放大可以放大10到100倍,这点对提高系统的灵敏度起到了关键的作用。LM324的频率特性 74HC164是高速硅门 CMOS 器件,与低功耗肖特基型 TTL (LSTTL) 器件的引脚兼容。74HC164是8位边沿触发式移位寄存器,串行输入数据,然后并行输出。数据通过两个输入端(DSA 或 DSB)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。但当LED显示出现乱码或显示出错的时候,就需要检查
19、74HC164硬件电路是否在正常的工作。 在超声波接收的端口检测不到发射后回来的信号时,要检测的原件有555IC 和4069放大电路。555IC的检测可以在555的输出端用万用表测量是否有40KHZ的方波输出;而4069放大电路的检测,可以从4069的工作电压,是否工作在放大的状态,和是否有输出几方面来检测。电路制作完成并调试好后,便可将程序编译好下载到单片机试运行。根据实际情况可以修改超声波发生子程序每次发送的脉冲宽度和两次测量的间隔时间,以适应不同距离的测量需要。系统调试完后应不断优化系统使其达到超声波测距系统的精度要求。使系统软硬件设计合理、抗干扰能力强、实时性良好6. 总结超声波测距的
20、原理是利用超声波的发射和接受,根据超声波传播的时间来计算出传播距离。实用的测距方法有两种,一种是在被测距离的两端,一端发射,另一端接收的直接波方式,适用于身高计;一种是发射波被物体反射回来后接收的反射波方式,适用于测距仪。此次设计采用反射波方式。超声波测距仪硬件电路的设计主要包括单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分。单片机采用AT89C51或其兼容系列。采用12MHz高精度的晶振,以获得较稳定时钟频率,减小测量误差。利用555记时IC作为频率发生器时使得555的输出端频率为40kHZ的信号方波输出,利用外中断0口监测超声波接收电路输出的返回信号。显示电路采用简单实用的
21、4位LED数码管,段码用74HC164N驱动,位码用三极管S9013作为开关来驱动电路。超声波发射电路主要由555记时IC输出频率为40kHZ的方波信号,经4069内部集成的六个反向器的其中四个,使用它具有的放大功能。经反相器4069放大后和超声波发射换能器T构成一个完整的发射电路。555的输出端口输出的40kHz的方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极,用这种推换形式将方波信号加到超声波换能器的两端,可以提高超声波的发射强度。输出端采两个反向器并联,用以提高驱动能力。超声波换能器是利用压电晶体的谐振来工作的。超声波换能器内部有两
22、个压电晶片和一个换能板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片会发生共振,并带动共振板振动产生超声波,这时它就是一个超声波发生器;反之,如果两电极问未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收换能器。超声波发射换能器与接收换能器在结构上稍有不同,使用时应分清器件上的标志。超声波检测接收电路主要是由集成放大电器LF347N和超声波接收换能器组成,超声波接收头接收到超声波后,转换为电信号,此时的信号比较弱,必需经过放大。根据测量范围要求不同,可适当调整本系统中采用的 LF347 对接收到的信号进行放大的大小,以
23、提高系统的灵敏度。超声波测距的算法设计原理为超声波发生器T在某一时刻发出一个超声波信号,当这个超声波遇到被测物体后反射回来,就被超声波接收器R所接收到。这样只要计算出从发出超声波信号到接收到返回信号所用的时间,就可算出超声波发生器与反射物体的距离。在启动发射电路的同时启动单片机内部的定时器T1,利用定时器的计数功能记录超声波发射的时间和收到反射波的时间。当收到超声波反射波时,接收电路输出端产生一个负跳变,在INT0端产生一个中断请求信号,单片机响应外部中断请求,执行外部中断服务子程序,读取时间差,计算距离。超声波测距仪的软件设计主要由超声波发生子程序、超声波接收中断程序、键盘扫描和处理程序及显
24、示子程序组成。超声波测距仪主程序利用外中断0,边沿触发方式,检测返回超声波信号,一旦接收到返回超声波信号(即INT0引脚出现低电平),立即进入中断程序。进入中断后就立即关掉定时器1停止计时,并将测距所得的数据进行计算处理,然后送到4位LED数码管显示。 在元件及调制方面,由于采用的电路使用了较多的集成电路。对各电子元件也无特别要求。根据测量范围要求不同,可适当调整与接收换能器并接的滤波电容C0的大小,以获得合适的接收灵敏度和抗干扰能力。若能将超声波接收电路用金属壳屏蔽起来,则可提高抗干扰能力。外围元件不是很多,一般只要电路焊接无误,稍加调试应该会正常工作,但调试也要应该注意。超声波发射和接收采
25、用型号为TCT40-16R/T超声波模块(直径16mm)标称频率为40kHz。为提高超声波发射的效率,用555记时IC作为频率发生器时使的555的输出频率为40kHZ的信号方波为最佳。系统中对接收到的信号进行放大时曾采用LM324,由LM324的频率特性可知道,放大倍数最大为一级放大10倍,二级放大可以放大到10 倍。这点对系统的灵敏度造成较大的影响,不建议采用。而LF347 对接收到的信号进行放大时,一般一级放大10倍,二级放大可以放大10到100倍,这点对提高系统的灵敏度起到了关键的作用。在系统里,对设计的电路进行了调试和分析.对于测距系统来说, 对如何以提高系统获得较好的接收灵敏度和抗干
26、扰能力,是设计测距系统必需要考虑的问题。这就需要我们去分析和了解各种产生测量干扰和对系统造成不稳定的原因以及解决办法, 以更进一步提高超声波测距系统的灵敏度和抗干扰能力。7.参考文献1.刘凤然.基于单片机的超声波测距系统.传感器世界.2001,5:29-32 2.葛健强.基于 CPLD 的超声波测距仪研制. 无锡商业职业技术学院学报.2004,4(3):8-10 3.何希才,薛永毅.传感器及其应用实例.机械工业出版社,2004:138-152 4.胡汉才.单片机原理及其接口技术.清华大学出版社,2004:27-46 5.吴斌方,刘民,熊海斌.超声波测距传感器的研制.湖北工学院学报.2004,1
27、9(6):26-28 6.谭洪涛,张学平.单片机设计测距仪原理及其简单应用.现代电子技术.2004,18:94-96 7.Peter Hauptmann, Ralf Lucklum, Bernd Henning. Ultrasonic Sensors for Process Control. Sensors Update.1998,3: 163-207 8. 赵 占 林 , 刘 洪 梅 . 超 声 波 测 距 系 统 误 差 分 析 及 修 正 . 科 技 情 报 开 发 与 经 济.2002,12(6):144-145 9.J. Otto. Sensors for Distance Meas
28、urement and Their Applications in Automobiles. Sensors Update.2002,10:231-255 10.苏炜,龚壁建,潘笑.超声波测距误差分析.传感器技术.2004,23(6):8-11 11.罗忠辉,黄世庆.提高超声测距精度的方法. 机械设计与制造.2005,1:109 12.秦旭.用 LM92 温度传感器补偿的高精度超声波测距仪.电子产品世界.2003,6:58-59 13.Yusuke Moritake, Hiroomi Hikawa.Category Recognition System Using Two Ultrasonic
29、 Sensors and Combinational Logic Circuit. Electronics and Communications in Japan.2005,88(7):33-42附录一 (超声波测距程序清单)#include #include #include #define KeyData (P1|0xe0)#define KeyDown 1 /按键按下#define KeyUp 0 /按键弹开bit KeyFirst=1; /按键第一次按下bit KeyState=KeyUp; /按键状态uchar KeyValue; /键值sbit CLK=P16;sbit DAT=P15;sbit MeasureEn=P37
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1