温度补偿 论文(1)课件_第1页
温度补偿 论文(1)课件_第2页
温度补偿 论文(1)课件_第3页
温度补偿 论文(1)课件_第4页
温度补偿 论文(1)课件_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 毕业设计超声波测距系统姓 名 系 别、 专 业 导 师 姓 名、职 称 完 成 时 间 165摘要STC89C52是STC系列单片机里应用比较广泛的一款,在自动控制领域里享有很高的价值,以其易用性和多功能性受到了广大电子设计爱好者的好评。本次设计主要是利用STC89C52单片机、超声波传感器完成测距报警系统的制作,以STC89C52为主控芯片,利用超声波对距离的检测,将前方物体的距离探测出来,然后单片机处理运算,与设定的报警距离值进行比较判断,当测得距离小于设定值时,STC89C52发出指令控制蜂鸣器报警。通过DS18B20进行温度补偿,减少温度带来的干扰,提高测量精度。关键词:超声波传感

2、器、STC89C52、DS18B20 11 绪论1.1 课题背景及意义 由于超声测距是一种非接触检测技术,不受光线、被测对象颜色等的影响,较其它仪器更卫生,更耐潮湿、粉尘、高温、腐蚀气体等恶劣环境,具有少维护、不污染、高可靠、长寿命等特点。因此可广泛应用于纸业、矿业、电厂、化工业、水处理厂、污水处理厂、农业用水、环保检测、食品(酒业、饮料业、添加剂、食用油、奶制品)、防汛、水文、明渠、空间定位、公路限高等行业中。可在不同环境中进行距离准确度在线标定,可直接用于水、酒、糖、饮料等液位控制,可进行差值设定,直接显示各种液位罐的液位、料位高度。因此,超声在空气中测距在特殊环境下有较广泛的应用。利用超

3、声波检测往往比较迅速、方便、计算简单、易于实现实时控制,并且在测量精度方面能达到工业实用的指标要求,因此为了使移动机器人能够自动躲避障碍物行走,就必须装备测距系统,以使其及时获取距障碍物的位置信息(距离和方向)。因此超声波测距在移动机器人的研究上得到了广泛的应用。同时由于超声波测距系统具有以上的这些优点,因此在汽车倒车雷达的研制方面也得到了广泛的应用。1.2 本设计完成的工作(1)熟悉51单片机集成开发环境,运用C语言编写工程文件;(2)熟练应用所选用单片机的内部结构、资源,以及软硬件调试设备的基本方法;(3)自行构建基于单片机的最小系统,完成相关硬件电路的设计实现;(4)了解超声波测距原理,

4、温度补偿实现方法。 2 总体方案设计 本设计包括硬件和软件设计两个部分。模块划分为超声波、按键控制、四位数码管显示、报警、DS18B20温度补偿等子模块。就此设计的核心模块来说,单片机就是设计的中心单元,所以此系统也是单片机应用系统的一种应用。单片机应用系统也是有硬件和软件组成。硬件包括单片机、输入/输出设备、以及外围应用电路等组成的系统,软件是各种工作程序的总称。单片机应用系统的研制过程包进行比较处理。然后控制蜂鸣器报警。系统总体的设计方框图如图1所示。电源STC89C52主控制器模块超声波传感器模块按键控制DS18B20温度补偿4位数码管显示模块蜂鸣器报警模块 图1 系统总体方框图2.1

5、硬件设计2.1.1 主控制器模块方案1: 选用一片CPLD(如EPM7128LC84-15)作为系统的核心部件,实现控制与处理的功能。CPLD具有速度快、编程容易、资源丰富、开发周期短等优点,可利用VHDL语言进行编写开发。但CPLD在控制上较单片机有较大的劣势。同时,CPLD的处理速度非常快,而超声波测距对处理速度要求不可能太高,那么对系统处理信息的要求也就不会太高,在这一点上,MCU就已经可以胜任了。若采用该方案,必将在控制上遇到许许多多不必要增加的难题。为此,我们不采用该种方案,进而提出了第二种设想。方案2: 采用单片机作为整个系统的核心,用其处理超声波数据,以实现其既定的性能指标。充分

6、分析我们的系统,其关键在于实现超声波测距,而在这一点上,单片机就显现出来它的优势控制简单、方便、快捷。这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点。因此,这种方案是一种较为理想的方案。在综合考虑了传感器等诸多因素后,我们决定采用一片单片机,充分利用STC89C52单片机的资源。 综上所述,我们选择了方案2。2.1.3 电源模块 由于本系统采用电池供电,我们考虑了如下几种方案为系统供电。方案1:采用12V蓄电池为系统供电。蓄电池具有较强的电流驱动能力以及稳定的电压输出性能。但是蓄电池的体积过于庞大,在使用极为不方便。因此我们放弃了此方案。方案2

