基于温度补偿的超声波测距设计教材Word文件下载.docx
《基于温度补偿的超声波测距设计教材Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于温度补偿的超声波测距设计教材Word文件下载.docx(31页珍藏版)》请在冰豆网上搜索。
基于单片机的超声波测距方案,基于单片机的超声波测距是以单片机编程产生40KHZ的频率,经过发射驱动放大,使发射端发射超声波,经被测物反射回来,通过反射电路,放大,整形,处理,测出距离。
方案二:
基于CPLD的超声波测距系统。
基于CPLD的超声波测距系统采用CPLD器件控制超声波的发射与接收,从而计算出测量的距离,其运用VHDL编写程序,并且配合MAX-plusⅡ进行软硬件的仿真与调试。
利用CPLD具有性能高、成本低的特点,但是单片机能够准确计时,测距精度高,而且单片机控制方便,计算简单,所以综合更方面因素本文采用STC89C52单片机作为控制器,用动态扫描法实现LED数字显示,超声波驱动信号用单片机的定时器。
3硬件设计
3.1设计方案
本文介绍了一种采用脉冲回波方式,基于STC89C52单片机的超声波测距系统。
该系统充分利用单片机的硬件和软件资源,自动实现超声波的发射与接收控制。
该系统充分考虑了环境温度对超声波传播速度的影响,通过单片机中计数器所计超声波往返所经历的时间,通过公式换算就可以计算出超声波发射器与被测物之间的距离。
其主要包括单片机控制模块,超声波发射模块,超声波接收模块,LCD1602显示模块,温度补偿模块,报警模块,和扫描驱动模块这几个部分。
其可以实现非接触测量物体的距离,并通过LCD1602液晶显示出来,当距离小于1M时实现报警。
图3.1超声波测距仪总设计框图
3.2STC89C52外围电路设计
3.2.1单片机
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程
Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
STC89C52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
外形及引脚排列如图3.2所示。
钟电路引脚、I/O引脚、控制线引脚。
根据开发的需要和单片机的结构,我们就可以
图3.2STC89C52的芯片引脚图
STC89C52共有40个引脚,大致可分为4类:
电源引脚、时实现单片机的自动工作,即实现自动化!
3.2.2复位电路与震荡电路
单片机STC89C52作为主控芯片,控制整个电路的运行。
其需要一个复位电路,复位电路的功能是:
系统上电时提供复位信号,直至系统电源稳定后,撤消复位信号。
复位电路的设计图如图3.3所示。
图3.3复位电路图
STC89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别为该反向放大器的输入端和输出端。
这个反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。
外接12M振荡器及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。
由于外接电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度稳定性因此电容选择30pF
10pF。
图3.4振荡电路图
3.3LCD显示模块的设计
3.3.1字符型液晶显示模块
图3.5液晶面板
字符型液晶显示模块是一类专门用于显示字母,数字,符号等的点阵式液晶显示模块。
在显示器件上的电极图型设计,它是由若干个5*7或5*11等点阵符位组成。
每一个点阵字符位都可以显示一个字符。
点阵字符位之间有一空点距的间隔起到了字符间距和行距的作用,模块见图3.5。
3.3.2字符型液晶显示模块引脚
VSS为地电源,VDD接5V正电源,VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
RW为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
DB0~DB7为8位双向数据线,BLK和BLA是背光灯电源。
模块引脚如表3.1。
表3.1字符型液晶显示模块引脚
编号
符号
引脚说明
1
VSS
电源地
9
D2
DataI/O
2
VDD
电源正极
10
D3
3
VL
液晶显示偏压信号
11
D4
4
RS
数据/命令
12
D5
5
R/W
读/写
13
D6
6
E
使能信号
14
D7
7
D0
45
BLA
背光源正级
8
D1
16
BLK
背光源负级
3.3.3字符型液晶显示模块内部结构
液晶显示模块WM-C1602N的内部结构如图3.6分为三部份:
一为LCD控制器,二为LCD驱动器,三为LCD显示装置。
与单片机接口见图3.6
图3.6LCD1602内部结构
图3.7液晶接口
3.4温度传感器DS18B20电路设计
3.4.1温度传感器DS18B20简介
DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式,温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出,其工作电源既可在远端引入,也可采用寄生电源方式产生,多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信(每个温度传感器的ROM里有不同的识别号码),占用微处理器的端口较少,可节省大量的引线和逻辑电路。
以上特点使DS18B20非常适用于远距离多点温度检测系统。
DS18B20内部结构如图3.8所示,主要由4部分组成:
64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
DS18B20的管脚排列如图3.9所示,DQ为数字信号输入/输出端;
GND为电源地;
VDD为外接供电电源输入端。
ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,每个DS18B20的64位序列号均不相同,ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
图3.8DS18B20内部结构图图3.9DS18B20管脚图
3.4.2DS18B20的主要特性
(1)适应电压范围更宽,电压范围:
3.0~5.5V,在寄生电源方式下可由数据线供电。
(2)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
(3)DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。
(4)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。
(5)温范围-55℃~+125℃,在-10~+85℃时精度为±
0.5℃。
(6)可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温。
(7)在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。
(8)测量结果直接输出数字温度信号,以"
一线总线"
串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。
(9)负压特性:
电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。
计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时温度寄存器的值将加1,计数器1的预置将重新被装入,重新开始对低温度系数晶振产生的脉冲信号进行计数。
如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
图3.10中的斜率累加器用于补偿和修正测温过程中振荡器温度特性的非线性,以产生高分辨率的温度测量。
其输出用于修正计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。
图3.10DS18B20测温原理图
另外,由于DS18B20单总线通信功能是分时完成的,因此他有严格的时隙概念,因此读写时序很重要。
系统对DS18B20的各种操作必须按协议进行。
操作协议为:
初始化DS18B20(发复位脉冲)发ROM功能命令_发存储器操作命令处理数据。
3.5数据采集模块
DS18B20有4个主要的数据部件:
A:
64位激光ROM。
64位激光ROM从高位到低位依次为8位CRC、48位序列号和8位家族代码(28H)组成。
B:
温度灵敏元件。
C:
非易失性温度报警触发器TH和TL。
可通过软件写入用户报警上下限值。
D:
配置寄存器。
配置寄存器为高速暂存存储器中的第五个字节。
其中R0、R1:
温度计分辨率设置位,其对应四种分辨率如下表所列,出厂时R0、R1置为缺省值:
R0=1,R1=1(即12位分辨率),用户可根据需要改写配置寄存器以获得合适的分辨率。
表3.2分辨率关系表
R0
R1
分辨率/bit
最大转换时间/us
93.75
187.5
375
750
高速暂存存储器由9个字节组成,其分配如表3.2所示。
当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。
单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如表3.3所示。
对应的温度计算:
当符号位S=0时,直接将二进制位转换为十进制;
当S=1时,先将补码变为原码,再计算十进制值。
表3.3DS18B20存储器
温度LSB
温度MSB
TH
TL
保留
计数寄存器
8位CRC
3.6HC-SR04超声波测距模块
1.概述
HC-SR04超声波测距模块可实现2cm~4.5m的非接触测距功能,拥有2.4~5.5V的宽电压输入范围,静态功耗低于2mA,自带温度传感器对测距结果进行校正,同时具有GPIO,串口等多种通信方式,内带看门狗,工作稳定可靠。
主要技术参数如下表:
表3.4主要技术参数
电气参数
HC-SR04超声波测距模块
工作电压
DC2.4V~5.5V
静态电流
2mA
工作温度
-20~+70度
输出方式
电平或UART(跳线帽选择)
感应角度
小于15度
探测距离
2cm-450cm
探测精度
0.3cm+1%
UART模式下串口配置
波特率9600,起始位1位,停止位1位,数据位8位,无奇偶校验,无流控制。
本模块实物图及尺寸如图3.10所示
图3.10HC-SR04正反面图
本模块的尺寸:
45mm*20mm*1.6mm。
板上有两个半径为1mm的机械孔
2.电平触发测距工作原理
在模块上电前,首先去掉模式选择跳线上的跳线帽,使模块处于电平触发模式。
电平触发测距的时序如图3.11所示:
图3.11HC-SR04测距时序图
图3.11表明:
只需要在Trig/TX管脚输入一个10US以上的高电平,系统便可发出8个40KHZ的超声波脉冲,然后检测回波信号。
当检测到回波信号后,模块将距离值转化为340m/s时的时间值的2倍,通过Echo端输出一高电平,可根据此高电平的持续时间来计算距离值。
即距离值为:
(高电平时间*340m/s)/2。
3.串口触发测距工作原理
在模块上电前,首先插上模式选择跳线上的跳线帽,使模块处于串口触发模式。
在此模式下只需要在Trig/TX管脚输入0X55(波特率9600),系统便可发出8个40KHZ的超声波脉冲,然后检测回波信号。
当检测到回波信号后,模块还要进行温度值的测量,然后根据当前温度对测距结果进行校正,将校正后的结果通过Echo/RX管脚输出。
输出的距离值共两个字节,第一个字节是距离的高8位(HDate),第二个字节为距离的低8位(LData),单位为毫米。
即距离值为(HData*256+LData)mm。
4.串口触发测温工作原理
在此模式下只需要在Trig/TX管脚输入0X50(波特率9600),系统便启动温度传感器对当前温度进行测量,然后将温度值通过Echo/RX管脚输出。
测量完成温度后,本模块会返回一个字节的温度值(TData),
实际的温度值为TData-45。
例如通过TX发送完0X50后,在RX端收到0X45,则此时的温度值为[69(0X45的10进制值)-45]=24度。
3.7报警电路设计
如果距离小于1M,则单片机STC89C52则给P3.7口一个信号,使得报警电路工作,实现报警。
如图3.11所示。
图3.11报警电路图
4软件设计
4.1系统软件设计说明
进行测量控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个测量对象的实际需要设计应用程序。
因此,软件设计在微机测量控制系统设计中占重要地位。
本软件设计主要是对距离进行测量、显示。
因此,整个软件可分为按照硬件电路对单片机位定义;
发射子程序;
接收子程序;
显示子程序;
延时子程序等。
4.2主程序的设计
图4.1主程序流程图
主程序首先是对系统环境初始化,设置定时器T0工作模式为16位定时计数器模式。
置位总中断允许位EA并给显示端口P1和P3清0。
然后调用超声波发生子程序送出一个超声波脉冲,为了避免超声波从发射器直接传送到接收器引起的直射波触发,需要延时约0.1ms后,才打开外中断0接收返回的超声波信号。
由于采用的是12MHz的晶振,计数器每计一个数就是1μs,当主程序检测到接收成功的标志位后,将计数器T0中的数(即超声波来回所用的时间)按式计L=(△T/2)*V算,即可得被测物体与测距仪之间的距离,设计时取20℃时的声速为344m/s则有:
L=(△T/2)*V=172T0/10000cm
其中,T0为计数器T0的计算值。
测出距离后结果将以十进制BCD码方式送往LCD显示约0.5s,然后再发超声波脉冲重复测量过程。
4.3超声波发射子程序和超声波接收中断子程序设计
超声波测距仪主程序利用外中断0检测返回超声波信号,一旦接收到返回超声波信号(即INT0引脚出现低电平),立即进入中断程序。
进入中断后就立即关闭计时器T0停止计时,并将测距成功标志字赋值1。
如果当计时器溢出时还未检测到超声波返回信号,则定时器T0溢出中断将中断0关闭,并将测距成功标志字赋值2以表示此次测距不成功。
图4.2外部中断流程图
4.4温度测量子程序设计
DS18B20对时序和电性参数要求很高,所以单片机在通过单总线接口访问DS18B20时,其工作流程必需要遵守严格的操作时序,如果顺序中任意一步缺少
或顺序错乱,DS18B20将不会响应。
DS18B20的操作顺序是:
第一步:
对DS18B20初始化;
第二步:
发送ROM命令;
第三步:
发送功能命令。
超声波测距系统上电后,单片机开始初始化DS18B20,检测现场温度,软件控制DS18B20的具体流程如图4.3所示。
图4.3DS18B20总体操作流程
4.5报警子程序
如果距离小于下限或大于上限,则单片机STC89C52则给IO口一个信号,使得报警电路工作,实现报警。
图4.4报警子程序
4.6距离计算子程序
本段程序中temp是从DS18BB0读取的16位二进制温度数值,在对速度进行温度补偿的时候需要根据DS18B20协议转换成浮点数tp。
voidcalculater()
{
floatv;
//声速
floattp;
//温度
time=TH0*256+TL0;
TH0=0;
TL0=0;
if(temp<
0x8000)//温度为正直
tp=temp*0.0625;
else//温度为负值
tp=temp*(-0.0625);
c=331.4+0.61*tp;
//温度补偿
distance=(time*c/(2*100))/100;
}
5结果与结论
5.1结果
设计的最终结果是使超声波测距仪能够产生超声波,实现超声波的发送与接收,从而实现利用超声波方法测量物体间的距离,以数字的形式显示测量距离。
经过实验表明,这套系统软硬件设计合理、抗干扰能力较好、实时性良好,实验结果比较符合预期要求。
5.2结论
采用高精度的温度传感器DS18B20可实现对超声波测距系统的温度测量和补偿,即根据经验公式,对波速进行校正。
通过引入DS18B20,使超声波测距系统的测量精度有了很大的提高,使得应用领域也有所扩展,其不仅可用于倒车雷达、物位测量等一般场合,且在移动机器人领域将会有广泛的应用前景。
致谢
随着论文的完成,我的大学生活,也得以划下了完美的句点。
经过几个月的查找资料、整理材料、设计方案和写论文,今天终于可以顺利的完成论文的最后的谢辞了。
设计得以完成,要感谢的人实在太多了,在本次毕业设计的过程中非常感谢周荣生老师的细心指导。
导师渊博的专业知识,严谨的治学态度,精益求精的工作作风,对我影响深远,不仅使我树立了远大的学术目标、掌握了基本的研究方法,还使我明白了许多待人接物与为人处世的道理。
本论文从选题到完成,每一步都是在周老师的指导下完成的,倾注了大量的心血。
在此,谨向赵老师表示崇高的敬意和衷心的感谢!
赵老师要指导很多同学的设计,加上本来就有的教学任务,工作量之大可想而知,但在一次次的教导中,使我在设计之外明白了做学问所应有的态度。
同时,设计的顺利完成,离不开其它各位老师、同学和朋友的关心和帮助,感谢徐静、胡燕同学给予我的帮助。
在整个的设计中,各位老师、同学和朋友积极的帮助我查资料,提供有利于论文写作的建议和意见,在他们的帮助下,设计得以不断的完善,最终帮助我顺利的写完论文。
通过此次的设计,我学到了很多知识,在设计过程中,通过查资料和搜集有关的文献,培养了自学能力和动手能力,由被动的接受知识转换为主动的寻求知识,这是学习方法上的一个很大的突破。
通过毕业设计,我们学会了如何将学到的知识转化为自己的东西,学会了怎么更好的处理知识和实践相结合的问题。
最后再一次感谢所有在毕业设计中曾经帮助过我的良师益友和同学,以及在设计中被我引用或参考的论著的作者。
参考文献
[1]赵晓安.MCS-51单片机原理及应用.天津:
天津大学出版社,2001.3
[2]夏继强.单片机实验与实践教程.北京:
北京航空航天大学出版社,2001
[3]余锡存、曹国华,单片机原理及接口技术,陕西:
西安电子科技大学出版社,2002.8
[4]李建忠,单片机原理及应用,陕西:
西安电子科技大学出版社,2004.1
[5]肖来胜、冯建兰,单片机技术实用教程,武汉:
华中科技大学出版社,2004.10
[6]蔡美琴、张为民,MSC-51系列单片机系统及其应用,北京:
高等教育出版社(第二版),北京,2005.7v
[7]李华.MCS-51系列单片机实用接口技术[M].北京:
北京航空航天大学出版社,1993
[8]周航慈.单片机应用程序设计技术[M].北京:
北京航空航天大学出版社,1991
附