带温度补偿的超声波测距系统设计

合集下载

基于单片机带温度补偿的超声波测距设计报告

基于单片机带温度补偿的超声波测距设计报告

基于单片机的超声波测距设计报告摘要: 超声波具有指向性强,能量消耗缓慢,传播距离较远等优点,所以,在利用传感器技术和自动控制技术相结合的测距方案中,超声波测距是目前应用最普遍的一种,他广泛应用于防盗、倒车雷达、水位测量、建筑施工工地以及一些工业现场。

本课题详细介绍了超声波传感器的原理和特性,以及STC公司的STC89C52的单片机的性能和特点,并在分析了超声波测距的原理的基础上,指出了设计测距系统的不足并加以改进,将温度引起的误差考虑在内并且加以修正,给出了以STC89C52单片机为核心的低成本、高精度、液晶显示超声波测距系统的硬件电路和软件设计方法。

该系统电路设计合理、工作稳定、性能良好、检测速度快、计算简单并且做到了可设计报警范围的功能,在测量精度方面能达到工业使用的要求。

关键词:单片机;液晶显示;报警;测距Ultrasonic distance measurement based on single chipAbstract:Ultrasound has a strong point, the energy consumption of the slow spread of the advantages of distance, so the use of sensor technology and automatic control technology, the program combines distance, ultrasonic distance measurement is the most common one, and he widely used in security, parking sensor, water level measurement, construction sites and some industrial sites.This subject introduces the principles and characteristics of ultrasonic sensors, and microcontroller STC89C52 STC's performance and characteristics, and the analysis of the ultrasonic distance measurement based on the principle that the lack of design ranging system and make improvements, will into account the error due to temperature and should be amended to STC89C52 given low-cost microcontroller as the core, high-accuracy, liquid crystal display ultrasonic ranging system of hardware and software design methods. The system circuit design is reasonable, stable, good performance, fast detection of simple calculation and can be designed to achieve the alarm range of functions to achieve precision in the measurement requirements for industrial use. Keywords:microcontroller; LCD display; alarm; ranging目录1 绪论 (5)1.1 研究的背景 (5)1.2研究的主要内容 (5)1.3应解决的关键问题 (5)2 电路方案论证 (5)2.1方案比较 (5)2.1.1 激光测距 (5)2.1.2 超声波测距 (6)2.2电路总体方案 (6)3单片机概述 (7)3.1 STC89C52主要性能 (7)3.2 STC89C52外部结构及特性 (7)3.3 STC89C52内部组成 (8)4 超声波测距模块 (10)4.1 超声波传感器介绍 (10)4.2 HC-SR04超声波测距模块的性能特点 (11)4.3 HC-SR04的管脚排列和电气参数 (12)4.3.1 管脚简介 (12)4.3.2 HC-SR04的电气参数 (12)4.4超声波时序图 (12)5系统硬件电路设计 (14)5.1单片机最小系统 (14)5.1.1 STC89C52芯片 (14)5.1.2 复位电路 (14)5.1.3 晶振电路 (15)5.2 驱动显示电路及报警电路 (16)5.2.1 1602LCD液晶显示屏 (16)5.2.2 蜂鸣器报警 (17)5.3 HC-RS04超声波测距原理 (18)5.4 5V稳压电路 (19)5.5温度检测电路 (19)5.5.1 温度检测方案的分析 (19)5.5.2 数字温度传感器DS18B20简介 (20)5.5.3 DS18B20的结构及电路 (20)6系统程序的设计 (21)6.1主程序 (21)6.2显示数据子程序 (22)6.3报警子程序 (22)6.4按键子程序 (23)结论 (25)参考文献 (26)附录(A) (27)附录(B) (28)致谢 (46)1 绪论1.1 研究的背景单片机技术的迅速兴起与蓬勃发展,其稳定、安全、高效、经济等优点十分突出,所以其应用也十分广泛。

温度补偿超声波测距仪

温度补偿超声波测距仪

摘要本文给出了系统总体框架、硬件电路、软件设计和程序流程图,并在硬件平台上实现了所设计的功能。

超声测距是一种非接触式的检测方式。

与其它方法相比,如电磁的或光学的方法,它不受光线、被测对象颜色等影响。

对于被测物处于黑暗、有灰尘烟雾、电磁干扰、有毒等恶劣的环境下有一定的适应能力。

而本文介绍的基于单片机STC90C516RD+的超声波测距系统的设计方案与软硬件实现。

采用温度传感器DS18B20 采集温度数据,液晶显示屏LCD1602C 显示温度数据及来回波的时间,当环境温度变化较大时,提取测得的温度,根据不同的温度对超声波测距系统的声速进行修正。

测距时接收到回波,点亮绿色发光二极管;当没有回波时,定时器溢出,点亮红色发光二极管。

关键词:红色发光二极管;超声波测距;温度补偿;温度传感器;电磁干扰目录摘要 (Ⅰ)第1章绪论 (1)1.1 概述 (1)1.2 系统软硬件的调试 (1)第2章系统设计原理 (2)2.1 系统主要硬件结构 (2)2.2 单片机主机系统介绍 (2)2.2.1 单片机控制模块 (2)2.2.2 温度数据采集模块 (2)2.2.3 主件LCD1602C的结构 (3)2.3 超声波测距的设备 (4)2.3.1 超声波测距系统的硬件电路设计 (4)2.3.2 超声波发射电路 (4)2.3.3 超声波检测接收电路 (5)第3章系统的软件设计 (6)3.1 语言的选用 (6)3.2 系统控制流程 (7)3.3 程序设计流程图 (10)3.4 超声波测距仪的算法设计 (12)3.5 超声波发生子程序和接收中断程序 (12)3.6 电路仿真 (12)第4章安装调试 (13)第5章电路特点和误差分析 (14)结论 (15)参考文献 (16)附录 (17)致谢 (24)第1章绪论1.1 概述制作超声波测距系统,并外加温度补偿使测距更精确。

前期制作超声波发送与接收电路,经过调试正常可用后,编写相应的超声波程序,完成对于整个测距系统的控制。

具有温度补偿功能的超声波测距系统设计

具有温度补偿功能的超声波测距系统设计

1 引 言
2 超 声 波测 距 系统 原 理
超 声 波 测 距 与红 外 线 、激 光 测 距 相 比 ,其 对 外 界 电磁
超 声 波测距 系统 如 图 1所 示 。硬 件 主 要 有 :超 声 波 发
场 、光 线及 色彩 敏感 度低 ,更 适 于 电磁 干扰 强 、有 毒 、黑 暗 、 射电路 、超声 波接 收 电路 、温度 检测 电路 、AT89C51单 片机
Abstract: In order to overcom e the error of environm ent tem perature fluctuation caused by the ultrasonic ranging system ,this paper uses the tem perature sensor DS18B20 to acquire tem perature data in tim e.W hen the tem perature in the environm ent changes,the tem perature sensor DS1 8B20 extracts tem perature and corrects the tem perature using the com puter tim ely according to the c0rresponding relationship betw een the value of the tem perature and ultrasonic w ave to correct the change of tem perature caused by the error produced by the ultrasonic ranging system .The system takes single chip AT89C5 1 as the core,and designs temperature acquisition,ultrasonic transm ission and reception and other hardware circuits and softw are parts.T he test show s that the system can effectively avoid the errors caused by the change of the tem perature in the ranging system w ith the m easurem ent accuracy up to 1 . Keywords: ultrasonic ranging; tem perature com pensation;A T89C5 1; DS1 8B20

AT89C2051单片机结合温度补偿的超声波测距系统设计

AT89C2051单片机结合温度补偿的超声波测距系统设计