7、:采用4节1.5 V干电池共4.5做电源,经过实验验证系统工作时,单片机、传感器的工作电压稳定能够满足系统的要求,而且电池更换方便。综上所述采用方案22.1.4 显示模块方案1:用LCD液晶进行显示。LCD由于其显示清晰,显示内容丰富、清晰,显示信息量大,使用方便,显示快速而得到了广泛的应用。对于此系统我们显示要求并不是很高,用LCD显示没有充分发挥出LCD的显示优势,因此我们放弃了此方案。方案2: 用数码管进行显示。数码管由于显示速度快,使用简单,显示效果简洁明了而得到了广泛应用。在这里我们需要显示的是测得的距离值和温度值,用数码管显示足以满足要求,因此我们选择了此方案。2.1.5 温度补偿

8、模块方案1: 采用PT100作为温度补偿电路的温度传感器。PT100传感器是利用铂电阻的阻值随温度变化而变化、并呈一定函数关系的特性来进行测温的,具有抗振动、稳定性好、准确度高、耐高压等优点。但使用起来比较复杂。方案2: 采用DS18B20作为温度补偿电路的温度传感器。DS18B20的数字温度输出通过 “ 一线 ” 总线( 1-Wire是一种独特的数字信号总线协议,它将独特的电源线和信号线复合在一起,仅使用一条口线;每个芯片唯一编码,支持联网寻址、零功耗等待等,是所需硬件连线最少的一种总线)这种独特的方式,可以使多个 DS18B20方便地组建成传感器网络,为整个测量系统的建立和组合提供了更大可

9、能性。它在测温精度、转换时间、传输距离、分辨率等方面比其他温度传感器有了很大的进步,给用户带来了更方便的使用和更令人满意的效果。 通过比较,DS18B20直接输出数字温度值,不需要校正,因此选择方案2。2.1.6 报警模块方案1: 采用语音芯片提示,优点可以自由设定要提示的声音。缺点使用复杂,需要专门的编程软件,成本高控制复杂,不便于普及。方案2: 采用蜂鸣器提示,电路简单实用,可靠性高。综上所述我们选择方案22.2 最终方案经过反复论证,我们最终确定了如下方案:1、主控芯片采用STC89C52单片机作为主控制器。2、用3节干电池供电。3、用数码管显示。4、采用DS18B20做温度补偿。3 硬

10、件实现及单元电路设计3.1 主控制模块主控制最小系统电路如图5所示。 图2 单片主控电路3.2 单片机的时钟电路与复位电路设计本系统采用STC系统列单片机,相比其他系列单片机具有很多优点。一般STC单片机资源比其他单片机要多,而且执行速度快;STC系列单片机使用串口对单片机进行烧写,下载程序较为方便;STC51单片机内部集成了看门狗电路;且具有很强抗干扰能力。本系统采用内部方式的时钟电路和加电自复位的复位电路,如下图3图4所示:图3 时钟电路图4 复位电路由于单片机P0口内部不含上拉电阻,为高阻态,不能正常地输出高/低电平,因而该组I/O口在使用时必须外接上拉电阻。3.3 超声波测距模块 超声

11、波模块采用现成的超声波模块,该模块可提供 2cm-400cm 的非接触式距离感测功能,测距精度可达高到 3mm。模块包括超声波发射器、接收器与控制电路。基本工作原理:采用 IO 口 TRIG 触发测距,给至少 10us 的高电平信号;模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回;有信号返回,通过 IO 口 ECHO 输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S)/2。实物如下图5。其中VCC 供5V 电源,GND 为地线,TRIG 触发控制信号输入,ECHO 回响信号输出等四支线。图5 超声波模块实物3.3.1 超

12、声波的基本特性超声波是一种在弹性介质中的机械振荡,其频率超过20KHz,分横向振荡和纵向振荡两种,超声波可以在气体、液体及固体中传播,其传播速度不同。它有折射和反射现象,且在传播过程中有衰减。超声波的基本特性如下所述:1 波长波的传播速度是用频率乘以波长来表示。电磁波的传播速度是3108m/s,而声波在空气中的传播速度很慢,约为344m/s (20时)。在这种比较低的传播速度下,波长很短,这就意味着可以获得较高的距离和方向分辨率。正是由于这种较高的分辨率特性,才使我们有可能在进行测量时获得很高的精确度。2 反射要探测某个物体是否存在,超声波就能够在该物体上得到反射。由于金属、木材、混凝土、玻璃

