-
题目:超声波测距仪的设计
超声波测距仪的设计
一、设计目的
:
以
51
单片机为主控制器,利用超声波模块
HC-SR04
,设计出一套可
<
/p>
在数码管
上实时显示障碍物距离的超声波测距仪。
通过该设计的制作,更为深入的了解
51
的工作原理,特别是
51
的中
断系统及
定时器
/
计数器的应用;
掌握数码管动态扫描显示的方法和超声波
传感器测距的原理及
方法,学会搭建
51
的最小系统及一些简单外围电路
(
LED
显示电路
)
。从中提高电
路的实际设计、焊接、检错、排错能力,并
学会仿真及软件调试的基本方法。
二、设计要求
:
设计一个超声波测距仪。要求:
1.
能在数码管上实时显示障碍物的实际距离;
2.
所测距离大于
2cm
小于
300cm,
精度
2
mm
。
三、设计器材:
STC89C52RC
单片机
HC-SR04
超声波模块
SM410561D3B
四位的共阳数码管
9014
三极管(
4
)
按键(
1
)
电容(
30PF2
,
10UF1
)
排阻(
10K
)
,
< br>万用板,电烙铁,万用表,
5V
直流稳压电源,镊子,钳
子,
导线及焊锡若干,电阻(
p>
200
欧
5
)。<
/p>
四、设计原理及设计方案:
(一)超声波测距原理
超声测距仪是
根据超声波遇到障碍物反射回来的特性进行测量的。
超声
波发射器向某一方向发射超声波
,在发射同时开始计时,超声波在空气中传
播,途中碰到
p>
障碍物就立即返回来,超声波接收器收到反射波就立即中断停
p>
止计时。通过不断检测产生
波发射后遇到障碍物所反射的回波,从而
测出
发射超声波和接收到回波的时间差
T
,
然后
求出距离
L
。基本的测距公式为:
L=
(
△
t/2
)
*C
式中
L
――要测的距离
T
――发射波和反射波之间的时间间隔
C
——
超声波在空气中的声速,常温下
取为
344m/s
声速确定后,只要测出超声波往返的时间,即可求得
L
0
根据
本次设计所要求的测量距离的范围及测量精度,我们选用的是
HC-SR04
超声
波测距模块。
p>
(
如下图所示
)
。
此模块已将发射电路和接收电路
集成好了,硬件上不必
再自行设计繁复的发射及接收电路,
软件上也无需再
通过定时器产生
p>
40Khz
的方波引起压电陶瓷共振从而产生超声波。在使用
时,只要在控
制端‘
Trig
'
发一个大于
15us<
/p>
宽度的高电平
,
就可以在接收端
‘
Echo'
等待高
电平输出。单片机一旦检测到有输出就打开定时器开始计时。
当此口变
为低电平时就停止计时并读出定时器的值,
间,再根据传播速度方可算出障碍物的距离。
此值就为此次测距的时
(二)超声波测距模块
HC-
SR04
简要介绍
HC-
SR04
超声波测距模块的主要技术参数使用方法如下所述
:
1.
主要技术参数:
①
使用电压:
DC5V
②
静态电流:小于
2mA
③
电平输出:高
5V
11
11
④
电平输出:低
0V
⑤
感应角度:不大于
15
度
⑥
探测距离:
2cm-300cm
⑦
高精度:可达
2mm
HC-SRO
4
超声波测距模块实物图
2.
p>
接线方式:
VCC
、
trig
(控制端)、
echo
(接收端)、
GND
使用方法:给<
/p>
Trig
端发一个
15uS
以上的高电平,就可以在接收口
Echo
端等待高
电平输出。一有输出就可以开定时器计时
,
当此口变为低电平时就
可以读定时器的值,此时就为此次测距的时间
,
方可算出距离。
3.
工作原理:
①
采用
10
触发测距,给至少
10us
的高电平信
号
(
在我们的程序中我们为了
确保有效触发,给了约持续
15us
时间宽度
的高电平
)
;
②
模块自动发送
8
个
40khz
的方波,自动检测是否有信号返回;
③
有信号返回,通过
Echo
输出一高电平,高电平持续的时间就是超声波从
发射到返回
的时间?测试距离
=<
/p>
(
高电平时间
*
声速
(
344M/S
))
/2
;
三)总体设计方案:
以
51
单片机作为主控制器,在超声波模块
HC-SR04
的‘
Trig
'
端加一
个
大于
10us
的高电平,本次设计中我们为了确保有效触发,程
序中设置了
约为
15us
的高电平
进行触发。触发发射端产生超声波,同时在接收端
(
'Echo'
端
)
等待高电平的输出,一旦
检测到有高电平的输出就打开定时器
0
进行计
时。根据所给超声波模块的技术资料可知:‘
Echo'
端高电平持续的时间就
是超声波从发
射到返回的时间。
当超声波遇到障碍物,
回波被接收端接收到
后,‘
Echo
'
端变为低电
平。此时关闭定时器
0
(
令
TR=0
)
,读出定时器的值。
这个值即为超声波的传播时间
(
单位为
us
)
。根据声波在空气中
的传播速度,
方可算出距离。【测试距离
~
(
p>
高电平
时间
*
声速
(
344M/S
))
< br>/2
】将此距离进行
处理,在
数码管上利用动态扫描法实时显
示。
系统的结构框图:
我们将整个系统划分为:超声波模块、显示模块,以及
电路模块。
51
单片机外围工作
(四)动态显示模块:
数码管动态显
示接口是单片机中应用最为广泛的一种显示方式之一,
动
态驱动是将所有数码管的
8
个显示笔划
的同名端
连在一起,
另外为每个
数码管的公共极
COM
增加位选通控制电路,位选通由各自独立
的
I/O
线控制,当单片机
输出字形码时,所有数码管都接收到相同的字形码,
但究竟是那个数码管会显示出字形,
取决于单片机对位选通
COM
端电路的
控制,所以我们只要
将需要显示的数码管的选通控
制打开,
该位就显示出字
形,没有选通的数码
管就不会亮。通过分时轮流控制各个数码管的的
COM
端,就使各个数码管轮流受控
显示,这就是动态驱动。在轮流显示过程中,
每位数码管的<
/p>
点亮时间为
1
?
2ms
,
由于人的视觉暂留现象及发光二极管的
余辉效应,尽管实际上各位数
码管并非同时点亮,但
只要扫描的速度足够快,
给人的印象就是一组稳定的显示数据,
不
会有闪烁感,动态显示的效果和静
态显示是一样的,能够节省大量的
I/O
端口,而且功耗更低。
在本次设计中,
我们选用
P0
口作为‘段码’,
连接
SM410561D3
B
‘
a,b,c,d,e,f,g,dp
< br>,
每一段的亮灭。选用
P2.4~P2.7
分别对应‘位码’,即连
接
SM410561
的‘
S1
,
S2
,
S3, S4
'
分别控制每一位的亮灭。‘
S1
,
S2
,
S3,
COM
S4
'
相当于是每一段的
COM
端,由于是共阳极,只有某一位对应
的
端为‘
1
’
时,所送的‘段码’对该端来说才是有效的。
仿真电路图
(五)硬件整体设计方案:
我们在硬件设计上主要包括以下几个模块的设计
:
(六)软件设计方案
:
开始
变量及
定时器
0
初始化
给
Trig
端
20us
的
高电平进行触发
TR0=1
打开定时
器,开始计时
TR0=0
停止计时,计算
出传
播时间
time
TH0=0
,
TL0=0
计算出传输距离
S
显示
---
'
程序如下
:
#in cludev
intrin s.h > #in cludev reg52.h >
#defi
ne uint un sig ned int #defi ne uchar un sig ned
char uchar qia n,bai,shi,ge;
单位为
cm
〃数码管显示千,百,十,个
,