AT89C2051单片机结合温度补偿的超声波测距系统设计0 引言超声波是一种在弹性介质中的机械震荡,它是由与介质相接触的震荡源所引起的,其频率在20kHz以上。

由于超声波的速度相对于光速要小得多,其传播时间就比较容易检测,并且易于定向发射,方向性好,强度好控制,因而利用超声波测距在很多距离探测应用中有很重要的用途,包括无损检测、过程测量、机器人测量和定位,以及流体液面高度测量等。

利用单片机控制超声波检测往往比较迅速、方便、计算简单、易于实现,并且测量精度高。

1 系统设计超声波测距的最远距离和分辨能力,不仅需要良好的换能器,也需要合理的驱动电路及回波探测电路。

对发射而言,为了使电能到机械能的转换效益最大,换能器必须工作在它的共振频率处。

对接收电路而言,为了使机械能到电能的转换效率最大,最佳工作点必须取在反共振频率处,在传感器系统中,发射部分的共振频率要与接收部分的反共振频率相匹配。

同时,温度对声速有着较大的影响,温度补偿无疑是减少误差的很好方法。

本设计选用T40-16T/R超声波传感器,设计了一种以AT89C2051单片机为核心的低成本、高精度、微型化数字显示超声波测距仪。

为了进一步提高系统测量精度和系统稳定性,在硬件上增加了温度传感器测温电路,采取声速预置和媒质温度测量相结合的办法对声速进行修正,降低了温度变化对测距精度的影响。

有力提高了超声波测距系统的测量精度。

设计系统由单片机主控模块、显示模块、超声波发射模块、接收模块、温度测量补偿模块等五个模块组成,组成框图。

超声波发射电路由单片机输出端直接驱动超声波发送,超声波接收电路输出端与单片机相连接,单片机的输出端与显示电路输入端相连接。

单片机在TO时刻发射方波,同时启动定时器开始计时,当收到回波后,产生一负跳变到单片机中断口,单片机响应中断程序,定时器停止计数。

计算时间差即可得到超声波在媒介中传播的时间t,由此便可计算出距离。

2.1 超声波测距单片机控制系统单片机AT89C2051采用12MHz高精度的晶振,以获得较稳定时钟频率,减小测量误差。

具有温度补偿功能的超声波测距系统设计

具有温度补偿功能的超声波测距系统设计

具有温度补偿功能的超声波测距系统设计超声波测距系统运行过程中,环境温度会对测距系统的测量精度造成较大影响,为了降低环境温度波动对超声波测距系统精确度的影响,需要在测距系统中增加温度补偿系统。

在具有温度补偿功能的超声波测距系统设计中,本文以单片机为控制核心,并使用温度传感器进行环境温度测量,从而实现在不同环境温度下的超声波波速确定,提高测量精度。

标签:温度补偿;超声波测距系统;单片机0 引言相较于其他测距方式,超声波测距具有更高的电磁抗干扰能力,并且对空气质量和环境光照强度要求更低,另外由于超声波测距属于非接触测距技术,用途更加广泛,同时超声波测距系统可靠性更高,制造运行所需的成本更低,当前已经取得广泛使用。

但是超声波对温度较为敏感,通过研究发现,当环境温度升高1℃时,声速下降0.607m/s。

1 超声波测距系统工作原理超声波测距系统工作过程中,由超声波发射系统发出超声波,由接收系统接收反射回的超声波,当超声波发出后,测距系统中的计数器开始同步工作,当接收器接收到第一个反射信号后,计时停止,通过当前环境温度下的声速与计时时间的相乘计算即可实现距离测量。

而要确定不同环境温度下的声速,可以通过以下公式确定声速:在超声波测距系统设计中,可以将声速公式代入到距离计算公式中,则可通过环境温度和计时时间确定距离。

在具有温度补偿功能的超声波测距系统设计中,在超声波测距系统中加入温度传感器,并将测得的环境温度传入单片机,由单片机中的程序进行距离计算,通过显示屏进行距离显示,在系统运行中,由于充分考虑了环境温度因素,所以可以极大提升超声波测距系统的精确度[1]。

2 具有温度补偿功能的超声波测距系统设计2.1 温度补偿系统设计温度补偿系统中最重要的就是温度传感器选取和与系统的连接,需要保证温度传感器有较高的灵敏度和较强的抗干扰能力,在完成温度测量后,将测量值输入单片机中,由相关程序进行距离计算。

本文选取了DS18B20温度传感器,传感器结构为两条数据总线,这两条总线能够实现温度转换和数据传输功能,在温度传感器运行过程中,可以将数据总线直接与单片机进行连接,将测量到的数据输入单片机中,在该过程中不需进行A/D转换,并且另一条数据线用于传输温度转换指令和读写指令。

基于温湿度补偿的超声波测距系统的研究

基于温湿度补偿的超声波测距系统的研究

在进行基于温湿度补偿的超声波测距系统研究时,需要全面评估温湿度对超声波传播的影响。

我们来探讨温湿度对超声波传播的影响。

温度和湿度会改变空气中声速的大小,进而影响超声波在空气中的传播速度和路径。

研究中需考虑温湿度变化对超声波测距系统的测量精度和稳定性的影响。

在撰写研究的文章时,我们将采用从简到繁、由浅入深的方式来探讨主题。

简要介绍超声波测距系统的基本原理和应用领域,然后深入探讨温湿度对超声波传播的影响,以及温湿度补偿的原理和方法。

我们将详细分析基于温湿度补偿的超声波测距系统的研究现状和发展趋势,最后总结回顾相关内容,共享个人观点和理解。

超声波测距系统是一种利用超声波在空气中传播的时间来实现距离测量的技术。

温湿度对超声波传播的影响主要体现在两个方面:一是温湿度会改变空气中声速的大小,影响超声波传播的速度;二是温湿度变化会引起超声波在空气中的散射和衰减,影响超声波传播的路径和稳定性。

针对温湿度对超声波传播的影响,研究人员提出了基于温湿度补偿的超声波测距系统。

这种系统可以通过对温湿度进行实时监测和测量,利用补偿算法来实现对超声波测距误差的校正,从而提高测量精度和稳定性。

常用的温湿度补偿方法包括基于实时监测数据的修正算法和基于模型预测的补偿算法。

当前,基于温湿度补偿的超声波测距系统的研究主要集中在以下方面:一是温湿度对超声波传播影响机理的深入研究;二是温湿度补偿算法的改进和优化;三是基于温湿度补偿的超声波测距系统在工业、军事和民用领域的应用探索。

基于温湿度补偿的超声波测距系统的研究具有重要的理论意义和实际应用价值。

但目前仍存在一些挑战和难点,如温湿度变化导致的超声波传播不确定性问题、温湿度补偿算法的精度和实时性等方面需要进一步研究和解决。

个人观点上,我认为基于温湿度补偿的超声波测距系统是一个具有潜力和前景的研究领域。

随着传感器技术和智能算法的不断发展,相信这一领域将迎来更多的创新和突破,为超声波测距技术的应用提供更多可能性。

基于单片机的超声波测距及温度补偿设计与实现

基于单片机的超声波测距及温度补偿设计与实现

期末课程设计学院:软件学院_ __ 专业:软件工程_ __ 年级:2009级__ _ 课程:_单片机应用技术_ _姓名:_郭汉杰_ _ ___ 学号:_123012009138 __ ___二〇一二年六月基于单片机的超声波测距及温度补偿设计与实现摘要本文介绍了基于单片机STC90C516RD+的超声波测距系统的设计方案与软硬件实现。