13、、橡胶和纸等可以反射近乎100的超声波,因此我们可以很容易地发现这些物体。由于布、棉花、绒毛等可以吸收超声波,因此很难利用超声波探测到它们。同时,由于不规则反射,通常可能很难探测到凹凸表面以及斜坡表面的物体,这些因素决定了超声波的理想测试环境是在空旷的场所,并且测试物体必须反射超声波。3 温度效应声波传播的速度“c”可以用下列公式表示。c=331.5+0.607t (m/s)式中,t=温度 ()也就是说,声音传播速度随周围温度的变化而有所不同。因此,要精确的测量与某个物体之间的距离时,始终检查周围温度是十分必要的,尤其冬季室内外温差较大,对超声波测距的精度影响很大,此时可用18B20作温度补偿

14、来减小温度变化所带来的测量误差,考虑到本设计的测试环境是在室内,而且超声波主要是用于实现避障功能,对测量精度要求不高,所以关于温度效应对系统的影响问题在这里不做深入的探讨。4. 衰减传播到空气中的超声波强度随距离的变化成比例地减弱,这是因为衍射现象所导致的在球形表面上的扩散损失,也是因为介质吸收能量产生的吸收损失。如图11所示,超声波的频率越高,衰减率就越高,超声波的传播距离也就越短,由此可见超声波的衰减特性直接影响了超声波传感器有效距离。T/R-40-12型超声波传感器的震荡频率为40KHz,传播10米超声波信号强度便衰减到40个声压级,此时超声波接收探头就很难接收到回波信号。因此,从理论上

15、分析,本设计超声波测距部分的实际范围是10cm500cm,理想的避障范围是10cm100cm,由于所购买玩具小车的回转半径为40cm所以实际壁障安全距离应设在50cm80cm之间。图6 声压在不同距离下的衰减特性3.3.2 超声波的电器特性1声压特性声压级 (S.P.L.) 是表示音量的单位,利用下列公式予以表示。S.P.L.= 20logP/Pre (dB)式中,“P”为有效声压 (bar),“Pre”为参考声压 (210-4bar)如图12所示为几种常用超声波传感器的声压图。图7 超声波传感器的声压图2灵敏度特性灵敏度是表示声音接收级的单位,使用下列公式予以表示。灵敏度= 20log E/

16、P (dB)式中,“E”为所产生的电压 (Vrms),“P”为输入声压(bar)。超声波传感器的灵敏度直接影响着系统测距范围,如图8所示为几种中常见超声波传感器的灵敏度图,从图中可以发现40KHz时传感器的声压级最高,也就是说40KHz时所对应的灵敏度最高。图8 超声波传感器灵敏度示意图3辐射特性把超声波传感器安装在台面上。然后,测量角度与声压 (灵敏度) 之间的关系。为了准确地表达辐射,与前部相对比,声压 (灵敏度) 级衰减6dB的角度被称为半衰减角度,用1/2表示。超声波设备的外表面尺寸较小易于获得精确的辐射角度。如图9所示为几种常见超声波传感器的辐射特性示意图。图9 超声波传感器辐射特性

17、示意图分析以上研究结果不难看出超声波传感器工作在40KHz范围内具有最大的声压级和最高的灵敏度,这为设计中选择合适的超声波传感器指明了方向。3.3.3 超声波的工作原理市面上常见的超声波传感器多为开放型,其内部结构如图10所示,一个复合式振动器被灵活地固定在底座上。该复合式振动器是由谐振器以及一个金属片和一个压电陶瓷片组成的双压电晶片元件振动器。谐振器呈喇叭形,目的是能有效地辐射由于振动而产生的超声波,并且可以有效地使超声波聚集在振动器的中央部位。当电压作用于压电陶瓷时,就会随电压和频率的变化产生机械变形。另一方面,当振动压电陶瓷时,则会产生一个电荷。利用这一原理,当给由两片压电陶瓷或一片压电

18、陶瓷和一个金属片构成的振动器,所谓叫双压电晶片元件,施加一个电信号时,就会因弯曲振动发射出超声波。相反,当向双压电晶片元件施加超声振动时,就会产生一个电信号。图10 超声波传感器内部结构图图11 避障原理 如图15所示,超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s=340t/2就是所谓的时间差测距法图12 超声波接口电路图3.4 声音报警电路的设计如下图所示,用一个Speaker和三极

