超声波测距实验报告.docx
《超声波测距实验报告.docx》由会员分享,可在线阅读,更多相关《超声波测距实验报告.docx(22页珍藏版)》请在冰豆网上搜索。
超声波测距实验报告
1、课题设计的目的和意义3
2、课题要求3
、基本功能要求3
、提高要求4
3、重要器件功能介绍4
、CX20106A红外线发射接收专用芯片4
、AT89C51系列单片机的功能特点5
、ISD1700优质语音录放电路6
4、超声波测距原理8
4.1、超声波测距原理图8
、超声波测距的基本原理9
5、硬件系统设计10
、超声波发射单元10
、超声波接收单元11
、显示单元11
、语音单元12
、硬件设计中遇到的难题:
12
6、系统软件设计14
7、调试与分析15
调试15
误差分析15
&总结16
9、附件17
、总电路...17
、主要程序18
22
10、参考文献
1课题设计的目的及意义
随着科学技术的快速发展,超声波在测距仪中的应用越来越广,但就目前技术水平而言,人们可以利用的测距技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域。
展望未来,超声波测距作为一种新型的非常重要有用的工具在各方面都有很大的发展空间,它将朝着更加高定位高精度的方向发展,以满足日益发展的社会需求。
如声纳的发展趋势:
研究具体的高定位精度的被动测距声纳,以满足军事和渔业等的发展需求,实现远程的被动探测和识别。
毋庸置疑,未来的超声波测距仪将与自动化智能化接轨,与其他的测距仪集成和融合,形成多测距仪。
超声波测距在某些场合有着显着的优点,因为这种方法是利用计算超声波在被测物体和超声波探头之间的传输来测量距离的,因此它是一种非接触式的测量,所以他就能够在某些场合或环境比较恶劣的环境下使用。
比如测有毒或者有腐蚀性化学物质的液面高度或者高速公路上快速行驶汽车之间的距离。
随着测距仪的技术进步,测距仪将从具有单纯判断功能发展到具有学习功能,最注重发展到具有创造力。
在新的时代,测距仪将发挥更大的作用。
2课题要求
以单片机AT89C51为中心控制单元,配以超声波发射、接收装置,实现
超声波发射及接收其遇到障碍物发生反射形成的回波信号,并根据超声波在介质中的传播速度及超声波从发射到接收到回波的时间,计算出发射点距障碍物的距离,设计出一套基于单片机的脉冲反射式超声波测距系统,利用单片机进行操作控制,用数码管作输出显示,设计发射、接收、检测、显示硬件电路和测距系统软件。
、基本功能要求:
(1)、能实现测距操作;
(2)、能清晰稳定地显示测量结果,具有测量完成提示;
(3)、能正确实现单次测量;
(4)、测量范围在2m
(5)、测量精确度2cm。
、提高要求:
(6)、能实现单次测量和连续测量两种测量方式;
(7)、测量结果能够用语音播报;
(8)、测量范围在一一3.5m;
(9)、测量精确度1cm
备注:
采用AT89C51单片机;采用CX20106超声波接收芯片
3、重要器件功能介绍
CX20106A红外线发射接收专用芯片
CX20106A红外线遥控接收前置放大电路,多适用于电视机。
内部电路由前置放大器,自动偏置电平控制电路(ABLC、限幅放大器、带通滤波器、峰值检波器和波形整形电路等组成。
CX20106A是CX20106的改进型,二者之间的主要差别在于电参数略有不同。
CX20106A也同样适用于超声波测试,主要频率在38KHZ~41KHZ在超声波应用中通常选取40KHZ
1脚:
超声信号输入端,该脚的输入阻抗约为40kQ。
2脚:
该脚与地之间连接RC串联网络,它们是负反馈串联网络的一个组成部分,改变它们的数值能改变前置放大器的增益和频率特性。
增大电阻R1或减小C1,
将使负反馈量增大,放大倍数下降,反之则放大倍数增大。
但C1的改变会影响到频率特性,一般在实际使用中不必改动,推荐选用参数为R1=Q,C仁1卩F。
3脚:
该脚与地之间连接检波电容,电容量大为平均值检波,瞬间相应灵敏度低;若容量小,则为峰值检波,瞬间相应灵敏度高,但检波输出的脉冲宽度变动大,易造成误动作,推荐参数为[1f。
4脚:
接地端。
5脚:
该脚与电源间接入一个电阻,用以设置带通滤波器的中心频率f0,阻值越大,中心频率越低。
例如,取R=200kQ时,f0〜42kHz,若取R=220kQ,则中心频率f0〜38kHz。
6脚:
该脚与地之间接一个积分电容,标准值为330pF,如果该电容取得太大,会使探测距离变短。
7脚:
遥控命令输出端,它是集电极开路输出方式,因此该引脚必须接上一个上拉电阻到电源端,推荐阻值为22kQ,没有接受信号是该端输出为高电平,有信号时则产生下降。
8脚:
电源正~极,
AT89C51系列单片机的功能特点
51系列单片机中典型芯片AT89C51采用40引脚爽直插封装(DIP)形式,内部有CPU4kb的ROM256B的RAM2个16B的定时/计数器T0和T1/4个8B的I/O端:
P0,P1,P2,P3,一个全双工串行通信口等组成。
特别是该系列单片机内的Flash可编程、可擦出制度存储器,使其在实际中有着十分广泛的用途,在便携式、省电及特殊信息保存的一起和系统中更为有用。
该系列单
片机引脚与封装如图
51单片机提供以下功能:
4kb存储器、256BRAM32条I/O线、2个16b定时、计数器、5个2级中断源、1个全双向德串口以及时钟电路。
空闲方式:
CPU亭止工作,而让RAM串行口和终端系统继续工作。
掉电方式:
保存RAM的内容,振荡器停振,禁止芯片所有的其他功能直到下一次硬件复位。
51单片机为许多控制提供了高度灵活和低成本的解决方法,充分利用内部资源,即可在较少外围电路的情况下构成功能完善的超声波测距系统。
、ISD1700语音录放芯片
*c«
TfU
'•
pWTiRD^
Rtstr
■驗
KLK
乔%An*hi>MIC*
MK-
弧
-J-
4
5
e
»TlIy
I$D17OO
?
?
FT
2'
V
却冃财
却
IIVOL
11
12
13
14
1?
AUDi'AUX
15
ISD1700的功能特点:
1、可录、放音十万次,存储内容可以断电保留一百年
2、按键模式和MCI串行控制模式(SPI协议)
3、MIC和ANAIN两种录音模式
4、PWMAUD/AU)三种放音输出方式
5、可处理多达255段以上信息
6、有丰富多样的工作状态提示
7、多种采样频率对应多种录放时间
8音质好,电压范围宽,应用灵活
ISD1700的电特性
1、工作电压:
~,,最高不能超过6V
2、静态电流:
〜1ua
3、工作电流:
20mA
ISD1700的工作模式(按键模式和SPI串行工作模式)
(1)独立按键工作模式
ISD1730的独立按键工作模式录放电路非常简单,而且功能强大。
不仅有录、放功能,还有快进、擦除、音量控制、直通放音和复位等功能。
这些功能仅仅通过按键就可完成。
(2)SPI协议串行工作模式
下图是串行模式(SPI协议)典型电路:
SPI协议总述
ISD1700系列的SPI串行接口操作遵照以下协议:
1、一个SPI处理开始于/SS管脚的下降沿。
2、在一个完整的SPI指令传输周期,/SS管脚必须保持低电平。
3、数据在SCLK的上升沿锁存在芯片的MOSI管脚,在SCLK的下降沿从MISO管脚输出,并且首先移出低位。
4、SPI指令操作码包括命令字节,数据字节和地址字节,这决定于1700的指令类型
5、当命令字及地址数据输入到MOS管脚时,同时状态寄存器和当前行地址信息从MISO管脚移出。
6、一个SPI处理在/SS变高后启动。
7、在完成一个SPI命令的操作后,会启动一个中断信息,并且持续保持为低,直到芯片收到CLR_INT命令或者芯片复位。
4、超声波测距原理
4.1、超声波测距原理图:
超宵波发射探头障碍物
超声渡接收探头
、超声波测距的基本原理
超声波是指频率在2000赫兹以上,不能引起正常人听觉反映的机械振动波,是物体的机械振动在弹性介质中传播所形成的机械振动声波具有非常短的波长,可以集聚成狭小的发射线束状直线播散,故传播具有一定的方向性。
超声波测距的方法有多种,如相位检测法、声波幅值检测法和渡越时间检测法等。
相位检测法虽然精度高,但检测范围有限;声波幅值检测法易受反射
波的影响。
本仪器采用超声波脉冲反射检测法。
其原理为:
检测从超声波发
射器发出的超声波,经气体介质的传播到接收器的时间唯独约时间。
渡越时间与气体中的声速相乘,就是声波传输的距离。
超声波发射器向某一方向发射超声波,在发射时刻的同时单片机开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波,并在显示器上显示距
离。
超声波在相同的煤质里传播速度相同,及在相当大的频率范围内声速不随频率变化,但其频率越高,衰减的越厉害,传播的距离也越短。
考虑实际工程测量要求,再设计超声波测距仪时,选用频率为40KHz的超声波。
根据超声波测距原理,设计了以51单片机为核心的低成本呢、高精度、微型化数字显示超声波测距系统,考虑到单片机测量精度受到内部主振频率或参考频率的限制,从硬件电路设计角度出发,采用一种单片机外部硬件扩展计数电路,通过升高计数参考频率来提高测距系统的计时精度,以最终提高系统的计时精度。
采取一系列的改进方法有效消除其他影响,提高超声波
往返时间的测量可靠性。
模块接口
超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可
以计算出发射点距障碍物的距离s,即s=340Xt/2,这就是常用的时差法测
5、硬件系统设计
、超声波发射单元
VCCC9
首先利用74LS04非门通过推挽的方式使电压VPP达到10V左右,再利用MAX232芯片进一步提高电压,因为MAX232芯片是专为RS-232标准串口设计的单电源电平转换芯片,可以将士5V的电压升压到士12V左右,且不影响方波波形,这里很适用。
、超声波接收单元
这里用到CX20106芯片,前面已经介绍,当该芯片接到40KHZ左右的方波信号时,其7脚输出低点平,可用于单片机的中断。
要到达良好的接受效果,这里的电路焊接与处理非常重要,我将在后面
的“问题处理”处说明。
、显示单元
这里用到了1602LCD液晶显示,用这个来做显示有两个好处:
好处1:
线路较LED简单,能美观电路板。
好处2:
1602LCD液晶不仅能显示数字,也能显示英文字母和一些常用符
号,这样可以更准确的表达设计者的思想。
、语音单元
语音部分用到ISD1760语音芯片。
当20脚Rsoc接80K电阻时采样率为
8kHz,最多能够录音60s。
完全可以达到设计需求。
、硬件设计中遇到的难题:
、接收电路中的问题
我在焊好板子实验的过程中发现接受电路很容易受到干扰。
一开始总是找
不到问题,后来我发觉可能是超声波接收探头的滤波电容过小(当时使用的
是471pf)。
于是,我更换了一个104的电容(即),测试时发现中断一直产生当时我非常沮丧,甚至有了放弃的念头。
但后来我想到是不是电容过大产生了电容放电,反而影响了电路。
于是,我又更换了一个102的电容(即1000pf)这次的更换得到的结果让我欣喜若狂,电路不能抗干扰能力加强且电路稳定。
真真切切是“过大、过小都不好呀”。
、发射电路中的问题:
发射电路的设计,我先后利用了74LS04以及MAX232来提升电压。
最后得到了很高的电压增益。
这个一开始看是很好的结果最后却引发了一个问题,就是无法测量较短的距离(最后是0.5m以内都无法测量)。
原因可由下图来解释:
上图表示的是发生探头的拖尾现象。
在发送完方波后由于电气特性,它会产生拖尾。
由于我的驱动电压较大,所以这个拖尾是很严重的,这就使得我必须用更大的时延去屏蔽掉这个拖尾,这就导致了电路无法测量较短的距离。
所以,驱动电压太大也不完全是处。
但这并不是说驱动电压是越小越好驱动电压过小的话会导致长距离的测量中由于功率不够而无法测量。
所以,设计时要注意选择一个始终的驱动电压。
不要过大,不要过小。
6、系统软件设计
.程序过程图:
开始
次测量
.程序过程中的难题:
、选择中断屏蔽延时时长:
这是程序设计中最大的难题。
由于超声波发射头的方向性不可能很好,所以接受探头有可能接收到由发射头直接传来的40kHz超声波。
而这是我们要极力避免的,这就需要通过延时来屏蔽掉。
但延时时间的选择是很不容易的,
太小不能起到屏蔽的作用,而太大会增大所能测量的最小距离。
所以,选择一个合适的延时时间是很重要的,我最后选择的延时时间为50us左右。
、语音芯片的语音分段:
由于要到达报数的需要,需要录制“0”到“9”以及“毫米”共11段语音,所以语音的分段需要一定的时间去查找,是一个比较麻烦的工作,不过最终的效果不错。
本次软件设计中还遇到一些小问题,最后都通过调时解决。
7调试与分析调试
设计中采用MAX232寸电路进行升压,提高了超声换能器的输出能力,从而提高了测距的距离。
采用了红外接收芯片CX20106A减少了电路之间的相
互干扰,提高了接收信号的灵敏度:
,中心频率为40KHz安装时应保持发射端和接收端平行相距5-8cm,硬件电路完成后,将可编译程序下载到AT89C51单片机上运行,观察LCD读数,便为所测距离。
可根据实际情况对超声波子程序进行修改,以适应不同的距离测量需要。
性能指标:
根据文中参数和程序,测距仪可测范围为-2m。
试验中对测量范围为-2m的障碍物进行多次测量,测距仪的最大误差不超过1cm,重复性良好。
误差分析:
限制该系统最大可测距离的因素包括:
超声波的幅度、反射面的质地、反射和入射声波之间的夹角以及接收换能器的灵敏度。
接收换能器对声波脉
冲的直接接收能力将决定最小的可测距离。
测距误差主要来源于以下几个方面:
1超声波波束对探测目标的入射角的影响;
2超声波回波声强与待测距离的远近有直接关系;
3超声波在不同环境中传播速度的差异对测距有影响。
稳定准确的超声波传播速度是保证测量精度的必要条件,传播媒质的特性,如温度、压力、密度对声速都将产生影响
8总结
在历时几个星期的设计过程中,我们能够学以致用,运用了许多知识,如单片机、c语言、电工学等。
在电路设计和编写程序的过程中,出现了许多意想不到的问题和错误,经过小组成员的讨论、反复实验和修改最终使问题得以解决。
在焊接电路板的时候组长带领我们精心布线,以保证电路板的美观和实用性,并细心检查焊点是否短路、虚焊,实现了整个电路的完整功能。
同时这些问题也使我们懂得任何的研究、实验都要非常细心,严肃对待,每一个环节都要细心把握,而一味的盲目追求结果,不注重过程和细节会使我们走许多弯路,甚至达不到最终的目的,或者导致实验的失败。
理论离不开实践,理论与实践的完美结合也使我们对所学知识进一步深入理解,只有在掌握理论的基础上在去动手实践才能真正锻炼自身的能力,本次设计本组成员认真负责,收获很大。
H
IL
s
"ML丈』
IL**f*p$£■J_-4--HtE一w■_
EJ-h_kl>K.'£
>z£r-i-占>匕h
FI
•1■?
!
!
虬」-
fa-I
…HF八
9E
I«5忙-
H
劲Bl'6
主要程序
9.2.1主程序:
voidmain()
{
//初始化语音芯片
led_init();
ISD_Init();
while
(1)
{
EX0=0;
if(key==0)
{
delay(5);
if(key==0)
{
if(kai==0)
{timer_init();led_finished();fasong
(2);
TR0=1;//计时器0开始计数计算距离*delay(3);
EX0=1;//开外部中断0while
(1);
}
elseif(kai==1)
{while
(1){
timer_init();led_traning();fasong
(2);
TR0=1;//计时器0开始计数计算距离*delay(3);
EX0=1;//开外部中断0delay(1000);
}
9.2.2语音定点播放程序:
voidISD1730_Set_Play(unsignedcharVOICE_NUM)
{
unsignedintAdd_ST,Add_ED;
unsignedcharAdd_ST_H,Add_ST_L,Add_ED_H,Add_ED_L;
do
{RdStatus();
}while((SRO_L&OxO1)||(!
(SR1&OxO1)));//if(SR0_Ly==1){systemErr}ClrInt();
GetToneAdd(VOICE_NUM,&Add_ST,&Add_ED);//取出当前语音的首末地址
Add_ST_L=(unsignedchar)(Add_ST&0x00ff);
Add_ST_H=(unsignedchar)((Add_ST>>8)&0x00ff);
Add_ED_L=(unsignedchar)(Add_ED&0x00ff);
Add_ED_H=(unsignedchar)((Add_ED>>8)&0x00ff);
//SPI初始条件
DISENISD1730_SS;
ISD1730_SCLK_H;
ISD1730_MOSI_L;
ENISD1730_SS;
//发送命令SET_PLAY
//从起始地址<S10:
S0>放音到结束地址<E10:
E0>结束
ISD1730_Spio(SET_PLAY);//
ISD1730_Spio(0x00);//
发送命令字节
发送数据字节1
ISD1730_Spio(Add_ST_L);//
ISD1730_Spio(Add_ST_H);//
发送数据字节2,放音起始地址低8位<S7:
S0>
发送数据字节3,放音起始地址高3位<S10:
S8>,ISD1730不用
ISD1730_Spio(Add_ED_L);//
ISD1730_Spio(Add_ED_H);//
发送数据字节4,放音结束地址低8位<E7:
E0>
发送数据字节5,放音结束地址低8位<E10:
E8>,ISD1730不用
ISD1730_Spio(0x00);//
DISENISD1730_SS;
发送数据字节6
do
{
RdStatus();
}while((SRO_L&OxO1)||((SR1&OxO4)));//if(SR0_LA0==1){systemErr}
}
9.2.3方波发送程序:
voidfasong(intnum)
{
while(num--)
{
fa=0;
nop();nop();nop();nop();
nop();nop();nop();nop();
nop();nop();nop();nop();
fa=1;
nop();nop();nop();nop();
nop();nop();nop();nop();nop();nop();nop();nop();nop();
}
fa=0;
}
9.2.3
定时器、外部中断、lcd显示发送程序
lcden=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);//数据指针清零write_com(0x80);
for(num=0;table0[num];num++)
{write_dat(table0[num]);delay
(1);
}
}
9.2.4外部中断0服务程序
INT0
voidexter0()interrupt0//外部中断程序
{
FM=1;//关警报
TR0=0;//定时器停止计时;
jishi=TH0;
jishi=(jishi<<8)|TL0;
ET0=0;
EX0=0;
length=jishi*17/100;//计算测量距离led_xian(length);//lcd显示结果dushu(length);//语音报数
}
9.2.5定时器0中断服务程序
voidTime0(void)interrupt1{
TR0=0;
EX0=0;
ET0=0;led_error();
FM=0;//错误警报
10、参考文献
【1]华中科技大学电工电子科技创新中心.SST单片机实践教程.第五版.武汉,2010
【2]杨欣.实例解读51单片机.北京.电子工业出版社,2011
【3]南通国芯微电子有限公司.STC89C51RC/R系列单片机器件手
册.2011
【4]张海英.基于单片机超声波测距仪的设计[M].科技信息,2011【5]王泽元.一种新型便捷的超声波测距系统的设计[M].华章,2011【6]赵小强.简易的超声波测距系统.天津理工大学学报,2010