基于AT89C51单片机超声波测距仪的设计

上传人:QQ40****828 文档编号:442658 上传时间:2018-10-02 格式:DOC 页数:48 大小:694.88KB
返回 下载 相关 举报
基于AT89C51单片机超声波测距仪的设计_第1页
第1页 / 共48页
基于AT89C51单片机超声波测距仪的设计_第2页
第2页 / 共48页
基于AT89C51单片机超声波测距仪的设计_第3页
第3页 / 共48页
点击查看更多>>
资源描述
图书分类号:密 级:毕 业 设 计 (论 文 )基于 AT89C51 单片机超声波测距仪的设计BASED ON AT89C51 ULTRASONIC RANGEFINDER DESIGN学 生 姓 名学 院 名 称专 业 名 称指 导 教 师年 5 月 15 日徐 州 工 程 学 院 毕 业 设 计 (论 文 )摘要超声波是一种在弹性介质中的机械振荡,它是由与介质相接触的振荡源所引起的,其频率在 20000Hz 以上。由于它有指向性强、方向性好、传播能量大、传播距离较远等特点,因此常用于测量物体的距离。本文介绍了基于 AT89C51 单片机的超声波测距仪的软硬件设计,整个系统分为单片机控制模块、发射模块和接收模块组成。程序采用模块化设计,由主程序、预置子程序、发射子程序、接收子程序、显示子程序等模块组成。超声探头接收的信号经单片机综合分析处理后,实现了超声波测距仪的各种功能。关键词 超声波 AT89C51 测量距离徐 州 工 程 学 院 毕 业 设 计 (论 文 )I目 录1 绪论 11.1 研究背景 .11.2 研究内容 .12 相关知识 22.1 超声波发生器 .22.2.单片机的任务 .22.3 AT89C51 单片机主要特性和引脚功能 23 理论分析与计算 .53.1 测量与控制方法 .53.3 超声波测距误差分析 .64 系统硬件电路设计 .84.1 单片机系统及显示电路 .84.1.1 74LS244 的简介 .94.2 超声波发射电路 .94.3 超声波监测接收电路 104.4 显示电路原理 115 系统软件设计 125.1 主程序 125.2 超声波发生子程序和接收子程序 135.3 超声波的接收与处理 146 单片机系统的可靠性 156.1 测试单片机系统的可靠性 156.2 单片机的抗干扰性 157 软硬件调试 167.1 调试 167.2 提高精度的方案及系统设计 168 系统的扩展 188.1 DS18B20 的简介 .188.11DS18B20 的主要特性 .188.12 DS18B20 的外形和内部结构 188.13 DS18B20 的工作原理 198.14 DS18B20 有 4 个主要的数据部件 198.2 DS18B20 与单片机的连接 .208.3 DS18B20 与 51 单片机的连接程序 21结论 .27致谢 .28徐 州 工 程 学 院 毕 业 设 计 (论 文 )II参考文献 .29附录 .30附录 1 电路原理图 30附录 2 程序源代码 31徐 州 工 程 学 院 毕 业 设 计 (论 文 )01 绪论1.1 研究背景由于社会不断进步发展,许多传统的测距方法已经无法满足我们的需求,例如在井深,液位,管道长度等场合。还有在很多要求实时测距的情况下,传统的测距方法也很难完成测量的任务。于是,在这种情况下一种新的测距方法诞生了-超声波测距。超声波可用于非接触测量,具有不受光、电磁波以及粉尘等外界因素的干扰的优点,是利用计算超声波在被测物体和超声波探头之间的传输来测量距离的,对被测目标无损害。而且超声波传播速度在相当大范围内与频率无关。超声波的这些独特优点越来越受到人们的重视。目前对于超声波精确测距的需求也越来越大,如油库和水箱液面的精确测量和控制,物体内气孔大小的检测和机械内部损伤的检测等。在机械制造,电子冶金,航海,宇航,石油化工,交通等工业领域也有广泛地应用。此外,在材料科学,医学,生物科学等领域中也占具重要地位。1.2 研究内容超声波测距仪主要以单片机 AT89C51 为核心,其发射器是利用压电晶体的谐振带动周围空气振动来工作的.超声波发射器向某一方向发射超声波,在发射的同时开始计时 ,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器接收到反射波就立即停止计时。一般情况下,超声波在空气中的传播速度为 340m/ s,根据计时器记录的时间 t ,就可以计算出发射点距障碍物的距离 s,即 s=340t/2。本系统的一个亮点就是利用超声波测量距离,超声波具有不受光、电磁波以及粉尘等外界因素的干扰的优点,而且超声波传播速度在相当大范围内与频率无关。徐 州 工 程 学 院 毕 业 设 计 (论 文 )12 相关知识2.1 超声波发生器我们知道,由于超声波指向性强,能量消耗缓慢,在介质中传播的距离比较远,因而超声波经常用于距离的测量。利用超声波检测距离,设计比较方便,计算处理也比较简单,并且在测量精度方面也能达到日常使用的要求。超声波发生器可以分为两大类:一类是用电气方式产生超声波,一类是用机械方式产生超声波。电气方式包括压电型、电动型;机械方式有加尔统笛、液哨和气流旋笛等,它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同,目前在近距离测量方面较为常用的是压电式超声波换能器。2.2.单片机的任务单片机的任务是指以单片机为核心,构建硬件部分和软件部分组成,配以一定的外围电路和软件,实现某几种功能,完成相应的任务。硬件是系统的基础,软件则是在硬件的基础上对其合理的调配和使用,从而完成应用系统所要完成的基础。一般来讲,所要完成的任务不同,相应的硬件配置和软件配置也就不同。因此,单片机的设计应包括硬件设计和软件设计两大部分。2.3 AT89C51 单片机主要特性和引脚功能AT89C51 是带 4K 字节闪烁可编程可擦除只读存储器(EPEROM)的低电压、高性能CMOS 8 位微处理器(俗称单片机) 。该单片机与工业标准的 MCS-51 型机的指令集和输出引脚兼容。AT89C51 将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,为很多嵌入式控制提供了灵活性高且价格低廉的方案。AT89C51 的主要特性如下:寿命达 1000 写/擦循环;数据保留时间:10 年;全静态工作:0Hz-24MHz;三级程序存储器锁定;128 * 8 位内部 RAM;32 可编程 I/O 线;2 个 16 位定时器/计数器;5 个中断源;可编程串行通道;低功耗闲置和掉电模式;片内振荡器和时钟电路;徐 州 工 程 学 院 毕 业 设 计 (论 文 )2AT89C51 引脚排列如图 1 所示,引脚功能如下图 2-1 所示:图 2-1AT89C51 引脚图VCC(40):+5V.GND(20):接地。P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P1 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在 FIASH 编程时,P0 口作为原码输入口,当 FIASH 进行校验时,P0 输出原码,此时 P0 外部必须被拉高。P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出 4TTL门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作为第八位地址接收。 P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4 个 TTL门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。徐 州 工 程 学 院 毕 业 设 计 (论 文 )3在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此时, ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。/EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH) ,不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为 RESET;当/EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP) 。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。徐 州 工 程 学 院 毕 业 设 计 (论 文 )43 理论分析与计算3.1 测量与控制方法声波在其传播介质中被定义为纵波。当声波受到尺寸大于其波长的目标物体阻挡时就会发生反射;反射波称为回声。假如声波在介质中传播的速度是已知的,而且声波从声源到达目标然后返回声源的时间可以测量得到,从声波到目标的距离就可以精确地计算出来。这就是本系统的测量原理。超声波传感器的结构如图 3-1 所示。图 3 -1 超声波传感器结构超声波测距器的系统框图如图 3-2 所示:图 3-2 超声波测距器的系统框图超声波也是一种声波,其声速 c 与温度有关,表 3-3 列出了几种不同温度下的超声波声速。在使用时,如果温度变化不大,则可认为声速是基本不变的。如果测距精度要求很高,则应通过温度补偿的方法加以校正。声速确定后,只要测得超声波往返的时间,即可求得距离。 表 3-3 不同温度下超声波声速表温度/c -30 -20 -10 0 10 20 30 100声速c/(m/s)313 319 325 323 338 344 349 386徐 州 工 程 学 院 毕 业 设 计 (论 文 )53.2 理论计算图 3-4 测距的原理如图 3-4 所示为反射时间法,是利用检测声波发出到接收到被测物反射回波的时间来测量距离其原理如图所示,对于距离较短和要求不高的场合我们可认为空气中的声速为常数,我们通过测量回波时间 T 利用公式 S=C*(T/2)其中,S 为被测距离、V 为空气中声速、T 为回波时间(T=T1+T2 ),可以计算出路程,这种方法不受声波强度的影响,直接耦合信号的影响也可以通过设置“时间门” 来加以克服。这样可以求出距离:S=C(T1-T2)/23.3 超声波测距误差分析(1) 发射接收时间对测量精度的影响分析 采用 TR40 压电超声波传感器,脉冲发射由单片机控制,发射频率 40KHz ,忽略脉冲电路硬件产生的延时,可知由软件生成的起始时间对于一般要求的精度是可靠的。对于接收到的回波,超声波在空气介质的传播过程中会有很大的衰减,其衰减遵循指数规律。 设测量设备基准面距被测物距离为 h,则空气中传播的超声波波动方程为:kt+et+20AcosAcos由以上公式可知,超声波在传播过程中存在衰减,且超声波频率越高,衰减越快,但频率的增高有利于提高超声波的指向性。 经以上分析,超声波回波的幅值在传播过程中衰减很大,收到的回波信号可能十分微弱,要想判断捕获到的第一个回波确定准确的接受时间,必须对收到的信号进行足够的放大,否则不正确的判断回波时间,会对超声波测量精度产生影响。 (2) 当地声速对测量精度的影响分析 当地声速对超声波测距测量精度的影响远远要比收发时间的影响严重。超声波在大气中传播的速度受介质气体的温度、密度及气体分子成分的影响,即: 徐 州 工 程 学 院 毕 业 设 计 (论 文 )6sRTCM由上式知,在空气中,当地声速只决定于气体的温度,因此获得准确的当地气温可以有效的提高超声波测距时的测量精度。工程上常用的由气温估算当地声速的公式如下:0C1T273式中 C0=331.4m/s ;T为绝对温度,单位 K 。 此公式一般能为声速的换算提供较为准确的结果。实际情况下,温度每上升或者下降 1oC, 声速将增加或者减少 0.607m /s ,这个影响对于较高精度的测量是相当严重的。因此提高超声波测量精度的重中之重就是获得准确的当地声速。 徐 州 工 程 学 院 毕 业 设 计 (论 文 )74 系统硬件电路设计硬件电路主要分为单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分。4.1 单片机系统及显示电路单片机采用 AT89C51 或其兼容系列。采用 12MHZ 高精度的晶振,以获得较稳定的时钟频率,减小测量误差。单片机用 P1.0 端口输出超声波换能器所需的 40KMZ 方波信号,利用外中断 0 口监测超声波接收电路输出的返回信号。显示电路采用简单实用的 4 位共阳 LED 数码管,段码用 74LS244 驱动,位码用 PNP 三极管 8550 驱动。单片机系统及显示电路如下图 4-1 所示图 4-1 单片机系统及显示电路徐 州 工 程 学 院 毕 业 设 计 (论 文 )84.1.1 74LS244 的简介(1)74LS244 引脚图如下 4-2 所示:图 4-2 74LS244 引脚图(2)引脚功能:1A11A4,2A12A4 输入端/1G, /2G 三态允许端(低电平有效)1Y11Y4,2Y12Y4 输出端4.2 超声波发射电路超声波发射电路原理图如下图 4-3 所示。发生电路主要由反向器 74LS04 和超声波发射换能器 T 构成,单片机 P1.0 端口输出的 40KMz 方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极。用这种推挽形式将方波信号加到超声波换能器两端,可以提高超声波的发射强度。输出端采用两个反向器并联,用以提高驱动能力。上拉电阻 R10、R11 一方面可以提高反向器 74LS04输出高电平的驱动能力,另一方面可以增加超声换能器的阻尼效果,缩短其自由振荡的时间。压电式超声波换能器是利用压电晶体的谐振来工作的。超声波换能器内部结构它有两个压电晶片和一个共振板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振徐 州 工 程 学 院 毕 业 设 计 (论 文 )9荡频率时,压电晶片将会发生共振,并带动共振板振动产生超声波,这时它就是一个超声波发生器;反之,如果两电极间未加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收换能器了。超声波发射换能器与接收换能器其结构上稍有不同,使用时应分清器件上的标志。图 4-3 超声波发射电路4.3 超声波监测接收电路 集成电路 CX20106A 是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率 38KHz 与测距的超声波频率 40kHz 较为接近,可以利用它制作超声波检测接收电路。实验证明用 CX20106A 接收超声波(无信号时输出高电平) ,具有很高的灵敏度和较强的抗干扰能力。适当更改电容 C4 的大小,可以改变接收电路的灵敏度和抗干扰能力。如图 4-4 所示:徐 州 工 程 学 院 毕 业 设 计 (论 文 )10图 4-4 超声波检测电路4.4 显示电路原理超声波测距仪显示模块如下图 4-5 所示。通过单片机的 15、16、17 三个管脚的信号控制三个三极管的 B 级,利用三极管的开关特性,实现数码管的点亮,从而实现动态显示。4-5 显示模块徐 州 工 程 学 院 毕 业 设 计 (论 文 )115 系统软件设计5.1 主程序主程序首先是对系统环境初始化,设置定时器 T0 工作模式为 16 位定时计数器模式,置位总中断容许位 EA 并给显示端口 P0 和 P2 清 0.然后调用超声波发生子程序送出一个超声波脉冲,为了避免超声波从发射器直接传送到接收器引起的直射波触发,需要延时约0.1ms(这也就是超声波测距器会有一个最小可测距离的原因)后,才打开外中断 0 接收返回的超声波信号。由于采用的是 12MHz 的晶振,计数器每计一个数就是 1us,当主程序检测到接收成功的标志位后,将计数器 T0 中的数(即超设波来回所用的距离)按下式计算,即可得被测物体与测距器之间的距离,设计时取 20 度时的声速为 344m/s则有: S=(C*T)/2=172T0/10000cm其中 T0 为计数器 T0 的计数值。测出距离后结果将以十进制 BCD 码方式送往 LED 显示约 0.5s,然后再发超声波脉冲重复测量过程。为了有利于程序结构化合容易计算出距离,主程序采用 C 语言编写。图 5-1 为主程序流程图徐 州 工 程 学 院 毕 业 设 计 (论 文 )12图 5-1 流程图5.2 超声波发生子程序和接收子程序(1)超声波发生子程序的作用是通过 P1.0 端口发送 2 个左右的超声波信号频率约40KHz 的方波,脉冲宽度为 12us 左右,同时把计数器 T0 打开进行计时。(2)超声波测距器主程序利用外中断 0 检测返回超声波信号,一旦接收到返回超声波信号(INT0 引脚出现低电平),立即进入中断程序。进入该中断后就立即关闭计时器 T0 停止计时,并将测距成功标志字赋值 1。(3)如果当计时器溢出时还未检测到超声波返回信号,则定时器 T0 溢出中断将外中断 0 关闭,并将测距成功标志字赋值 2 以表示此次测距不成功。如下图 5-2 所示:徐 州 工 程 学 院 毕 业 设 计 (论 文 )13图 5-2 超声波发生子程序和超声波接收中断程序流程图5.3 超声波的接收与处理 接收头采用与发射头配对的 UCM40R,将超声波调制脉冲变为交变电压信号,经运算放大器 IC1A 和 IC1B 两极放大后加至 IC2。IC2 是带有锁定环的音频译码集成块 LM567,内部的压控振荡器的中心频率 f0=1/1.1R8C3,电容 C4 决定其锁定带宽。调节 R8 在发射的载频上,则 LM567 输入信号大于 25mV,输出端 8 脚由高电平跃变为低电平,作为中断请求信号,送至单片机处理。 前方测距电路的输出端接单片机 INT0 端口,中断优先级最高,左、右测距电路的输出通过与门 IC3A 的输出接单片机 INT1 端口,同时单片机 P1.3 和 P1.4 接到 IC3A 的输入端,中断源的识别由程序查询来处理,中断优先级为先右后左。部分源程序如下: receive1:push psw push acc clr ex1 ;关外部中断 1 jnb p1.1, right ;P1.1 引脚为 0,转至右测距电路中断服务程序jnb p1.2, left ;P1.2 引脚为 0,转至左测距电路中断服务程序 return:SETB EX1;开外部中断 1 pop acc pop psw reti right: . ;右测距电路中断服务程序入口 AJMP RETURN left:. ;左测距电路中断服务程序入口 AJMP RETURN 徐 州 工 程 学 院 毕 业 设 计 (论 文 )146 单片机系统的可靠性6.1 测试单片机系统的可靠性当一个单片机系统设计完成后,对于不同的单片机系统产品会有不同的测试项目和方法,但是有一些是必须测试的。(1)测试单片机软件功能的完整性。这是针对所有单片机系统功能的测试,测试软件是否写得正确完整。(2)上电、掉电测试。在使用中用户必然会遇到上电和掉电的情况,可以进行多次开关电源,测试单片机系统的可抗性。(3)老化测试。测试长时间工作情况下,单片机系统的可抗性。必要的话可以放置在高温、高压以及强电磁干扰的环境下测试。(4)ESD 和 EFT 等测试。可以使用各种干扰模拟器来测试单片机系统的可抗性。例如使用静电模拟器测试单片机系统的抗静电 ESD 能力;使用突波杂讯模拟器进行快速脉冲抗干扰 EFT 测试等。6.2 单片机的抗干扰性影响单片机系统可靠安全运行的主要因素主要来自系统内部和外部的各种电气干扰,并受系统结构设计、元器件选择、安装、制造工艺的影响。这些都是单片机系统的徐 州 工 程 学 院 毕 业 设 计 (论 文 )15干扰因素,常会导致单片机系统运行失常,轻则影响产品质量和产量,重则会导致事故,造成重大经济损失。形成干扰的基本要素有三个:(1)干扰源。指产生干扰的元件、设备或信号,用数学语言描述为 du/dt、di/dt 大的地方就是干扰源,如雷电、继电器、可控硅、电机、高频时钟等都可能成为干扰源(2)传播路径。指干扰从干扰源传播到敏感器件的通路或媒介。典型的干扰传播路径是通过导线的传导和空间的辐射。(3)敏感器件。指容易被干扰的对象,如 A/D、D/A 变换器,单片机,数字 IC,弱信号放大器等。7 软硬件调试7.1 调试测试是为了发现程序中的错误而执行程序的过程。具体地说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计出一批测试用例,并利用测试用例来运行程序,以发现程序错误的过程。超声波测距仪的制作和调试,其中超声波发射和接收采用 15 的超声波换能器TCT40-10F1(T 发射)和 TCT40-10S1(R 接收) ,中心频率为 40kHz,安装时应保持两换能器中心轴线平行并相距 48cm,其余元件无特殊要求。若能将超声波接收电路用金属壳屏蔽起来,则可提高抗干扰能力。根据测量范围要求不同,可适当调整与接收换能器并接的滤波电容 C 的大小,以获得合适的接收灵敏度和抗干扰能力。7.2 提高精度的方案及系统设计 (1)温度校正的方法提高测距精度 由上述的误差分析知,如果能够知道当地温度,则可根据公式 求出当地声速,从而能够获得较高的测量精度。而问题的关键在于获得温度数据的方法。采用热敏电阻、热电耦、集成温度传感器都可以获得较为准确的温度值。 为了便于对温度信号的数据采集及处理,我们采用 DALASS 公司生产的 DS18B20 集徐 州 工 程 学 院 毕 业 设 计 (论 文 )16成温度传感器。 DS18B20 采用了 DALASS 公司的 1-WIRE 总线专利技术,能够仅在占用控制器一个 I/O 口的情况下工作(芯片可由数据线供电) ,极大的方便了使用者的调试使用,而且其在 10oC 85oC 的工作环境下可以保持 0.5% 的使用精度,在这个空间内足以保证为超声波测距设备提供足够的精度范围。 通过 DS18B20 芯片获得的数据信号经由 1-WIRE 总线传至 MCU ,由软件进行声速换算。为了更好的实现换算过程同时兼顾设备的使用成本,我们采用宏晶公司的最新推出的 STC12C5410 单片机实现超声波测距的各项功能。 STC12C5410 采用了低成本、低功耗、强抗干扰设计,并且在最高支持 48MHz 的前提下能够实现 1 个时钟 / 机械周期的运行速度。由于能够使用高频率的晶振,因此相对于普通单片机来说可以有效的减少由计时问题带来的量化误差,能够满足较高精度超声波测距仪的设计要求。 (2)标杆校正的方法提高测距精度 在复杂环境下,如果难于获得环境温度,或者不便获得环境温度时,如果仍旧要求较高的测量精度,我们采用所谓标杆校正的方法实现超声波测距精度的校正。标杆校正的示意图下图 7-1 所示。图 7- 1 标杆校正的示意图超声波测距装置首先测量距离已知为 h 的基平面(标杆)声波往返所用的时间,而后由测得的时间和距离 h 根据公式 求出当地声速。通过这样的方法,我们也能够顺利的求出声速,省去了使用传感器测量温度所带来的麻烦。因此,只用为测距设备设定“标定”和“测量”两种状态,即能够实现温度校正所能实现的高精度测距功能。徐 州 工 程 学 院 毕 业 设 计 (论 文 )178 系统的扩展超声波测距系统在测量距离时,容易受到温度的影响,从而导致误差,在此通过DS18B20 对其进行改进。8.1 DS18B20 的简介8.11DS18B20 的主要特性(1)适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数据线供电。(2)独特的单线接口方式,DS18B20 在与微处理器连接时仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯。(3)DS18B20 支持多点组网功能,多个 DS18B20 可以并联在唯一的三线上,实现组网多点测温。(4)DS18B20 在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。(5)温范围55125,在-10+85时精度为0.5。(6)可编程的分辨率为 912 位,对应的可分辨温度分别为 0.5、0.25、0.125和 0.0625,可实现高精度测温。(7)在 9 位分辨率时最多在 93.75ms 内把温度转换为数字,12 位分辨率时最多在750ms 内把温度值转换为数字,速度更快。(8)测量结果直接输出数字温度信号,以“一线总线“串行传送给 CPU,同时可传送徐 州 工 程 学 院 毕 业 设 计 (论 文 )18CRC 校验码,具有极强的抗干扰纠错能力。(9)负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。8.12 DS18B20 的外形和内部结构DS18B20 内部结构主要由四部分组成:64 位光刻 ROM、温度传感器、非挥发的温度报警触发器 TH 和 TL、配置寄存器。DS18B20 的外形及管脚排列如下图 8-1:图 8-1DS18B20 的外形及管脚排列8.13 DS18B20 的工作原理DS18B20 的读写时序和测温原理与 DS1820 相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由 2s 减为 750ms。 DS18B20 测温原理如图 3 所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器 1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器 2 的脉冲输入。计数器 1 和温度寄存器被预置在55所对应的一个基数值。计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当计数器 1 的预置值减到 0 时,温度寄存器的值将加 1,计数器 1 的预置将重新被装入,计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器 2 计数到 0 时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图 8-2 中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器 1 的预置值。图 8-2DS18B20 测温原理框图徐 州 工 程 学 院 毕 业 设 计 (论 文 )198.14 DS18B20 有 4 个主要的数据部件(1)光刻 ROM 中的 64 位序列号是出厂前被光刻好的,它可以看作是该 DS18B20 的地址序列码。64 位光刻 ROM 的排列是:开始 8 位(28H)是产品类型标号,接着的 48 位是该 DS18B20 自身的序列号,最后 8 位是前面 56 位的循环冗余校验码(CRC=X8+X5+X4+1) 。光刻 ROM 的作用是使每一个 DS18B20 都各不相同,这样就可以实现一根总线上挂接多个 DS18B20 的目的。(2)DS18B20 中的温度传感器可完成对温度的测量,以 12 位转化为例:用 16 位符号扩展的二进制补码读数形式提供,以 0.0625/LSB 形式表达,其中 S 为符号位。表 1: DS18B20 温度值格式表这是 12 位转化后得到的 12 位数据,存储在 18B20 的两个 8 比特的 RAM 中,二进制中的前面 5 位是符号位,如果测得的温度大于 0,这 5 位为 0,只要将测到的数值乘于0.0625 即可得到实际温度;如果温度小于 0,这 5 位为 1,测到的数值需要取反加 1 再乘于 0.0625 即可得到实际温度。表 2: DS18B20 温度数据表(3)DS18B20 温度传感器的存储器 DS18B20 温度传感器的内部存储器包括一个高速暂存 RAM 和一个非易失性的可电擦除的 EEPRAM,后者存放高温度和低温度触发器 TH、TL 和结构寄存器。 (4)配置寄存器该字节各位的意义如下:表 3: 配置寄存器结构TM R1 R0 1 1 1 1 1徐 州 工 程 学 院 毕 业 设 计 (论 文 )20低五位一直都是“1“,TM 是测试模式位,用于设置 DS18B20 在工作模式还是在测试模式。在 DS18B20 出厂时该位被设置为 0,用户不要去改动。8.2 DS18B20 与单片机的连接在硬件上,DS18B20 与单片机的连接有两种方法,一种是 Vcc 接外部电源,GND接地,I/O 与单片机的 I/O 线相连;另一种是用寄生电源供电,此时 UDD、GND 接地,I/O 接单片机 I/O。无论是内部寄生电源还是外部供电,I/O 口线要接 5K 左右的上拉电阻。CPU 对 DS18B20 的访问流程是:先对 DS18B20 初始化,再进行 ROM 操作命令,最后才能对存储器操作,数据操作。DS18B20 每一步操作都要遵循严格的工作时序和通信协议。如主机控制 DS18B20 完成温度转换这一过程,根据 DS18B20 的通讯协议,须经三个步骤:每一次读写之前都要对 DS18B20 进行复位,复位成功后发送一条 ROM 指令,最后发送 RAM 指令,这样才能对 DS18B20 进行预定的操作。 8.3 DS18B20 与 51 单片机的连接程序; FLAG1: 标志位,为“1“时表示检测到 DS18B20; DQ: DS18B20 的数据总线接脚; TEMPER_NUM:保存读出的温度数据; 晶振为 12MHZ 左右TEMPER_L EQU 36HTEMPER_H EQU 35HDQ BIT P1.7; DS18B20 初始化程序;/*/INIT_1820:SETB DQNOPCLR DQMOV R0,#06BHTSR1:徐 州 工 程 学 院 毕 业 设 计 (论 文 )21DJNZ R0,TSR1 ; 延时SETB DQMOV R0,#25HTSR2:JNB DQ,TSR3DJNZ R0,TSR2LJMP TSR4 ; 延时TSR3:SETB FLAG1 ; 置标志位,表示 DS1820 存在LJMP TSR5TSR4:CLR FLAG1 ; 清标志位,表示 DS1820 不存在LJMP TSR7TSR5:MOV R0,#06BHTSR6:DJNZ R0,TSR6 ; 延时TSR7:SETB DQRET;/*/; 读出转换后的温度值;/*/GET_TEMPER:SETB DQ ; 定时入口LCALL INIT_1820JB FLAG1,TSS2RET ; 若 DS18B20 不存在则返回TSS2:MOV A,#0CCH ; 跳过 ROM 匹配LCALL WRITE_1820MOV A,#44H ; 发出温度转换命令LCALL WRITE_1820徐 州 工 程 学 院 毕 业 设 计 (论 文 )22LCALL INIT_1820MOV A,#0CCH ; 跳过 ROM 匹配LCALL WRITE_1820MOV A,#0BEH ; 发出读温度命令LCALL WRITE_1820LCALL READ_1820MOV TEMPER_NUM,A ; 将读出的温度数据保存RET;/*/; 读 DS18B20 的程序,从 DS18B20 中读出一个字节的数据;/*/READ_1820:MOV R2,#8RE1:CLR CSETB DQNOPNOPCLR DQNOPNOPNOPSETB DQMOV R3,#7DJNZ R3,$MOV C,DQMOV R3,#23DJNZ R3,$RRC ADJNZ R2,RE1RET;/*/; 写 DS18B20 的程序徐 州 工 程 学 院 毕 业 设 计 (论 文 )23;/*/WRITE_1820:MOV R2,#8CLR CWR1:CLR DQMOV R3,#6DJNZ R3,$RRC AMOV DQ,CMOV R3,#23DJNZ R3,$SETB DQNOPDJNZ R2,WR1SETB DQRET;/*/; 读 DS18B20 的程序,从 DS18B20 中读出两个字节的温度数据;/*/READ_18200:MOV R4,#2 ; 将温度高位和低位从 DS18B20 中读出MOV R1,#36H ; 低位存入 36H(TEMPER_L),高位存入 35H(TEMPER_H)RE00:MOV R2,#8RE01:CLR CSETB DQNOPNOPCLR DQNOPNOPNOP徐 州 工 程 学 院 毕 业 设 计 (论 文 )24SETB DQMOV R3,#7DJNZ R3,$MOV C,DQMOV R3,#23DJNZ R3,$RRC ADJNZ R2,RE01MOV R1,ADEC R1DJNZ R4,RE00RET;/*/; 将从 DS18B20 中读出的温度数据进行转换;/*/TEMPER_COV:MOV A,#0F0HANL A,TEMPER_L ; 舍去温度低位中小数点后的四位温度数值SWAP AMOV TEMPER_NUM,AMOV A,TEMPER_LJNB ACC.3,TEMPER_COV1 ; 四舍五入去温度值INC TEMPER_NUMTEMPER_COV1:MOV A,TEMPER_HANL A,#07HSWAP AORL A,TEMPER_NUMMOV TEMPER_NUM,A ; 保存变换后的温度数据LCALL BIN_BCDRET;/*/徐 州 工 程 学 院 毕 业 设 计 (论 文 )25; 将 16 进制的温度数据转换成压缩 BCD 码;/*/BIN_BCD:MOV DPTR,#TEMP_TABMOV A,TEMPER_NUMMOVC A,A+DPTRMOV TEMPER_NUM,ARETTEMP_TAB:DB 00H,01H,02H,03H,04H,05H,06H,07HDB 08H,09H,10H,11H,12H,13H,14H,15HDB 16H,17H,18H,19H,20H,21H,22H,23HDB 24H,25H,26H,27H,28H,29H,30H,31HDB 32H,33H,34H,35H,36H,37H,38H,39HDB 40H,41H,42H,43H,44H,45H,46H,47HDB 48H,49H,50H,51H,52H,53H,54H,55HDB 56H,57H,58H,59H,60H,61H,62H,63HDB 64H,65H,66H,67H,68H,69H,70H;/*/
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸设计 > 毕设全套


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!