采用温度传感器DS18B20 采集温度数据,液晶显示屏LCD1602C 显示温度数据及来回波的时间,当环境温度变化较大时,提取测得的温度,根据不同的温度对超声波测距系统的声速进行修正。

测距时接收到回波,点亮绿色发光二极管;当没有回波时,定时器溢出,点亮红色发光二极管。

本文给出了系统总体框架、硬件电路、软件设计和程序流程图,并在硬件平台上实现了所设计的功能。

关键词STC90C516RD+;超声波测距;温度补偿;温度传感器;液晶显示器一、引言1.1超声波测距系统概述随着社会的发展,超声波测量及控制变得越来越重要。

本文采用单片机STC90C516RD+设计了超声波测距及温度补偿系统。

单片机STC90C516RD+能够根据温度传感器DS18B20所采集的温度数据来修正测距系统中的声速,从而使超声波测得的距离更准确。

同时,当温度高于设定的温度时,单片机启动蜂鸣器发出报警,并点亮绿色发光二极管;当温度低于设定的温度时,蜂鸣器停止报警。

所有测距和温度数据均通过液晶显示器LCD1602 显示出来。

当收到回波时,测距成功,并在屏幕上现实来回波的时间及距离,并可看到动态变化的当前温度和来回波时间;当未收到回波时,定时器溢出,测距失败,在屏幕上显示出错。

1.2本设计任务和主要内容制作超声波测距系统,并外加温度补偿使测距更精确。

前期制作超声波发送与接收电路,经过调试正常可用后,编写相应的超声波程序,完成对于整个测距系统的控制。

设计的最终结果是使超声波测距仪能够产生超声波,实现超声波的发送与接收,从而实现利用超声波方法测量物体间的距离。

带温度补偿的360_超声波测距测速系统设计

带温度补偿的360_超声波测距测速系统设计

收稿日期: 2010-04-15基金项目: 梅州市科学技术局、嘉应学院联合自然科学研究重点基金资助项目( 2009KJZ04 ) ; 梅州市科技计划重点基金资助项目( 2009A21)作者简介: 朱向庆( 1979- ) , 男, 广东梅州人, 讲师, 硕士, 主要研究方向为短距离无线通信、检测技术与自动化装置。

陈志雄( 1980-) , 男, 广东梅州人, 实验师, 硕士, 主要研究方向为嵌入式系统、数据挖掘。

文章编号: 1004- 2474( 2011) 02-0315- 05带温度补偿的360b超声波测距测速系统设计朱向庆, 陈志雄( 嘉应学院电子信息工程学院, 广东梅州514015)摘要: 采用ST C12C5A60S2 单片机控制超声波测距模块和减速步进电机, 利用超声波的反射特性进行360b范围的距离测量, 结合温度补偿算法计算系统到被测物体的距离和相对速度。

系统使用nRF24L01 无线通信芯片将测得的数据传输给计算机, 在计算机中用Visual Basic 编写的终端监控程序进行数据处理和图像显示, 并控制系统的旋转角度、测量频率和测量范围。

关键词: 超声波测距; 超声波测速; STC12C5A60S2; nRF24L01中图分类号: T N914; T P274 文献标识码: ADesign of 360b Ultrasonic Ranging and VelocityDetecting System with Temperature CompensationZHU Xiangqing, CHEN Zhixiong( S chool of Elect ronic and Inf ormat ion E ngineering, Jiaying U niver sit y, Meizhou 514015, China)Abstract: Single chip micr ocomput er ST C12C5A60S2 was used to contro l ultr aso nic distance measurementmodule and gear stepping mo tor in this paper. The reflection char act er istics of ultrasonic w ave w as used to measur edistance in the range of 360b; the distance and relative velo city between the system and measur ed object was calculatedwith tem per at ur e compensatio n method. At the same time, w ireless communication chip nRF24L01 w as used totransfer measur ed data to com puter. Visual Basic w as used to process data and display image in term ina l monito ringpr og ram, so as t o contro l the r otatio n ang le, measuring frequency and measuring range o f sy stem.Key words: ultrasonic r ang ing; ultr aso nic velo city detecting; STC12C5A60S2; nRF24L010 引言超声波是频率高于20 kHz 的声波, 其波长短,方向性好, 穿透能力强, 易于获得较集中的声能, 在水中传播距离远。

用LM92温度传感器补偿的高精度超声波测距

用LM92温度传感器补偿的高精度超声波测距

用LM92温度传感器补偿的高精度超声波测距magicchip 发表于 2008-4-9 16:21:00摘要: 本文利用温度传感器进行温度的测量,通过测量当前的温度对超声波传播速度进行补偿得到一个稳定、精确的超声波测距系统,阐述了设计原理和具体实现的方法。

关键词: 测距;超声波;温度传感器超声波测距原理超声波测距的原理是利用超声波在空气中的传播速度为已知,测量声波在发射后遇到障碍物反射回来的时间,根据发射和接收的时间差计算出发射点到障碍物的实际距离。

由此可见,超声波测距原理与雷达原理是一样的。

测距的公式表示为:L=C×T式中L为测量的距离长度;C为超声波在空气中的传播速度;T为测量距离传播的时间差(T为发射到接收时间数值的一半)。

超声波测距主要应用于倒车提醒、建筑工地、工业现场等的距离测量,虽然目前的测距量程上能达到百米,但测量的精度往往只能达到厘米数量级。

由于超声波易于定向发射、方向性好、强度易控制、与被测量物体不需要直接接触的优点,是作为液体高度测量的理想手段。

在精密的液位测量中需要达到毫米级的测量精度,但是目前国内的超声波测距专用集成电路都是只有厘米级的测量精度。

通过分析超声波测距误差产生的原因,提高测量时间差到微秒级,以及用LM92温度传感器进行声波传播速度的补偿后,我们设计的高精度超声波测距仪能达到毫米级的测量精度。

超声波测距误差分析根据超声波测距公式L=C×T,可知测距的误差是由超声波的传播速度误差和测量距离传播的时间误差引起的。

时间误差当要求测距误差小于1mm时,假设已知超声波速度C=344m/s (20℃室温),忽略声速的传播误差。

测距误差s△t<(0.001/344) ≈0.000002907s 即2.907ms。

在超声波的传播速度是准确的前提下,测量距离的传播时间差值精度只要在达到微秒级,就能保证测距误差小于1mm 的误差。

使用的12MHz晶体作时钟基准的89C51单片机定时器能方便的计数到1μs的精度,因此系统采用89C51定时器能保证时间误差在1mm的测量范围内。

基于温度补偿的超声波测距设计

基于温度补偿的超声波测距设计

·1 4 ·
计量技术 20071No 7
由于芯片采用 1 - wire 总线方式 ,不需要外围 调理电路 ,可以和单片机直接相连 ,控制简单易行 。 单片机可以实时读取温度的数值 ,从而计算出该温 度下的超声波速度 ,完成对超声波速度温度的补偿 。
4 控制部分
该部分以 A T 89C51 单片机为核心 ,是本系统 的重点 ,要实现各部分电路的控制和响应 。实现环 境温度的采集 ,控制超声波的发射 ,液晶屏的显示 。 A T 89C51 的 P1 口与液晶显示屏连接 ,电压比较器 的输出端和外部中断 IN T0 相连 ,P010 与 CMOS 多 谐振荡器的控制端相连 。A T89C51 首先通过数字 温度传感器 DS1820 读取环境温度的值 ,通过软件 使 P010 口输出高或低电平 ,从而控制超声波的发 射 。P011 通过一个开关二极管 IN4148 与比较器的 基准电压产生电路连接 ,发射超声波时置 P011 为 “1”,输出的电平可以抑制比较器的翻转 ,从而能有 效地抑制发射器发射的超声波直接辐射到接收器而 导致错误的检测 。同时 ,它使系统在发出超声波时 T0 开始计数 ,在收到反射波时停止计数 ,得到回波 时间 ,并结合环境温度值计算测得的距离 ,控制液晶 屏显示当前结果 ;另外 ,还可设置报警临界值 ,当实 测距离小于临界值时就发出报警信号 。
5 结束语
本系统利用超声波传感器实现无接触式空气 测距 ,并充分考虑到测量环境温度对超声波传递 速度的影响 ,通过温度补偿的方法对传递速度予 以校正 ,因此具有测量准确度高 、抗干扰能力强 、 反应速度快等特点 。通过与不同的标准距离进行 反复的对照测试 ,其误差约为 2~3mm ,最大测距 可达 10m ,适用于各种水文液位测量 、障碍物的识 别以及车辆自动导航等领域 ,因此具有广阔的应 用前景 。

