超声波测距器课程设计.docx
《超声波测距器课程设计.docx》由会员分享,可在线阅读,更多相关《超声波测距器课程设计.docx(14页珍藏版)》请在冰豆网上搜索。
![超声波测距器课程设计.docx](https://file1.bdocx.com/fileroot1/2022-12/30/602c89a0-ce1e-4fb1-8a88-cc3bd2dbd888/602c89a0-ce1e-4fb1-8a88-cc3bd2dbd8881.gif)
超声波测距器课程设计
《微机原理及应用》课程设计
超声波测距器的设计
学生姓名
郝强
学号
20110611113
学院名称
机电工程学院
专业名称
机械电子工程
指导教师
王前
2013年
12月
27日
摘要
随着科学技术的快速发展,超声波将在科学技术中的应用越来越广。
本文对超声波传感器测距的可能性进行了理论分析,利用模拟电子、数字电子、微机接口、超声波换能器、以及超声波在介质的传播特性等知识,采用以AT89C51单片机为核心的低成本、高精度、微型化数字显示超声波测距仪的硬件电路和软件设计方法在此基础上设计了系统的总体方案,最后通过硬件和软件实现了各个功能模块。
相关部分附有硬件电路图、程序流程图。
为了保证超声波测距传感器的可靠性和稳定性,采取了相应的抗干扰措施。
就超声波的传播特性,超声波换能器的工作特性、超声波发射、接收、超声微弱信号放大、波形整形、速度变换、语音提示电路及系统功能软件等做了详细说明。
关键词:
超声波 ;传感器; 测量距离;控制
摘要………………………………………………………………………2
目录…………………………………………………………………3
1.设计目的………………………………………………………………4
2.总体方案………………………………………………………………4
3.硬件设计………………………………………………………………5
3.1超声波测距器硬件电路设计……………………………………5
3.2.1单片机芯片的选择……………………………………………………………6
3.2.2AT89C51定时计数应用电路……………………………………6
3.3超声波发射电路设计……………………………………………6
3.3.1选择超声波发生器类型………………………………………6
3.3.2超声波发射电路设计…………………………………………7
3.4超声波接收电路设计……………………………………………8
3.5超声波显示电路设计………………………………………………9
4.软件设计………………………………………………………………9
4.1波测距器的算法设计……………………………………………10
4.2系统的主控制程序设计…………………………………………11
4.3发生子程序设计……………………………………………………12
4.4接收中断程序设计…………………………………………………13
4.5显示程序设计………………………………………………………14
4.6距离计算程序………………………………………………………15
5.结论……………………………………………………………………17
参考文献…………………………………………………………………18
1.设计目的
超声波测距器,可应用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,也可用于如液位、井深、管道长度的测量等场合。
要求测量范围在0.10~4.00m,测量精度1cm,测量时与被测物体无直接接触,能够清晰稳定地显示测量结果。
2.总体方案
硬件部分
主要由单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分组成。
采用AT89C1或其兼容系列来实现对CX20106A红外接收芯片和74LS04系列超声波发射模块的控制。
单片机通过P1.0引脚经反相器来控制超声波的发送,然后单片机不停的检测INT0引脚,当INT0引脚的电平由高电平变为低电平时就认为超声波已经返回。
计数器所计的数据就是超声波所经历的时间,通过换算就可以得到传感器与障碍物之间的距离。
软件部分
主要由主程序、超声波发生子程序、超声波接收中断程序及显示子程序等部分。
3.硬件设计
3.1超声波测距器硬件电路设计
超声波测距是通过不断检测超声波发射后遇到障碍物所反射的回波,从而测出发射和接收回波的时间差t,然后求出距离。
路程、波速、时间之间的关系,可用下列简单的公式表示:
上式中,d为超声波传播单边的路程,s为超声波来回的路程,c为超声波波速,t为超声波来回所用的时间。
当声速确定后,只要测得超声波往返的时间,即可求得距离。
这就是超声波测距的原理。
超声波测距的原理如图所示。
3.1超声波测距原理
根据超声波测距原理,超声波测距器需要有超声波发生器、超声波接收器、超声波传播的计时器。
按照系统设计功能的要求,硬件电路由单片机计时及控制电路、超声波发射电路、超声波检测接收电路、显示电路及电源五部分组成。
系统原理总框图见图。
3.2超声波测距器的原理总框图
3.2.1单片机芯片的选择
89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。
89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
3.2.2AT89C51定时计数应用电路
AT89C51单片机片内集成有两个可编程的定时/计数器T0和T1[4]。
它们既可以工作于定时模式,也可以工作于外部事件计数模式。
本设计采用定时计数器T0,根据需要,让其工作于方式1。
方式1的计数位数是16位,由TL0作为低8位,TH0作为高8位,组成16位加1计数器。
其初值在65535~0范围,计数范围为1~65536。
具体应用见程序设计部分。
3.3超声波发射电路设计
3.3.1选择超声波发生器类型
压电式超声波换能器利用压电晶体的谐振来工作,其内部结构如图所示。
超声波换能器有两个压电晶片和一个共振板。
当它的两极外加电脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将发生共振,从而带动共振板振动,产生超声波。
反之,如果在共振板上外加适当的机械振动,使压电晶片发生共振,将在压电晶片之间产生交变的电信号。
这时它就成为了超声波接收器。
本设计选用压电式超声波换能器TCT40—l0Fl作超声波发射器。
使用时注意分清器件,因为它与接收换能器在结构上稍有不同。
3.3超声波换能器内部结构图
3.3.2超声波发射电路设计
超声波发射电路主要由反向器74LS04和超声波发射换能器T构成,如图所示。
图中T为超声波发射器,采用TCT40—l0Fl,外型尺寸Φ15。
输出端采用两个反向器并联,用以提高驱动能力。
上拉电阻R2,R3一方面可以提高反向器74LS04输出高电平的驱动能力,另一方面可以增加超声波换能器的阻尼效果,缩短其自由振荡的时间。
工作时,单片机的定时器T0产生40KHz方波信号,从P1.3端口输出,一路经过一级反向器后送到超声波发射器T的一个电极,另一路经过两极反向器后送到超声波发射器T的另一个电极,从而将40KHz电脉冲信号加到超声波发射器T,使T发射超声波。
电路采用推挽形式,向超声波发射器T提供电脉冲信号,可以提高超声波的发射强度。
3.4超声波发射电路原理图
3.4超声波接收电路设计
超声波接收电路主要由超声波接收换能器R和超声波检测接收模块构成,如图所示。
图中R为超声波接收器,采用TCT40—l0Sl,外型尺寸Φ15。
U5是超声波检测接收模块,设计时选用了红外线检波接收专用集成电路芯片CX20106A。
选用的原因是CX20106A常用的载波频率为38KHz,与测距的超声波频率40KHz较为接近,可以将发射的超声波之频率控制为38KHz。
电路中设置的电容C4,适当更改其大小,可以改变接收电路的抗干扰能力;适当改变电路中的电容C6,可改变电路的灵敏度。
工作时,接收的超声波信号经R转换为电信号,加到CX20106A的输入端(1脚),处理后由CX20106A的输出端(7脚)送达单片机的中断口INT0,申请CPU处理。
3.5超声波检测接收电路
3.5超声波显示电路设计
显示电路采用LED数码管显示。
LED数码管显示有静态显示方式和动态显示方式,本系统采用并行输出的动态显示方式。
显示电路结构
根据本超声波测距器显示测距数据的需要,采用4位LED动态显示电路。
其中2位显示小数部分,2位显示整数部分。
显示信息输入部分由单片机P0输出端,连接74LS244相应输入端,驱动器输出端经限流电阻连接相应字段码端;字位控制部分分别由三极管驱动,选用PNP型晶体管9012,其基极经限流电阻连接单片机的P2口相关端子,集电极连接数码管的共用端,发射极连接电源。
显示电路如图所示[5]。
3.6超声波测距动态显示电路
4软件设计
超声波测距器的软件主要由主程序,超声波发生子程序,超声波接收中断程序以及显示子程序组成。
4.1波测距器的算法设计
从前面距离的计算公式可知,c为声速,对于超声波,在常温20℃时,其数值为344米/秒;若能准确测量出超声波从发射到返回所用时间,则可以计算出发射点到被测障碍物之间的距离。
测量距离时,由超声波测距器的主控制器中定时器记录时间,设计中要求超声波测距时精确计算程序运行时间。
测量超声波来回所用的时间,当送出一个超声波脉冲后,需要延时约0.1ms,才打开外中断0接收返回的超声波信号,这是为了避免超声波从发射器直接传送到接收器引起直射波触发。
单片机工作时晶振频率为12MHz,计数器每计1个数就是1μs,当主程序检测到接收成功的标志位后,将停止计数器T0计数。
计算距离,将计数器T0中的计数值T0带入距离的计算公式计算,即可得被测物体与测距器之间的距离。
具体为
计算的结果,以十进制BCD码方式送往LED显示,显示时间约0.5s,然后再发超声波脉冲重复测量过程。
4.2系统的主控制程序设计
主程序包括对系统环境初始化,设置定时器T0工作模式,调用超声波发生子程序,等待反射超声波,计算距离,显示距离;重复。
主程序流程图如图。
4.1主程序流程图
※※※※※※主程序※※※※※※
START:
MOVSP,#4FH
MOVR0,#40H;40H~43H为显示数据存放单元(40H为最高位)
MOVR7,#0BH
CLEARDISP:
MOV@R0,#00H
INCR0
DJNZR7,CLEARDISP
MOV20H,#00H
MOVTMOD,#21H;T1为8位自动重装模式,T0为16位定时器
MOVTH0,#00H;65ms初值
MOVTL0,#00H
MOVTH1,#0F2H;40kHz初值
MOVTL1,#0F2H
MOVP0,#0FFH
MOVP1,#0FFH
MOVP2,#0FFH
MOVP3,#0FFH
MOVR4,#04H;超声波脉冲个数控制(为赋值的一半)
SETBPX0
SETBET0
SETBEA
SETBTR0;开启测试定时器
START1:
LCALLDISPLAY
JNB00H,START1;收到反射信号时标志位为1
CLREA
LCALLWORK
SETBEA
CLR00H
SETBTR0;重新开启测试定时器
MOVR2,#64H;测量间隙控制(约4ms×100=400ms)
LOOP:
LCALLDISPLAY
DJNZR2,LOOP
SJMPSTART1
4.3发生子程序设计
超声波发生子程序,主要功能是单片机控制,通过P1.3端口发送2个左右超声波脉冲信号,频率为约40kHz的方波,其脉冲宽度为12μs左右,同时把计数器T0打开进行计时。
ORG0000H
LJMPSTART
ORG0003H
LJMPPINT0
ORG000BH
LJMPINTT0
ORG0013H
RETI
ORG001BH
LJMPINTT1
ORG0023H
RETI
ORG002BH
RETI
4.4接收中断程序设计
超声波接收中断程序,主要功能是单片机控制,检测外中断0返回超声波信号,一旦接收到返回超声波信号(即INT0引脚出现低电平),立即进入中断程序。
进入该中断后就立即关闭计时器T0停止计时,并将测距成功标志字赋值1。
如果当计时器溢出时还未检测到超声波返回信号,则定时器T0溢出中断将外中断0关闭,并将测距成功标志字赋值2以表示本次测距不成功。
;T0中断,65ms中断一次
INTT0:
CLREA
CLRTR0
MOVTH0,#00H
MOVTL0,#00H
SETBET1
SETBEA
SETBTR0;启动计数器T0,用以计算超声来回时间
SETBTR1;开启发超声波用定时器T1
OUT:
RETI
;T1中断,发超声波用
INTT1:
CPLVOUT
DJNZR4,RETOUT
CLRTR1;超声波发完毕,关T1
CLRET1
MOVR4,#04H
SETBEX0;开启接收回波中断
RETIOUT:
RETI
;外中断0,收到回波时进入
PINT0:
CLRTR0;关计数器
CLRTR1
CLRET1
CLREA
CLREX0
MOV44H,TL0;将计数值移入处理单元
MOV45H,TH0
SETB00H;接收成功标志
RETI
如果当计时器溢出时还未检测到超声波返回信号,则定时器T0溢出中断将外中断0关闭,并将测距成功标志字赋值2,以表示本次测距不成功。
4.5显示程序设计
;40H为最高位,43H为最低位,先扫描高位
DISPLAY:
MOVR1,#40H;G
MOVR5,#0E7H;G
PLAY:
MOVA,R5
MOVP0,#0FEH
MOVP2,A
MOV@R1
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVP0,A
LCALLDL1MS
INCR1
MOVA,R5
JNBACC.0,ENDOUT;G
RRA
MOVR5,A
AJMPPLAY
ENDOUT:
MOVP2,#0FEH
MOVP0,#0FEH
RET
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,
0FEH,88H,0BFH
;共阳段码表“0”,“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”,
“不亮”,“A”,“-”
4.6距离计算程序
PUSHACC
PUSHPSW
PUSHB
MOVPSW,#18h
MOVR3,45H
MOVR2,44H
MOVR1,#00D
MOVR0,#17D
LCALLMUL2BY2
MOVR3,#03H
MOVR2,#0E8H
LCALLDIV4BY2
LCALLDIV4Y2
MOV400H,R4
MOVA,40H
JNZJJ0
MOV40H,#0AH;最高位为0,不点亮
JJ0:
MOVA,R0
MOVR4,A
MOVA,R1
MOVR5,A
MOVR3,#00D
MOVR2,#100D
LCALLDIV4BY2
MOV41H,R4
MOVA,41H
JNZJJ1
MOVA,40H;次高位为0,先看最高位是否为不亮
SUBBA,#0AH
JNZJJ1
MOV41H,#0AH;最高位不亮,次高位也不亮
JJ1:
M0VA,R0
MOVR4,A
MOVA,R1
MOVR5,A
MOVR3,#00D
MOVR2,#10D
LCALLDIV4BY2
MOV42H,R4
MOVA,42H
JNZJJ2
MOVA,41H;次次高位为0,先看次高位是否为不亮
SUBBA,#0AH
JNZJJ2
MOV42H,#0AH;次高位不亮,次次高位也不亮
JJ2:
MOV43H,R0
POPB
POPPSW
POPACC
RET
结论
本设计采用AT89C51单片机作为计时及主控制器、用TCT40—l0Fl作超声波发射器、用TCT40—l0Sl和CX20106A构成超声波检测接收电路。
将相关控制编程,写入单片机,实现了以单片机控制的超声波测距器。
本超声波测距器采用硬件电路和软件控制相结合,电路结构简单,低成本,操作方便,工作稳定,测量精度高,可达0.01米。
可用于日常生活及工农业生产中距离的测量及位置监控。
例如管道长度、油井深度、液面高度,建筑施工各点定位等。
本超声波测距器只具有测量显示功能,没有反馈与控制功能。
其设计思想可以应用于智能安全系统。
例如,在车辆智能自动安全系统中,检测车辆左、右动、静态障碍物,并显示距离,至危险区域后与智能模糊控制器通信以采取最佳避让措施等
参考文献
[1]余成波.传感器与自动检测技术[M].北京.高等教育出版社,2004:
124
[2]李全利.单片计原理及接口技术[M].北京.高等教育出版社,2004:
23
[3]张毅刚.单片机原理及应用[M].北京.高等教育出版社,2004:
31
[4]周航慈.单片机应用程序设计技术[M].北京.北京航空航天大学出版,2002:
11
[5]陈明荧.8051单片机课程实训教材[M].北京.清华大学出版社,2004:
50
[6]廖先芸.电子技术实践与训练[M].北京.高等教育出版社,2000:
15-17
[7]康华光.电子技术基础模拟部分[M].北京.高等教育出版社,2003:
459
[8]刘道兴.电子技术培训教学讲义[M].内部资料,2003