19、管、电阻接到单片机的P13引脚上,构成声音报警电路,如图13示为声音报警电路。图13 声音报警电路图3.5 显示模块 显示模块采用数码管显示接口电路如图14图14 数码管电路3.6 温度补偿电路 温度采用DS18B20传感器进行测量,P2.4接DS18B20数据总线,控制DS18B20进行温度转换和传输数据,同时数据总线上还接10k的上拉电阻。本系统对DS18B20采用外部供电,其优点在于I/O线不需要强上拉,而且总线控制器无需在温度转换期间一直保持高电平。这样在转换期间可以允许在单线总线上进行其他数据传输,硬件结构如图15所示图15 温度传感器接口电路图4 系统软件设计方案如图16所示为超声

20、波测距主程序流程图。系统初始化报警结束测得距离与设定值比较,小于距离比较,报警是否持续开始启动报警电路开始报警再次检测等待下次报警结束YNNYYN图16 系统软件的整体流程图4.1 DS18B20初始化程序流程图在DS18B20工作之前需要进行初始化,流程图如17:发复位命令发跳过ROM命令 初始化成功 结束 图17 初始化程序流程图4.2 超声波温度和速度的关系温度()超声波的速度(m/s)近似值C=331.3+0.606*T-20319.18319-19319.786-18320.392-17320.998-16321.604-15322.21322-14322.816-13323.422

21、-12324.028-11324.634-10325.24325-9325.846-8326.452-7327.058-6327.664-5328.27328-4328.876-3329.482-2330.088-1330.6940331.33311331.9062332.5123333.1184333.7245334.333346334.9367335.5428336.1489336.75410337.3633711337.96612338.57213339.17814339.78415340.3934116340.99617341.60218342.20819342.81420343.42

22、34321344.02622344.63223345.23824345.84425346.4534726347.05627347.66228348.26829348.87430349.4835031350.08632350.69233351.29834351.90435352.5135336353.11637353.72238354.32839354.93440355.5435641356.14642356.75243357.35844357.96445358.57温度补偿程序void init2() /T2CON=0x0c; RCAP2H=(65536-5)/256; RCAP2L=(655

23、36-5)%256; TH2=(65536-5)/256; TL2=(65536-5)%256; EA=1; ET2=1; TR2=1; / PT2=1; /T2设为高优先级 void main() init1(); /液晶初始化 xianshi(); /温度字母 init2(); /T2初始化 tx=0; IT0=0; /外部中断低电平触发 init(); /定时器初始化 while(1); void timer1() interrupt 3 tx=tx; k+; if(k=3) k=0; TR0=0; TR0=1; delaynus(6); /除共振 EX0=1; /for(d=0;d=0

24、&TZ10&TZ20&TZ30&TZ40&TZ0;d-); TH0=0x00; TL0=0x00; ET1=1; TR1=1; O+; if(O=100) O=0; TR1=0; ET1=0; TR2=1; ET2=1; void timer0() interrupt 1 /计时 TR1=0; TR0=0; TH0=0X00; TL0=0X00; TR1=1; void timer2() interrupt 5 TF2=0; EXF2=0; TR2=0; ET2=0; / xianshi(); /温度字母 readyread(); TL=readonechar(); TH=readonecha

25、r(); TZ=TH*16+TL/16; xianshiwen(TZ); delay(10); TR1=1; ET1=1; 5 系统的安装与调试5.1 安装步骤1.检查元件的好坏按电路图买好元件后首先检查买回元件的好坏,按各元件的检测方法分别进行检测,一定要仔细认真。而且要认真核对原理图是否一致,在检查好后才可上件、焊件,防止出现错误焊件后不便改正。2.放置、焊接各元件按原理图的位置放置各元件,在放置过程中要先放置、焊接较低的元件,后焊较高的和要求较高的元件。特别是容易损坏的元件要后焊,在焊集成芯片时连续焊接时间不要超过10s,注意芯片的安装方向。6 总结本设计研究了一种基于单片机技术的超声波

26、智能测距报警系统。该系统通过以STC89C52单片机为工作处理器核心,DS18B20温度补偿,它是一种新颖的被动式超声波探测器件,能够以非接触测出前方物体距离,并将其转化为相应的电信号输出.该报警器的最大特点就是使用户能够操作简单、易懂、灵活;且安装方便、智能性高、误报率低。随着现代人们安全意识的增强以及科学技术的快速发展,相信报警器必将在更广阔的领域得到更深层次的应用。7 参考文献 1 宋文绪. 传感器与检测技术M. 北京: 高等教育出版社, 2004.2 余锡存. 单片机原理及接口技术M. 西安: 西安电子科技大学出版社, 2000.3 李全利. 单片机原理及接口技术M. 北京: 北京航空