具有温度补偿功能的超声波测距系统设计

具有温度补偿功能的超声波测距系统设计

D y n a mi c Me a s u r e m e n t M i n i s t r y o f E d u c a t i o n ,N o r t h U n i v e r s i t y o f C h i n a , T a i y u a n 0 3 0 0 5 1 , C h i n a )
De s i g n o f Ul t r a s o n i c Di s t a n c e Me a s u r e me n t S y s t e m wi t h Te mp e r a t u r e Co mp e n s a t i o n W ANG Z h a n x u a n ,Z HAO Do n g ’ e,DAN G Ha o h u a i ,Z HAN G X i a o me i ,L I Y i n g
【 K e y w o r d s 】 u l t r a s o n i c d i s t a n c e m e a s u r e m e n t ; t e m p e r a t u r e c o m p e n s a t i o n ; S T C 8 9 C 5 2 ; t e m p e r a t u r e s e n s o r ; u l t r a s o n i c s e n s o r
me t h o d o f t e mp e r a t u r e c o mp e n s a t i o n i s i n t r o d u c e d t o r e a l i z e t h e a c c u r a t e me a s u r e me n t o f d i s t a n c e f r o m 5 c e n t i me t e r s t o 4 me t e r s . T h e s y s t e m c o n s i s t s o f S T C8 9 C 5 2 s i n g l e c h i p ,DS 1 8 B2 0 t e mp e r a t u r e s e n s o r ,HC —S R0 4 u l t r a s o n i c s e n s o r a n d d i g i t — l a d i s p l a y c i r c u i t . T e s t r e s u l t s s h o w t h a t t h e me a s u r e me n t e r r o r o f t h e s y s t e m i s l e s s t h a n 3 c e n t i me t e r s . B e c a u s e o f i t s s i mp l e s t r u c t u r e o f h a r d wa r e, l o w c o s t a n d r e l i a b l e p e r f o r ma n c e,t h e s y s t e m h a s c e r t a i n p r a c t i c a l v lu a e.

带温度补偿的超声波测距系统设计

带温度补偿的超声波测距系统设计

带温度补偿的超声波测距系统设计Revised by Petrel at 2021南通大学传感器与检测课程设计(预习)报告项目:带温度补偿的超声波测距系统设计班级:姓名:学号:联系方式:学期:2015-2016-2前言.................................... 错误!未指定书签。

一.课题调研 ............................ 错误!未指定书签。

1.1传感器选型 ......................... 错误!未指定书签。

1.1.1可选温度传感器DS18B20 ........... 错误!未指定书签。

1.1.2可选用AD590温度传感器.......... 错误!未指定书签。

1.2超声波传感器 ....................... 错误!未指定书签。

1.2.2选用MAX232芯片做发射电路....... 错误!未指定书签。

1.2.3超声波发射电路.................. 错误!未指定书签。

1.2.4超声波接收电路.................. 错误!未指定书签。

1.2.5选用TL074芯片作为接受电路...... 错误!未指定书签。

1.3多种实现方法。

..................... 错误!未指定书签。

1.3.1方法一:系统结构框图............ 错误!未指定书签。

1.3.2工作原理........................ 错误!未指定书签。

1.3.3方案二:系统结构图如下。

........ 错误!未指定书签。

二.总体设计 ............................ 错误!未指定书签。

2.1电路图............................. 错误!未指定书签。

2.1.1超声波模块电路.................. 错误!未指定书签。

2.2.1主程序设计。

基于单片机的超声波测距及温度补偿设计与实现

基于单片机的超声波测距及温度补偿设计与实现

期末课程设计学院:软件学院_ __ 专业:软件工程_ __ 年级:2009级__ _ 课程:_单片机应用技术_ _姓名:_郭汉杰_ _ ___ 学号:_123012009138 __ ___二〇一二年六月福建师范大学软件学院2009级软件工程基于单片机的超声波测距及温度补偿设计与实现摘要本文介绍了基于单片机STC90C516RD+的超声波测距系统的设计方案与软硬件实现.采用温度传感器DS18B20 采集温度数据,液晶显示屏LCD1602C 显示温度数据及来回波的时间,当环境温度变化较大时,提取测得的温度,根据不同的温度对超声波测距系统的声速进行修正。

测距时接收到回波,点亮绿色发光二极管;当没有回波时,定时器溢出,点亮红色发光二极管。

本文给出了系统总体框架、硬件电路、软件设计和程序流程图,并在硬件平台上实现了所设计的功能。

关键词STC90C516RD+;超声波测距;温度补偿;温度传感器;液晶显示器一、引言1.1超声波测距系统概述随着社会的发展,超声波测量及控制变得越来越重要。

本文采用单片机STC90C516RD+设计了超声波测距及温度补偿系统。

单片机STC90C516RD+能够根据温度传感器DS18B20所采集的温度数据来修正测距系统中的声速,从而使超声波测得的距离更准确.同时,当温度高于设定的温度时,单片机启动蜂鸣器发出报警,并点亮绿色发光二极管;当温度低于设定的温度时,蜂鸣器停止报警。

所有测距和温度数据均通过液晶显示器LCD1602 显示出来。

当收到回波时,测距成功,并在屏幕上现实来回波的时间及距离,并可看到动态变化的当前温度和来回波时间;当未收到回波时,定时器溢出,测距失败,在屏幕上显示出错.1.2本设计任务和主要内容制作超声波测距系统,并外加温度补偿使测距更精确。

前期制作超声波发送与接收电路,经过调试正常可用后,编写相应的超声波程序,完成对于整个测距系统的控制.设计的最终结果是使超声波测距仪能够产生超声波,实现超声波的发送与接收,从而实现利用超声波方法测量物体间的距离.以数字的形式显示测量距离。

基于超声波测距系统的温度补偿电路设计

基于超声波测距系统的温度补偿电路设计

基于超声波测距系统的温度补偿电路设计田胜军1 秦宣云2 何永强3 (1吉首大学物理科学与信息工程学院 湖南吉首 416000.2中南大学数学科学与计算技术学院 湖南长沙 4100833中南大学机电工程学院 湖南长沙 410083)摘要:针对单片机 AT89C52 的超声波微地形测距系统的精度及系统的稳定性,本文着重对该系统的校正电路进行了系统研究,设计了该系统的温度补偿电路。

一方面该电路中的基于集成温度传感器DS18B20的温度检测及补偿电路,提高了数据采集的精度及灵敏度;另一方面该电路中的基于MAX813L 芯片的硬件看门狗电路。

提高了系统的稳定性。

该校正电路的设计使测距系统具有抗干扰能力强、信噪比和测距精度高等优点。

