超声波测距器设计.docx
《超声波测距器设计.docx》由会员分享,可在线阅读,更多相关《超声波测距器设计.docx(30页珍藏版)》请在冰豆网上搜索。
超声波测距器设计
实验报告书
设计题目:
超声波测距器设计
实验者姓名:
所在学院:
自动化及电气工程学院
所在班级:
学号:
01401215XX文库
指导老师:
摘要
随着科学技术的快速发展,超声波将在科学技术中的应用越来越广。
本文对超声波传感器测距的可能性进行了理论分析,利用模拟电子、数字电子、微机接口、超声波换能器、以及超声波在介质的传播特性等知识,采用以AT89C51单片机为核心的低成本、高精度、微型化数字显示超声波测距仪的硬件电路和软件设计方法在此基础上设计了系统的总体方案,最后通过硬件和软件实现了各个功能模块。
相关部分附有硬件电路图、程序流程图。
为了保证超声波测距传感器的可靠性和稳定性,采取了相应的抗干扰措施。
就超声波的传播特性,超声波换能器的工作特性、超声波发射、接收、超声微弱信号放大、波形整形、速度变换、语音提示电路及系统功能软件等做了详细说明。
该测距仪最大测量距离是6米,精确度是0.1mm。
这套系统软硬件设计合理、抗干扰能力强、实时性良好,经过系统扩展和升级,可以用于倒车雷达、建筑施工工地以及一些工业现场,例如:
测量液位、井深、管道长度等场合。
可以广泛应用于工业生产、医学检查、日常生活、无人驾驶汽车、自动作业现场的自动引导小车、机器人、液位计等。
关键词单片机AT82S51 超声波 传感器 测量距离
摘要-------------------------------------------------2
1、总体设计框架图-----------------------------------2
2、单元电路设----------------------------------------2
2.1.1主控芯片89C51-----------------------------2
2.1.2主控芯片89C51电路原理图--------------------3
2.2.1显示模块-----------------------------------4
2.3.1无线数据传输模块---------------------------7
2.4.1实验原理及器件---------------------------------10
3.程序设计------------------------------------------14
4.总结--------------------------------------------------15
1、总体设计框架图
2、单元电路设计
2.1.1主控芯片89C51
89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。
89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
引脚结构图
2.1.2主控芯片89C51电路原理图
2.2.1显示模块
LED数码管是由发光二极管构成的,亦称半导体数码管.将条状发光二极管按照共阴极(负极)或共阳极(正极)的方法连接,组成"8"字,再把发光二极管另一电极作笔段电极,就构成了LED数码管.若按规定使某些笔段上的发光二极管就能显示从0~9的…系列数字。
同荧光数码管、辉光数码管(NRT)相比它具有:
体积小、功耗低、耐震动、寿命长、亮度高、单色性好、发光响应的时间短,能与TTL,CMOS电路兼容等的常见LED数码管的外形及内部结构如图1所示。
图1(b)属于共阳极结构,图1(c)采用共阴极结构。
+、一分别表示公共阳极和公共阴极。
a~g是7个笔段电极,DP为小数点。
另有一种字高为7.6mm的超小型LED数码管,管脚从左右两排引出,小数点则是独立的。
2.L印数码管的性能检测
LED数码管外观要求颜色均匀、无局部变色及无气泡等,在业余条件下可用干电池进一步检测。
如图2所示。
以共阴极数码管为例介绍检测方法。
;将3;V干电池负极引出线固定接触在LED数码管的公共阴极上,电池正极引出线依次移动接触笔画的正极端。
这一根引出线接触到某一笔画的正极端时,那~笔画就应显示出来。
用这种简单的方法就可检测出数码管是否有断笔(某笔画不能显示),连笔(某些笔画连在一起),并且可相对比较出不同的笔画发光的强弱性能。
若检测共阳极数码管,只需将电池正负极引出线对调一下,方法同上。
数显器件。
液晶指令集:
2.3.1无线数据传输模块
2.超声波发射电路原理图示:
CD4049功能简介:
CD4049六反相缓冲器/转换器.,CD4049是六反相缓冲器,具有仅用一电源电压(VCC)进行逻辑电平转换的特征。
用作逻辑电平转换时,输入高电平电压(VIH)超过电源电压VCD。
该器件主要用作COS/MOS到DTL/TTL的转换器,能直接驱动两个DTL/TTL负载。
CD4049可替换CD4009,因为CD4049仅需要一电源电压,可取代CD4009用于反相器、电源驱动器或逻辑电平转换器。
CD4049与CD4009引出端排列一致,16引出端是空脚,与内部电路无连接。
若使用时不要求高的漏电流或电压转换,推荐使用CD4049六反相器。
CD4049引脚图:
超声波发射电路
压电超声波转换器的功能:
利用压电晶体谐振工作。
内部结构上图所示,它有两个压电晶片和一个共振板。
当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动产生超声波,这时它就是一超声波发生器;如没加电压,当共振板接受到超声波时,将压迫压电振荡器作振动,将机械能转换为电信号,这时它就成为超声波接受转换器。
超声波发射转换器与接受转换器其结构稍有不同。
3.超声波检测接受电路
NE5532功能特点简介:
NE5532/SE5532/SA5532/NE5532A/SE5532A/SA5532A是一种双运放高性能低噪声运算放大器。
相比较大多数标准运算放大器,如1458,它显示出更好的噪声性能,提高输出驱动能力和相当高的小信号和电源带宽。
这使该器件特别适合应用在高品质和专业音响设备,仪器和控制电路和电话通道放大器。
如果噪音非常最重要的,因此建议使用5532A版,因为它能保证噪声电压指标。
NE5532特点:
•小信号带宽:
10MHZ
•输出驱动能力:
600Ω,10V有效值
•输入噪声电压:
5nV/√Hz(典型值)
•直流电压增益:
50000
•交流电压增益:
2200-10KHZ
•功率带宽:
140KHZ
•转换速率:
9V/μs
•大的电源电压范围:
±3V-±20V
•单位增益补偿
接受电路
2.4.1 实验原理
超声波是指频率高于20KHz的机械波。
为了以超声波作为检测手段,必须产生超生波和接收超声波。
完成这种功能的装置就是超声波传感器,习惯上称为超声波换能器或超声波探头。
超声波传感器有发送器和接收器,但一个超声波传感器也可具有发送和接收声波的双重作用。
超声波传感器是利用压电效应的原理将电能和超声波相互转化,即在发射超声波的时候,将电能转换,发射超声波;而在收到回波的时候,则将超声振动转换成电信号。
超声波测距的原理一般采用渡越时间法TOF(time of flight)。
首先测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就得到二倍的声源与障碍物之间的距离。
测量距离的方法有很多种,短距离的可以用尺,远距离的有激光测距等,超声波测距适用于高精度的中长距离测量。
因为超声波在标准空气中的传播速度为331.45米/秒,由单片机负责计时,单片机使用12.0M晶振,所以此系统的测量精度理论上可以达到毫米级。
由于超声波指向性强,能量消耗缓慢,在介质中传播距离远,因而超声波可以用于距离的测量。
利用超声波检测距离,设计比较方便,计算处理也较简单,并且在测量精度方面也能达到要求。
超声波发生器可以分为两类:
一类是用电气方式产生超声波,一类是用机械方式产生超声波。
本课题属于近距离测量,可以采用常用的压电式超声波换能器来实现。
根据设计要求并综合各方面因素,可以采用AT89S51单片机作为主控制器,用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器完成,超声波测距器的系统框图如下图所示:
74ls245引脚图
总线驱动器74LS244和74LS245经常用作三态数据缓冲器,74LS244为单向三态数据缓冲器,而74LS245为双向三态数据缓冲器。
单向的内部有8个三态驱动器,分成两组,分别由控制端 和2G 控制;双向的有16个三态驱动器,每个方向8个。
在控制端 有效时( 为低电平),由DIR端控制驱动方向:
DIR为“1”时方向从左到右(输出允许),DIR为“0”时方向从右到左(输入允许)。
74LS244和74LS245的引脚图如
74LS245是我们常用的芯片,用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。
*74LS24还具有双向三态功能,既可以输出,也可以输入数据。
*当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。
*当片选端/CE低电平有效时,DIR=“0”,信号由B向A传输;(接收)
*DIR=“1”,信号由A向B传输;(发送)当/CE为高电平时,A、B均为高阻态。
由于P2口始终输出地址的高8位,接口时74LS245的三态控制端/1G和/2G接地,P2口与驱动器输入线对应相连。
P0口与74LS245输入端相连,/E端接地,保证数据现畅通。
8051的/RD和/PSEN相与后接DIR,使得/RD或/PSEN有效时,74LS245输入(P0.i←Di),其它时间处于输出(P0.i→Di)。
超声波测距器系统设计框图
三、系统组成
硬件部分
主要由单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分组成。
采用AT89S51来实现对CX20106A红外接收芯片和TCT40-10系列超声波转换模块的控制。
单片机通过P1.0引脚经反相器来控制超声波的发送,然后单片机不停的检测INT0引脚,当INT0引脚的电平由高电平变为低电平时就认为超声波已经返回。
计数器所计的数据就是超声波所经历的时间,通过换算就可以得到传感器与障碍物之间的距离。
软件部分
主要由主程序、超声波发生子程序、超声波接收中断程序及显示子程序等部分。
系统硬件电路设计
三、系统程序设计
超声波测距软件设计主要由主程序,超声波发射子程序,超声波接受中断程序及显示子程序组成。
下面对超声波测距器的算法,主程序,超声波发射子程序和超声波接受中断程序逐一介绍。
1.超声波测距器的算法设计
下图示意了超声波测距的原理,即超声波发生器T在某一时刻发出的一个超声波信号,当超声波遇到被测物体后反射回来,就被超声波接收器R所接受。
这样只要计算出发生信号到接受返回信号所用的时间,就可算出超声波发生器与反射物体的距离。
距离计算公式:
d=s/2=(c*t)/2
*d为被测物与测距器的距离 ,s为声波的来回路程,c为声速,t为声波来回所用的时间
声速c与温度有关,如温度变化不大,则可认为声速是基本不变的。
如果测距精度要求很高,则应通过温度补偿的方法加以校正。
声速确定后,只要测得超声波往返时间,即可求得距离。
在系统加入温度传感器来监测环境温度,可进行温度被偿。
这里可以用DS18B20测量环境温度,根据不同的环境温度确定一声速提高测距的稳定性。
为了增强系统的可靠性,应在软硬件上采用抗干扰措施。
不同温度下的超声波声速表
温度/
-30
-20
-10
0
10
20
30
100
声速c(m/s)
313
319
325
323
338
344
349
386
2.主程序
主程序首先对系统环境初始化,设置定时器T0工作模式为16位的定时计数器模式,置位总中断允许位EA并给显示端口P0和P2清0。
然后调用超声波发生子程序送出一个超声波脉冲,为避免超声波从发射器直接传送到接收器引起的直接波触发,需延迟0.1ms(这也就是测距器会有一个最小可测距离的原因)后,才打开外中断0接收返回的超声波信号。
由于采用12MHz的晶振,机器周期为1us,当主程序检测到接收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)按下式计算即可测得被测物体与测距仪之间的距离,设计时取20℃时的声速为344 m/s则有:
d=(C*T0)/2 =172T0/10000cm(其中T0为计数器T0的计数值)
测出距离后结果将以十进制BCD码方式LED,然后再发超声波脉冲重复测量过程。
3. 超声波发生子程序和超声波接收中断程序
超声波发生子程序的作用是通过P1.0端口发送2个左右的超声波信号频率约40KHz的方波,脉冲宽度为12us左右,同时把计数器T0打开进行计时。
超声波测距器主程序利用外中断0检测返回超声波信号,一旦接收到返回超声波信号(INT0引脚出现低电平),立即进入中断程序。
进入该中断后就立即关闭计时器T0停止计时,并将测距成功标志字赋值1。
如果当计时器溢出时还未检测到超声波返回信号,则定时器T0溢出中断将外中断0关闭,并将测距成功标志字赋值2以表示此次测距不成功。
四 总结
软硬件调试及性能
超声波测距仪的制作和调试,其中超声波发射和接收采用Φ15的超声波换能器TCT40-10F1(T发射)和TCT40-10S1(R接收),中心频率为40kHz,安装时应保持两换能器中心轴线平行并相距4~8cm,其余元件无特殊要求。
若能将超声波接收电路用金属壳屏蔽起来,则可提高抗干扰能力。
根据测量范围要求不同,可适当调整与接收换能器并接的滤波电容C4的大小,以获得合适的接收灵敏度和抗干扰能力。
硬件电路制作完成并调试好后,便可将程序编译好下载到单片机试运行。
根据实际情况可以修改超声波发生子程序每次发送的脉冲宽度和两次测量的间隔时间,以适应不同距离的测量需要。
根据所设计的电路参数和程序,测距仪能测的范围为0.07~5.5m,测距仪最大误差不超过1cm。
系统调试完后应对测量误差和重复一致性进行多次实验分析,不断优化系统使其达到实际使用的测量要求。
后续工作需实验后才能验证
根据参考电路和集成的电路器件测距范围有限10m以内为好。
程序清单
以下是用汇编语言编写的超声波测距控制源程序:
采用AT89S51 12MHz晶振
显示缓冲单元在40H~43H,使用内存44H、45H、46H用于计算距离
20H用于标志
VOUT EQU P1.0 ;脉冲输出端口
*中断入口程序*
ORG 0000H
LJMP START
ORG 0003H
LJMP PINT0
ORG 000BH
LJMP INTT0
ORG 0013H
RETI
ORG 001BH
LJMP INTT1
ORG 0023H
RETI
ORG 002BH
RETI
*主程序*
START:
MOV SP,#4FH
MOV R0,#40H ;40~43H为显示数据存放单元(40为最高位)
MOV R7,#0BH
CLEARDISP:
MOV @R0,#00H
INC R0
DJNZ R7,CLEARDISP
MOV 20H,#00H
MOV TMOD,#21H ;T1为8位自动重装模式,T0为16位定时器
MOV TH0,#00H ;65ms初值
MOV TL0,#00H ;40KHz初值
MOV TH1,#0F2H
MOV TL1,#0F2H
MOV P0,#0FFH
MOV P1,#0FFH
MOV P2,#0FFH
MOV P3,#0FFH
MOV R4,#04H ;超声波脉冲个数控制(为赋值的一半)
SETB PX0
SETB ET0
STEB EA
CLR 00H
SETB TR0 ;开启测距定时器
START1:
LCALL DISPLAY
JNB 00H,START1 ;收到反射信号时标志位为1
CLR EA
LCALL WORK ;计算距离子程序
SETB EA
CLR 00H
SETB TR0 ;重新开启测距定时器
MOV R2,#64H ;测量间隔控制(约4*100=400ms)
LOOP:
LCALL DISPLAY
DJNZ R2,LOOP
SJMP START1
*中断程序*
;T0中断,65ms中断一次
INTT0:
CLR EA
CLR TR0
MOV TH0,#00H
MOV TL0,#00H
SETB ET1
SETB EA
SETB TR0 ;启动计时器T0,用以计算超声波来回时间
SETB TR1 ;开启发超声波用定时器T1
OUT:
RETI
;T1中断,发超声波用
INTT1:
CPL VOUT
DJNZ R4,RETIOUT
CLR TR1 ;超声波发送完毕,关T1
CLR ET1
MOV R4,#04H
SETB EX0 ;开启接收回波中断
RETIOUT:
RETI
;外中断0,收到回波时进入
PINT0:
CLR TR0 ;关计数器
CLR TR1
CLR ET1
CLR EA
CLR EX0
MOV 44H,TL0 ;将计数值移入处理单元
MOV 45H,TH0
SETB 00H ;接收成功标志
RETI
*延时程序*
DL1MS:
MOV R6,#14H
DL1:
MOV R7,#19H
DL2:
DJNZ R6,DL2
DJNZ R6,DL1
RET
*显示程序*
;40H为最高位,43H为最低位,先扫描高位
DISPLAY:
MOV R1,#40H;G
MOV R5,#0F7H;G
PLAY:
MOV A,R5
MOV P0,#0FFH
MOV P2,A
MOV A,@R1
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P0,A
LCALLDLIMS
INC R1
MOV A,R5
JNB ACC.0,ENDOUT;G
RR A
MOV R5,A
AJMP PLAY
ENDOUT; MOV P2,#0FFH
MOV P0,#0FFH
RET
TAB;DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,88H,0BFH
;共阳数码管 0,1,2,3,4,5,6,7,8,9,不亮,A,—
*距离计算程序(=计算值×17/1000cm) 近似
WORK:
PUSH ACC
PUSH PSW
PUSH B
MOV PSW,#18H
MOV R3,45H
MOV R2,44H
MOV R1,#00D
MOV R0,#17D
LCALLMUL2BY2