基于51单片机的超声波测距仪说明书
引言
超声波测距仪,可使用于汽车倒车、建筑施工工地以及一些工业现场的位置监控,也可用于如液位、井深、管道长度的测量等场合。
利用超声波指向性强,能量消耗缓慢,在介质中传播的距离较远,因而超声波经常用于距离的测量。
利用超声波检测往往比较迅速、方便、计算简单、易于做到实时控制。
一、性能要求
该超声波测距仪,要求测量范围在0.08-3.00m,测量精度1cm,测量时和被测物体无直接接触,能够清晰稳定地显示测量结果。
二、工作原理及方案论证
超声波传感器及其测距原理
超声波是指频率高于20KHz的机械波。
用超声波传感器产生超声波和接收超声波,习惯上称为超声波换能器或超声波探头。
超声波传感器有发送器和接收器.超声波传感器是利用压电效应的原理将电能和超声波相互转化,即在发射超声波的时候,将电能转换,发射超声波;而在收到回波的时候,则将超声振动转换成电信号。
超声波测距的原理一般采用渡越时间法TOF(timeofflight)。
首先测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就得到二倍的声源和障碍物之间的距离。
根据要求并综合各方面因素,采用AT89C52单片机作为主控制
器,用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器完成,超声波测距仪的系统框图如下图所示:
图1 超声波测距仪系统设计框图
三、系统硬件部分
硬件部分主要由单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分组成。
1.单片机系统及显示电路
单片机采用AT89C52来实现对CX20106A红外接收芯片和TCT40-10系列超声波转换模块的控制。
单片机通过P1.1引脚发射脉冲控制超声波的发送,然后单片机不停的检测外中断0口INT0引脚,当INT0引脚的电平由高电平变为低电平时就认为超声波已经返回。
计数器所计的数据就是超声波所经历的时间,通过换算就可以得到传感器和障碍物之间的距离。
显示电路采用简单实用的4位共阳LED数码管,段码用74LS244驱动,位码用PNP三极管驱动。
单片机系统及显示电路如下图所示:
X T A L 2
18X T A L 119A L E 30E A
31P S E N 29R S T
9P 0.0/A D 039P 0.1/A D 138P 0.2/A D 237P 0.3/A D 336P 0.4/A D 435P 0.5/A D 534P 0.6/A D 633P 0.7/A D 732P 1.0/T 21P 1.1/T 2E X 2P 1.23P 1.34P 1.45P 1.56P 1.67P 1.7
8P 3.0/R X D 10P 3.1/T X D 11P 3.2/I N T 012P 3.3/I N T 113P 3.4/T 014P 3.7/R D
17
P 3.6/W R 16P 3.5/T 115P 2.7/A 15
28
P 2.0/A 821P 2.1/A 922P 2.2/A 1023P 2.3/A 1124P 2.4/A 1225P 2.5/A 1326P 2.6/A 1427U 1
A T 89C 52
Q 1
9012
Q 3
9012
Q 4
9012
Q 2
9012
1A 021A 141A 261A 382A 0112A 1132A 2152A 3171O E 12O E
191Y 0181Y 1161Y 2141Y 3122Y 092Y 172Y 252Y 33
U 2
74L S 244
R
510
510
R 1
4.7K
R 2
4.7K
R 3
4.7K
R 4
4.7K
V c c C 13.3u
X T 112M
S 1
C 3
20p
R 8
10K
C 2
20p
G N D
图2 单片机系统及显示电路
2.超声波发射电路
利用555时基电路振荡产生40kHz的超声波信号,使之和换能器的40kHz固有频率一致。
12V电源保证555时基具有足够驱动能力。
P1.1为超声波发射控制信号,由单片机控制。
发射电路如图3所示:
图3 超声波发射电路原理图
3.超声波检测接收电路
超声波接收电路采用集成电路CX20106A,这是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。
考虑到红外遥控常用的载波频率38KHz和测距超声波频率40KHz较为接近,可以利用它作为超声波检测电路。
实验证明其具有很高的灵敏度和较强的抗干扰能力。
适当改变C4的大小,可改变接受电路的灵敏度和抗干扰能力。
接收电路如图4所示:
图4 超声波接收电路图
四.系统软件部分
超声波测距程序设计软件部分主要由主程序,超声波发射子程序,超声波接受中断程序及显示子程序组成。
下面对超声波测距仪的算法,主程序,超声波发射子程序和超声波接受中断程序逐一介绍。
1.超声波测距仪的算法设计
下图示意了超声波测距的原理,即超声波发生器T在某一时刻发出的一个超声波信号,当超声波遇到被测物体后反射回来,就被超声波接收器R所接受。
这样只要计算出发生信号到接受返回信号所用的时间,就可算出超声波发生器和反射物体的距离。
距离计算公式:d=s/2=(c*t)/2
*d为被测物和测距器的距离,s为声波的来回路程,c为声速,t为
声波来回所用的时间
2.主程序
主程序框图如右图所示:
主程序首先对系统环境初始化,设置定时
器T0工作模式为16位的定时计数器模式,
置位总中断允许位EA并给显示端口P0和
P2清0。
然后调用超声波发生子程序送出
一个超声波脉冲,为避免超声波从发射器
直接传送到接收器引起的直接波触发,需
延迟0.1ms(这也就是测距器会有一个最
小可测距离的原因)后,才打开外中断0接
收返回的超声波信号。
由于采用12MHz的
晶振,机器周期为1us,当主程序检测到接收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)按下式计算即可测得被测物体和测距仪之间的距离,设计时取20℃时的声速为344m/s则有:d=(C*T0)/2=172T0/10000cm(其中T0为计数器T0的计数值)测出距离后结果将以十进制BCD码方式LED,然后再发超声波脉冲重复测量过程。
3.超声波发生子程序和超声波接收中断程序
超声波发生子程序的作用是通过P1.1端口发送超声波发射控制脉冲信号,同时把计数器T0打开进行计时。
超声波测距器主程序利用外中断0检测返回超声波信号,一旦接收到返回超声波信号(INT0引脚出现低电平),立即进入中断程序。
进入该中断后就立即关闭计时器T0停止计时,并将测距成功标志字赋值1。
如果当计时器溢出时还未检测到超声波返回信号,则定时器T0溢出中断将外中断0关闭,并将测距成功标志字赋值2以表示此次测距不成功。
五.软硬件调试及性能
超声波发射和接收采用Φ15的超声波换能器TCT40-10F1(T发射)和TCT40-10S1(R接收),中心频率为40kHz,保持两换能器中心轴线平行并相距4~8cm。
主要性能指标:测距仪能测的范围为0.08~3.00m,测距仪精度1cm。
程序清单
以下是用汇编语言编写的超声波测距控制源程序:
采用MH晶振
显示缓冲单元在40H~43H,使用内存、、用于计算距离用于标志
脉冲输出端口
中断入口程序
主程序
为显示数据存放单元(
为最高位)
为
位自动重装模式,为位定
时器
初值
初值
;超声波脉冲个数控制(为赋值的一半)
开启测距定时器
收到反射信号时标志位为
;计算距离子程序
;重新开启测距定时器
;测量间隔控制(约
)
中断程序
中断,中断一次
启动计时器,用以计算超声波来回时间
开启发超声波用定时器
中断,发超声波用
;超声波发送完毕,关
;开启接收回波中断
外中断,收到回波时进入
;关计数器
;将计数值移入处理单元
;接收成功标志
延时程序
显示程序
为最高位,为最低位,先扫描高位
:
;共阳数码管不亮,—
距离计算程序计算值×m近似
最高位为,不点亮
;此高位为,先看最高位是否为不亮
;最高位不亮,次高位也不亮
次高位为,先看次高位是否为不亮
;次高位不亮,次高位也不亮
两字节无符号数乘法程序
四字节两字节无符号数除法程序
附程序。