关键词:超声波;测距;单片机;温度补偿[中图分类号] TP274+.2 [文献标识码] A0 引言在超声波测距系统中,影 响 测 量 精度 的 因 素 很 多 , 包 括 现 场 环 境 干扰 、时 基 脉 冲 频率 等;但环境温度对声速的影响最大,从超声波声速经验公式331.450.607c T =+可以看出,在0-40℃时,声速变化范围为331.4m/s~354.85m/s 。

以超声波在20℃的室温条件下的声速343.32m/s 为基准,其变化率为6.83%。

所以温度的影响不能忽略不计。

而且在外界上作条件下,比如在夏天的室外,温度往往不止40℃,所以在基于单片机 AT89C52 的超声波测距系统中,如图0-1所示,必须要对温度进行测量和补偿,以避免温度对测量精度的影响。

1 系统校正电路设计系统校正电路包括温度检测电路和硬件看门狗电路。

温度检测电路用来实时测量周围环境的温度,补偿传播速度的变化对传播距离的影响;硬件看门狗电路用来提高单片机系统的稳定性和抗干扰能力,防止程序“跑飞”或者进入死循环。

在本系统中,需要DS18B20初始化程序及温度检测程序,单片机主程序流程图如图1-1所示。

超声波测距系统中的温度补偿

超声波测距系统中的温度补偿
21ds18b20的测温原理ds18b20的测温原理如图2所示图中低温度系数晶振的振荡频率受温度的影响很小用于产生固定频率的脉冲信号送给计数器1高温度系数晶振随温度变化其振荡频率明显改变所产生的信号作为计数器2的脉冲输入图中还隐含着计数门当计数门打开时ds18b20就对低温度系数振荡器产生的时钟脉冲后进行计数进而完成温度测量
机在通过单总线接口访问 DS18B20 时 , 其工作流程必 需要遵守严格的操作时序 , 如果顺序中任意一步缺少 [ 6, 7 ] 或顺序错乱 , DS18B20 将不会响应 。DS18B20 的操 作顺序是 : 第一步 : 对 DS18B20 初始化 ; 第二步 : 发送 ROM 命令 ; 第三步 : 发送功能命令 。超声波测距系统 上电后 ,单片机开始初始化 DS18B20, 检测现场温度 , 软件控制 DS18B20 的具体流程如图 4 所示 。
- 30 313 - 20 319 - 10 325 0 323 10 338 20 344 30 349 100 386
收稿日期 : 2008 - 07 - 16; 修回日期 : 2008 - 09 - 10 3 基金项目 : 天津市应用基础与前沿技术计划 ( 07JCZDJC09300) ; 天津市教委科技发展基金 ( 2006BA12) 作者简介 : 赵小强 ( 1983 —) ,男 ,天津人 ,天津理工大学学生 ,硕士研究生 ,研究方向为检测与控制技术 , ( E - mail) zhaoxiaoqiang1983@163. com。
图 3 硬件结构
・6 3 ・
・ 控制与检测 ・
312 软件设计 DS18B20 对时序和电性参数要求很高 , 所以单片
tmpw ritebyte ( 0xcc) ; tmpw ritebyte (0x44) ;

基于温度补偿的超声波测距设计.

基于温度补偿的超声波测距设计.

目录1绪论 (2)1.1设计目的 (2)1.2设计意义 (2)1.3系统功能 (3)2设计方案 (4)2.1方案设计 (4)2.2方案论证 (4)3硬件设计 (5)3.1设计方案 (5)3.2 STC89C52外围电路设计 (6)3.2.1单片机 (6)3.2.2复位电路与震荡电路 (7)3.3 LCD显示模块的设计 (8)3.3.1字符型液晶显示模块 (8)3.3.2 字符型液晶显示模块引脚 (9)3.3.3 字符型液晶显示模块内部结构 (9)3.4温度传感器DS18B20电路设计 (10)3.4.1 温度传感器DS18B20简介 (10)3.4.2 DS18B20的主要特性 (11)3.5数据采集模块 (12)3.6 HC-SR04超声波测距模块 (13)3.7报警电路设计 (16)4 软件设计 (17)4.1系统软件设计说明 (17)4.2主程序的设计 (17)4.3超声波发射子程序和超声波接收中断子程序设计 (18)4.4温度测量子程序设计 (19)5 结果与结论 (21)5.1结果 (21)5.2结论 (22)致谢 (22)参考文献 (23)附录 (24)1绪论1.1设计目的随着国民经济的迅速发展,超声波在机械制造、石油化工、航空航天等领域发挥着越来越重要的作用。

超声波测距作为一种非接触式距离测量方法,具有不受外界光及电磁场等因素影响的优点,实现电路简单、成本低;同时,还具有易于定向发射、方向性好、对人体伤害小等特点。

上述优势使得与超声波测距领域相关的仪器设备在数据处理、检测性能和工程设计系统化等方面有了更大的发展空间。

利用超声波定位技术是蝙蝠等一些无目视能力的生物作为防御天敌及捕获猎物的生存手段, 这些生物体可发射人们听不到的超声波 ( 20KH 以上的机械波) ,借助空气介质传播, 根据猎物或障碍物反射回来的回波的时间间隔及强弱,判断猎物的性质或障碍物的位置。

在影响超声波测距误差的因素中,温度的影响是比较大的,超声波的传播速度在不同的温度下是不同的,那就要得出其传播速度与环境温度t的关系式。

51单片机超声波测距离(带温度补偿)

51单片机超声波测距离(带温度补偿)