27、航天大学出版社, 2004.4 薛均义, 张彦斌. MCS-51系列单片微型计算机及其应用M. 西安: 西安交通大学出版社, 2005.5 徐爱钧, 彭秀华. 单片机高级语言C51应用程序设计M. 北京: 北京航空航天大学出版社, 2006.6 康华光. 电子技术基础(模拟部分)M. 北京: 高等教育出版社, 2004.附录1 整机电路原理图附录2 部分源程序#include /调用单片机头文件#define uchar unsigned char /无符号字符型 宏定义变量范围0255#define uint unsigned int /无符号整型 宏定义变量范围065535#include

28、 #include eeprom52.h/数码管段选定义 0 1 2 3 4 56 7 8 9uchar code smg_du=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff; /断码/数码管位选定义uchar code smg_we=0xe0,0xd0,0xb0,0x70;uchar dis_smg8 =0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8;uint code wendu_buchang146 = /温度补偿表格331,332

29、,333,333,334,334,335,336,336,337,/ 0-9度337,338,339,339,340,341,341,342,342,343,/10-19度343,344,345,345,346,346,347,348,348,349,/20-29度349,350,351,351,352,352,353,354,354,355,/30-39度355,356,357,357,358,358/40-45度;sbit smg_we1 = P34; /数码管位选定义sbit smg_we2 = P35;sbit smg_we3 = P36;sbit smg_we4 = P37;sbit

30、 dq = P24;/18b20 IO口的定义uint temperature ; /sbit c_send = P32;/超声波发射sbit c_recive = P33;/超声波接收sbit beep = P23; /蜂鸣器IO口定义uchar smg_i = 3; /显示数码管的个位数bit flag_300ms ;long distance; /距离uint set_d; /距离uchar flag_csb_juli; /超声波超出量程uint flag_time0; /用来保存定时器0的时候的uchar menu_1; /菜单设计的变量/*小延时函数*/void delay_uint

31、(uint q)while(q-);/*1ms延时函数*/void delay_1ms(uint q)uint i,j;for(i=0;iq;i+)for(j=0;j120;j+);/*处理距离函数*/void smg_display()dis_smg0 = smg_dudistance % 10;dis_smg1 = smg_dudistance / 10 % 10;dis_smg2 = smg_dudistance / 100 % 10 & 0x7f;/*把数据保存到单片机内部eeprom中*/void write_eeprom()SectorErase(0x2000);byte_writ

32、e(0x2000, set_d % 256);byte_write(0x2001, set_d / 256);byte_write(0x2058, a_a);/*把数据从单片机内部eeprom中读出来*/void read_eeprom()set_d = byte_read(0x2001);set_d = smg_i)i = 0;smg_we_switch(i); /位选P1 = dis_smgi; /段选 /*18b20初始化函数*/void init_18b20()bit q;dq = 1;/把总线拿高delay_uint(1); /15usdq = 0;/给复位脉冲delay_uint(

33、80);/750usdq = 1;/把总线拿高 等待delay_uint(10);/110usq = dq;/读取18b20初始化信号delay_uint(20);/200usdq = 1;/把总线拿高 释放总线/*写18b20内的数据*/void write_18b20(uchar dat)uchar i;for(i=0;i= 1;/*读取18b20内的数据*/uchar read_18b20()uchar i,value;for(i=0;i= 1; /读数据是低位开始dq = 1; /释放总线if(dq = 1) /开始读写数据 value |= 0x80;delay_uint(5); /

34、60us读一个时间隙最少要保持60us的时间return value; /返回数据/*读取温度的值 读出来的是小数*/uint read_temp()uint value;uchar low; /在读取温度的时候如果中断的太频繁了,就应该把中断给关了,否则会影响到18b20的时序init_18b20(); /初始化18b20write_18b20(0xcc); /跳过64位ROMwrite_18b20(0x44); /启动一次温度转换命令delay_uint(50); /500usinit_18b20(); /初始化18b20write_18b20(0xcc); /跳过64位ROMwrite_

35、18b20(0xbe); /发出读取暂存器命令EA = 0;low = read_18b20(); /读温度低字节value = read_18b20(); /读温度高字节EA = 1;value 40000) /当超声波超过测量范围时,显示3个888TR0 = 0;flag_csb_juli = 2;distance = 888;break ;else flag_csb_juli = 1;if(flag_csb_juli = 1)TR0=0; /关定时器0定时distance =flag_time0; /读出定时器0的时间/distance *= 340 / 2 * 0.0001; / 0.017 = 340M / 2 = 170M = 0.017M 算出来是米if(temperature 500) /距离 = 速度 * 时间distance = 888; /如果大于3.8m就超出超声波的量程 /*定时器0、定时器1初始化*/void time_init() EA = 1; /开总中断TMOD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论