超声波模块原理图:发射接收原理图PCB:51单片机原理图:软件部分C语言程序:/*=========================================================== =========调试要求:1.MCU:A T89S52芯片或AT89C522.晶振:12MHz调试注意:本程序带温度补偿,采用DS18B20测量温度1.LCD1602液晶屏有显示后,才接入超声波模块。

2.注意超声波模块电源的极性。

不清楚请参好淘宝的电路图3.没有选用频率为12MHz晶振,用了别的频率晶振,单片机定时器的测量值与发出的40KHz频率脉冲不对。

4.使用者经常误发出20KHZ脉冲当40KHZ脉冲。

(40KHz频率脉冲,周期25us,占空比为50% = 12.5us)5.如果是用开发板调超声波模块,请检查开发板上的电路是否与超声波模块的控制脚复用了, 若复用了,请通过跳线分开发板上的电路。

6如果使用的是万用板,请确定单片机的复位电路和晶振电路是否正常,同时单片机的31脚(EA)记得接高电平。

============================================================= =======*/#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int//===============================LCD1602接口定义=====================/*-----------------------------------------------------|DB0-----P2.0 | DB4-----P2.4 | RW-------P0.1 ||DB1-----P2.1 | DB5-----P2.5 | RS-------P0.2 ||DB2-----P2.2 | DB6-----P2.6 | E--------P0.0 ||DB3-----P2.3 | DB7-----P2.7 | 注意,P0.0到P0.2需要接上拉电阻---------------------------------------------------============================================================= */#define LCM_Data P2 //数据接口#define Busy 0x80 //用于检测LCM状态字中的Busy标识sbit LCM_RW = P0^1; //读写控制输入端,LCD1602的第五脚sbit LCM_RS = P0^2; //寄存器选择输入端,LCD1602的第四脚sbit LCM_E = P0^0; //使能信号输入端,LCD1602的第6脚//===============================超声波模块定义========================sbit RemPin =P3^2;// 接收端(这个不能修改,因为是外部中断(INT0)的引脚) sbit TxPin =P3^1;// 发射端//******************************************************************** ***//ds18b20数字温度传感器控制引脚定义sbit dq_ds18b20=P3^3;//定义控制DS18B20//******************************************************************** ***//LCD显示模块的函数声明void WriteDataLCM (uchar WDLCM);//LCD模块写数据void WriteCommandLCM (uchar WCLCM,BuysC); //LCD模块写指令uchar ReadDataLCM (void);//LCD模块读数据uchar ReadStatusLCM (void);//读LCD模块的忙标void DisplayOneChar (uchar X,uchar Y,uchar ASCII);//在第X+1行的第Y+1位置显示一个字符void DisplayListChar (uchar X,uchar Y,uchar delayms,uchar code *DData); void DisplayCursorPos (uchar X, uchar Y);void LCMInit (void);void DisplayIntData (uchar X, uchar Y,int ZhengShu,uchar Digit,uchar XiaoShu);void DisplayCharData (uchar X, uchar Y,uchar ZiFu);//******************************************************************** **//延时函数声明void delay25us_40KHz(unsigned char us);void DelayUs(uint us);void DelayMs(uint Ms);void delay_3us();//3US的延时程序void delay_8us(unsigned int t);//8US延时基准程序void delay_50us(unsigned int t);//延时50*T微妙函数的声明//******************************************************************** ***//DS18B20测温函数定义void w_1byte_ds18b20(uchar value);//向DS18B20写一个字节uchar r_1byte_ds18b20(void);//从DS18B20读取一个字节的数据void rest_ds18b20(void);//DS18B20复位程序void readtemp_ds18b20(void);//读取温度void display_temp(void);//温度显示程序//******************************************************************** ***//参数定义uint length = 0; // 测距的长度0.00Muchar flag = 0; // 测距的标志有信号接收=1uchar templ,temph;uint speed;//根据温度计算出来的声音速度uchar t_b,t_s,t_g,t_x;//从左到右分别存储温度百位,十位,个位,小数位uchar flag1;//温度正负性暂存,1为正数,0为负数const unsigned char tabl3[]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x0 8,0x09,0x09};/*=========================================================== ================主程序============================================================= ================*/void main(void){uchar i;LCMInit(); //1602初始化EX0 = 1; //允许总中断中断,使能INT0 外部中断ET0 = 1;TMOD=0x11; //设定T0为16位时器,设定T1为16位时器DisplayOneChar( 0,14,'m');DisplayListChar(0,0,0, "Distanc: "); //显示字符串while(1){readtemp_ds18b20();display_temp();//显示温度for(i=0;i<20;i++){DisplayIntData(0, 13,length,5,3);//显示测量距离TH0=0x00;TL0=0x00;TR0=1; //启动定时器0EA = 1; //允许所有中断delay25us_40KHz(15); //发出脉冲信号DelayMs(200);}}}//******************************************************************** ***********//温度显示函数void display_temp(){if(flag1==1)//温度为正数时的显示程序{DisplayOneChar( 1,2,'+');}else{DisplayOneChar( 1,2,'-');}//显示温度信息DisplayOneChar( 1,0,'T');DisplayOneChar( 1,1,':');DisplayOneChar( 1,3,t_s+0x30);DisplayOneChar( 1,4,t_g+0x30);DisplayOneChar( 1,5,'.');DisplayOneChar( 1,6,t_x+0x30);//显示速度信息DisplayOneChar( 1,8,'S');DisplayOneChar( 1,9,':');DisplayOneChar( 1,10,speed/100%10+0x30);DisplayOneChar( 1,11,speed/10%10+0x30);DisplayOneChar( 1,12,speed%10+0x30);DisplayOneChar( 1,13,'M');DisplayOneChar( 1,14,'/');DisplayOneChar( 1,15,'S');}//****************************************************//读取温度void readtemp_ds18b20(void){uchar temp32;rest_ds18b20();w_1byte_ds18b20(0xcc); //跳过读序列号的操作w_1byte_ds18b20(0x44); //启动温度转换delay_8us(2);rest_ds18b20();w_1byte_ds18b20(0xcc); //跳过读序列号的操作w_1byte_ds18b20(0xbe); //读取温度寄存器等(共可读9个寄存器)前两个就是温度templ=r_1byte_ds18b20();temph=r_1byte_ds18b20();if((temph&0xf0))//判断温度的正负性{flag1=0;temph=-temph;templ=-templ;t_x=tabl3[templ & 0x0f];//计算温度的小数temp32=temph & 0x0f;temp32<<=4;templ>>=4;temp32=temp32 | templ;t_b=temp32/100%10;//计算温度的百位数据t_s=temp32/10%10;//计算温度的十位数据t_g=temp32%10;//计算温度的个位数据speed=331.4-0.607*(temp32 | templ);}else//为正数{t_x=tabl3[templ & 0x0f];//计算温度的小数temp32=temph & 0x0f;temp32<<=4;templ>>=4;temp32=temp32 | templ;t_b=temp32/100%10;//计算温度的百位数据t_s=temp32/10%10;//计算温度的十位数据t_g=temp32%10;//计算温度的个位数据flag1=1;speed=311.4+0.607*(temp32 | templ);}}/*=========================================================== =========功能:在1602显示一个整数数据说明:显示一个整数数据-9999->32625. 从右至左显示数据5位:============================================================= =========*/void DisplayIntData(uchar X, uchar Y,int ZhengShu,uchar Digit,uchar XiaoShu) {uchar i=0,k=0, BCD[5]={0};if(Digit>5) Digit=5;if(ZhengShu<0){k=1;//负数示志位ZhengShu=-ZhengShu;}BCD[4] =ZhengShu / 10000; //求出万位数据ZhengShu = ZhengShu % 10000;BCD[3] =ZhengShu / 1000; //求出千位数据ZhengShu = ZhengShu % 1000;BCD[2] =ZhengShu / 100; //求出百位数据ZhengShu = ZhengShu % 100;BCD[1] =ZhengShu / 10; //求出十位数据BCD[0] =ZhengShu % 10; //求出个位数据for(i=0;i<Digit;i++)//输出显示的数值{if((i==XiaoShu)&&(0!=XiaoShu)){DisplayOneChar(X,Y-i,'.');//输出小数点Y= Y-1;}DisplayOneChar(X,Y-i,BCD[i]+0x30); //显示一个字符}if(k==1)DisplayOneChar(X,Y-1,'-');//输出负符}//****************************************************************//读一个字节uchar r_1byte_ds18b20(void){uchar i=0;uchar value= 0;for (i=0;i<8;i++){value>>=1;dq_ds18b20=0;// DQ_L;delay_3us();dq_ds18b20=1; //DQ_H;delay_8us(2);if(dq_ds18b20==1) value|=0x80;delay_8us(6); //延时40us}dq_ds18b20=1;return value;}//******************************************************************** ***********//子程序功能:向DS18B20写一字节的数据void w_1byte_ds18b20(uchar value){uchar i=0;for(i=0;i<8;i++){dq_ds18b20=1;delay_3us();dq_ds18b20=0;delay_8us(2);if (value& 0x01) dq_ds18b20=1; //DQ = 1delay_50us(1); //延时50us 以上delay_8us(2);value>>=1;}dq_ds18b20=1; //DQ = 1}//;**************************************************//ds18b20复位子程序void rest_ds18b20(void){rest:delay_3us(); //稍做延时delay_3us();dq_ds18b20=1;delay_3us();dq_ds18b20=0;// DQ_L;delay_50us(11);//480us<T<960usdq_ds18b20=1;//拉高总线delay_8us(5);if(dq_ds18b20==1){return;}delay_50us(2); //延时90usif(dq_ds18b20==1){return;}else{goto rest;}}//==============================超声波模块测试子程序================================================/*=========================================================== =========注意:是用12MHz晶振设定延时时间:x*25us 与产生40KHZ的脉冲============================================================= =======*/void delay25us_40KHz(unsigned char us){while(us--){TxPin = 0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();TxPin = 1;_nop_();_nop_();_nop_();_nop_();}TxPin = 1;}/*=========================================================== ==================中断程序的入口(注意:接收与发射的电平是相反的)============================================================= ==================*/void init0int() interrupt 0{uint timer_us = 0;TR0=0; //关闭定时器0timer_us =TH0*256+TL0;if(timer_us>190)timer_us=timer_us-180; //修正测距的距离if(timer_us<=735){timer_us=timer_us-96;//二次修正}if(timer_us>5059){timer_us+=29;}if(timer_us>5470){timer_us+=29;}if(timer_us>6410){timer_us+=29;}if(timer_us>7410){timer_us+=29;}if(timer_us>8410){timer_us+=29;}if(timer_us>9410){timer_us+=29;}if(timer_us>10410){timer_us+=29;}length = ((unsigned long)(speed)*timer_us)/2000;//计算长度,是扩大100倍flag = 0;EA = 0; //禁止所有中断}/*=========================================================== =========功能:在1602显示一个字符数据说明:显示一个字符数据0~256. 从左至右显示数据3位============================================================= =========*/void DisplayCharData(uchar X, uchar Y,uchar ZiFu){uchar i=0;uchar V alueBCD[3];V alueBCD[0] = ZiFu / 100; //求出百位数据ZiFu = ZiFu % 100;V alueBCD[1] = ZiFu / 10; //求出十位数据V alueBCD[2] = ZiFu % 10; //求出个位数据for(i=0;i<3;i++)//输出显示的数值{DisplayOneChar(X,Y+i,V alueBCD[i]+0x30); //显示一个字符}}/*=========================================================== ================超出测量时间============================================================= ================*/void timer0int (void) interrupt 1{TR0=0; //关闭定时器0length = 0; //超出测量时间显示示0flag = 1; //EA = 0; //禁止所有中断}/*=========================================================== ===========LCM初始化============================================================= =========*/void LCMInit(void){LCM_Data = 0;WriteCommandLCM(0x38,0); //三次显示模式设置,不检测忙信号DelayMs(5);WriteCommandLCM(0x38,0);DelayMs(5);WriteCommandLCM(0x38,0);DelayMs(5);WriteCommandLCM(0x38,1); //显示模式设置,开始要求每次检测忙信号WriteCommandLCM(0x08,1); //关闭显示WriteCommandLCM(0x01,1); //显示清屏WriteCommandLCM(0x06,1); // 显示光标移动设置WriteCommandLCM(0x0C,1); // 显示开及光标设置DelayMs(100);}/*=========================================================== =========显示光标的位置============================================================= =======*/void DisplayCursorPos( unsigned char X, unsigned char Y){X &= 0x1;Y &= 0xF; //限制Y不能大于15,X不能大于1if (X) Y |= 0x40; //当要显示第二行时地址码+0x40;Y |= 0x80; // 算出指令码WriteCommandLCM(Y, 1); //这里不检测忙信号,发送地址码}/*=========================================================== =========按指定位置显示一串字符:第X 行,第y列注意:字符串不能长于16个字符============================================================= =========*/void DisplayListChar(uchar X,uchar Y,uchar delayms, uchar code *DData){unsigned char ListLength;ListLength = 0;X &= 0x1;Y &= 0xF; //限制X不能大于15,Y不能大于1while (DData[ListLength]!='\0') //若到达字串尾则退出{if (Y <= 0xF) //X坐标应小于0xF{DisplayOneChar(X, Y, DData[ListLength]); //显示单个字符ListLength++;Y++;DelayMs(delayms);//延时显示字符串}elsebreak;//跳出循环体}}/*=========================================================== =========设定延时时间:x*1us============================================================= =======*/void DelayUs(uint us){while(us--);}/*=========================================================== =========设定延时时间:x*1ms============================================================= =======*/void DelayMs(uint Ms){uint i,TempCyc;for(i=0;i<Ms;i++){TempCyc = 250;while(TempCyc--);}}//==============================LCD1602显示子程序================================================/*=========================================================== ==========写数据函数: E =高脉冲RS=1 RW=0============================================================= =========*/void WriteDataLCM(unsigned char WDLCM){ReadStatusLCM(); //检测忙LCM_Data = WDLCM;LCM_RS = 1;LCM_RW = 0;LCM_E = 0; //若晶振速度太高可以在这后加小的延时LCM_E = 0; //延时LCM_E = 1;}/*=========================================================== =========写指令函数: E=高脉冲RS=0 RW=0============================================================= =========*/void WriteCommandLCM(unsigned char WCLCM,BuysC) //BuysC为0时忽略忙检测{if (BuysC) ReadStatusLCM(); //根据需要检测忙LCM_Data = WCLCM;LCM_RS = 0;LCM_RW = 0;LCM_E = 0;LCM_E = 0;LCM_E = 1;}/*=========================================================== =========//读数据============================================================= =========*/unsigned char ReadDataLCM(void){LCM_RS = 1;LCM_RW = 1;LCM_E = 0;LCM_E = 0;LCM_E = 1;return(LCM_Data);}/*=========================================================== =========正常读写操作之前必须检测LCD控制器状态:E=1 RS=0 RW=1;DB7: 0 LCD控制器空闲,1 LCD控制器忙。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

南通大学传感器与检测课程设计(预习)报告项目:带温度补偿的超声波测距系统设计班级:姓名:学号:联系方式:学期:2015-2016-2前言 (3)一.课题调研 (3)1.1传感器选型 (3)1.1.1可选温度传感器 DS18B20 (3)1.1.2可选用AD590温度传感器 (4)1.2超声波传感器 (5)1.2.2选用MAX232芯片做发射电路 (7)1.2.3超声波发射电路 (8)1.2.4超声波接收电路 (10)1.2.5选用TL074芯片作为接受电路 (11)1.3多种实现方法。

(12)1.3.1方法一:系统结构框图 (12)1.3.2工作原理 (12)1.3.3方案二:系统结构图如下。

(13)二.总体设计 (14)2.1电路图 (14)2.1.1超声波模块电路 (14)2.2.1主程序设计。

(19)前言以AT89S51单片机为核心,设计了一种带温度补偿的超声波测距系统。

系统包括单片机、超声波发射及接收模块、温度补偿模块、信息显示模块。

温度补偿模块采用温度传感器DS18B20 采集环境温度,根据超声波速度与温度值的对应关系及时修正波速,以纠正温度的变化引起超声波测距系统产生的误差。

一.课题调研1.1传感器选型集成传感器是采用硅半导体集成工艺而制成的,因此亦称硅传感器或单片集成温度传感器,它是将温度传感器集成在一个芯片上、可完成温度测量及模拟信号输出功能的专用IC。

模拟集成温度传感器的主要特点是功能单一(仅测量温度)、测温误差小、价格低、响应速度快、传输距离远、体积小、微功耗等,适合远距离测温、控温,不需要进行非线性校准,外围电路简单。

1.1.1可选温度传感器DS18B20由于声音的速度在不同的温度下有所不同,因此为提高精度,应通过温度补偿对超声波的传播速度进行校正。

系统采用DS18B20传感器测量温度,DS18B20 温度传感器具有不受外界干扰、精度高、测温范围宽等优点。

单片机口接DS18B20 数据总线,控制DS18B20 进行温度转换和传输数据,数据总线接10 kΩ的上拉电阻,作用是使总线控制器在温度转换期间无需一直保持高电平。

1.1.2可选用AD590温度传感器AD590测量热力学温度、摄氏温度、两点温度差、多点最低温度、多点平均温度的具体电路,广泛应用于不同的温度控制场合。

由于AD590精度高、价格低、不需辅助电源、线性好,常用于测温和热电偶的冷端补偿。

AD590用于测量热力学温度的基本应用电路。

因为流过AD590的电流与热力学温度成正比,当电阻R1和电位器R2的电阻之和为1kΩ时,输出电压O V随温度的变化为1mV/K。

但由于AD590的增益有偏差,电阻也有误差,因此应对电路进行调整。

调整的方法为:把AD590放于冰水混合物中,调整电位器R2,使0V=273.2mV。

或在室温下(25℃)条件下调整电位器,使0V=273.2+25=298.2(mV)。

但这样调整只可保证在0℃或25℃附近有较高精度。

AD590把被测温度转换为电流再通过放大器和A/D转换器,输出数字量送给单片机进行温度控制。

通过查阅资料与比较分析可得: AD590需要和高精度ADC配合使用才能得到数据,优点是速度快,编程简单,缺点是是需要校准,电路复杂,成本高。

DS18B20保证精度足够,电路简单成本低,但是编程复杂,转换速度慢,但关键的是DS18B20性价比高,如果广泛选用,所带来的社会效应比较好,有利于环保节能。

综上所述:由于DS18B20将温度传感器、信号放大调理、A/D转换、接口全部集成于一个芯片,与单片机连接简单、方便,与AD590相比是更新一代的温度传感器,DS18B20不需要AD转换,精度高,电路简单且成本低,可行性好,经济性好,所以选用DS18B20。

1.2超声波传感器1.2.1超声波传感器HC-SRF04。

选用HC-SR04集成发射与接收HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,其结构简单,使用单片机控制电路简单容易,而且价格便宜。

该模块包括超声波发射、接收与控制电路。

发射电路主要由Em78p153单片机、MAX232及超声波发射头T40组成,接受电路主要由TL074运算放大器及超声波接收探头R40组成。

实物如图如下超声波发射电路超声波接受电路1.2.2选用MAX232芯片做发射电路MAX232芯片是美信(MAXIM)公司专为RS-232标准串口设计的单电源电平转换芯片,如图所示,使用+5v单电源供电。

MAX220–MAX249系列线驱动器/接收器,专为EIA/TIA-232E以及V.28/V.24通信接口设计,尤其是无法提供±12V电源的应用。

发射电路如图1.2.3可选用TCT40-16T和一支超声波接收传感器TCT40-16R。

TCT40-16T 可以发40 k Hz 左右的方波脉冲信号。

信号由单片机端口提供,由于单片机端口输出功率不够,40 k Hz 方波脉冲信号需经功率放大以便使发射距离足够远,满足测量距离要求。

TCT40-16R作接收传感器,经LM358 放大后进入LM567 进行锁相环检波。

当LM567 的引脚输入合适的信号时,其引脚产生一个负跳变,在编程时将外部中断0 的中断触发方式设置为下降沿触发,就可以通过INT0 产生一个外部中断申请,由CPU 来检测并理。

1.2.3超声波发射电路74LS04 是德州仪器生产的六反向器,总共有14 个引脚,引脚1A~6A 是输入端,引脚1Y~6Y 是输出端,另外还有两个分别是电源的正负Vcc 和GND 端电源电压Vcc 的允许范围是4.75V~5.25V,输入高电平电压最小值是2V,输入低电平电压最大是0.7V,输出高电平的时候电流时400,输出低电平的时候电流是8m A ,输出由低到高或者由高到低的传输时间最大时15ns。

超声波发射电路利用单片机AT89C51 的P3.端口发射40k Hz 的方波,通过芯片74LS04 六反向器来驱动超声波传感器来发射超声波。

该测距电路的40k Hz 方波信号由单片机的P3.5发出,方波的周期为1/40ms,即25s,半周期为12.5s。

每隔半周期时间,让方波的输出引脚电平取反,便可以产生40k Hz 的方波。

因为我们的单片机采用的晶振是12M 的,单片机的时间分辨率是1s,所以只能产生半周期为12s 或者13s 的方波信号,频率分别是41.67k Hz 和38.46k Hz,本系统选择了后者,让单片机产生38.46k Hz 的方波。

单片机的引脚产生的40k Hz 的方波信号,一路经74LS04 的一级反向后送到超声波发射传感器的一个电极;另一路经过二级反向后送到超声波发射传感器的另外一个电极。

利用这种推挽的方式把方波信号加到超声波发射传感器的两极,这样的方式能增强超声波的发射强度,另外输出端采用两个反向器并联的方式来增强系统驱动能力,两个上拉电阻一方面可以提高反向器的驱动能力,另一方面可以增加超声波传感器的电气阻尼效果,大大缩短电气振荡的时间。

1.2.4超声波接收电路CX20106A 采用8 脚单列直插塑料封装,主要由以下几个部分组成前置放大器,限幅放大器,带通滤波器,检波器,积分器和整形电路,CX20106A 在输入微弱信号的时候,前置放大器具有很高的增益,而在输入强信号的时候又不会过载。

内部的滤波器中心频率可以由其引脚5 外接电阻进行调节,范围可以从30k Hz~60k Hz。

CX20106A 的工作过程如下:前置放大器把超声波接收传感器检测到的微弱电压信号进行放大,电压增益约为80d B,然后将放大后的信号送给限幅放大器,使其转变为矩形脉冲,再由滤波器进行频率选择,消除干扰信号,然后经过整形后,由其引脚7 输出低电平。

1.2.5选用TL074芯片作为接受电路TL074芯片是四运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源供电工作模式,在推荐的工作条件下,电源电流与电源电压无关。

他的适用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器。

接受电路如图所示:综上所述:选用TL074芯片作为接受电路,选用MAX232芯片做发射电路。

但是由于学校器件选购不合适等等原因,最终选择集发射和接受为一体的HC-SR04,编程简单,可行性好,经济性也好,是很好的选择。

1.3多种实现方法。

1.3.1方法一:系统结构框图1.3.2工作原理系统工作原理和功能本系统工作时,由单片机提供40 k Hz 的脉冲信号,经放大后通过超声波发射器输出。

超声波在空气中传播,在到达被测物体时被反射回来,由超声波接收器接收。

当超声波接收器接收到反射波时,先经放大器放大,用锁相环电路检波处理后产生一个负跳变,在INT0 产生一个中断请求信号,单片机响应外部中断请求,执行外部中断服务程序。

单片机在启动发射电路时同时启动单片机内部的定时器T0,利用定时器记录超声波发射的时间和收到反射波的时间。

在外部中断程序中读取时间差,计算距离。

其中温度补偿环节为:温度补偿环节,设超声波速度为v,往返时间为t,温度为T,v = 331.5 + 0. 61T,距离为速度除以二可得。

1.3.3方案二:系统结构图如下。

接口向触发引脚发送≥10 μs 的脉冲触发信号,该模块内部将发出8 个40 k Hz 周期电平并检测回波,一旦检测到有回波信号,则 3 脚输出回响信号,所测的距离与回响信号的脉冲宽度成正比,由此可通过发射信号到收到回响信号的时间间隔计算得到距离。

超声波时序图综上所述:由于元器件的限制,最终选择第二种设计方案,同时,第二种方案,方便简单可行性高,同时经济性好,对社会环境影响小,所以选择第二种方案,有利于低碳环保可持续发展。

二.总体设计2.1电路图2.1.1超声波模块电路TL074接受电路MAX232发射电路温度检测电路LCD或LED显示模块2.2.1主程序设计选用社会效益、环保效益好的HC-SR04主程序流程图如下加入温度传感部分。

相关文档
最新文档