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

上传人:小小飞 文档编号:3264381 上传时间:2019-08-06 格式:DOC 页数:48 大小:694.17KB
返回 下载 相关 举报
基于AT89C51单片机超声波测距仪的设计.doc_第1页
第1页 / 共48页
基于AT89C51单片机超声波测距仪的设计.doc_第2页
第2页 / 共48页
基于AT89C51单片机超声波测距仪的设计.doc_第3页
第3页 / 共48页
基于AT89C51单片机超声波测距仪的设计.doc_第4页
第4页 / 共48页
基于AT89C51单片机超声波测距仪的设计.doc_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《基于AT89C51单片机超声波测距仪的设计.doc》由会员分享,可在线阅读,更多相关《基于AT89C51单片机超声波测距仪的设计.doc(48页珍藏版)》请在三一文库上搜索。

1、徐州工程学院毕业设计(论文 ) 图书分类号: 密 级: 毕业设计(论文) 基于 AT89C51 单片机超声波测距仪的设计 BASED ON AT89C51 ULTRASONIC RANGEFINDER DESIGN 学生姓名严海波 学院名称信电工程学院 专业名称电子信息工程技术 指导教师高玉芹 徐州工程学院毕业设计(论文 ) I 摘要 超声波是一种在弹性介质中的机械振荡,它是由与介质相接触的振荡源所引起的, 其频率在 20000Hz 以上。由于它有指向性强、方向性好、传播能量大、传播距离较远等 特点,因此常用于测量物体的距离。 本文介绍了基于 AT89C51 单片机的超声波测距仪的软硬件设计,

2、整个系统分为单片 机控制模块、发射模块和接收模块组成。程序采用模块化设计,由主程序、预置子程序、 发射子程序、接收子程序、显示子程序等模块组成。超声探头接收的信号经单片机综合 分析处理后,实现了超声波测距仪的各种功能。 关键词关键词 超声波 AT89C51 测量距离 徐州工程学院毕业设计(论文 ) II 目目 录录 1 绪论 1 1.1 研究背景 .1 1.2 研究内容 .1 2 相关知识 2 2.1 超声波发生器 .2 2.2.单片机的任务.2 2.3 AT89C51 单片机主要特性和引脚功能2 3 理论分析与计算.5 3 3.1 测量与控制方法 .5 3.3 超声波测距误差分析 .6 4

3、系统硬件电路设计.8 4.1 单片机系统及显示电路 .8 4.1.1 74LS244 的简介.9 4.2 超声波发射电路 .9 4.3 超声波监测接收电路 10 4.4 显示电路原理 11 5 系统软件设计12 5.1 主程序 12 5.2 超声波发生子程序和接收子程序 13 5.3 超声波的接收与处理 14 6 6 单片机系统的可靠性15 6.1 测试单片机系统的可靠性 15 6.2 单片机的抗干扰性 15 7 软硬件调试16 7.1 调试 16 7.2 提高精度的方案及系统设计 16 8 系统的扩展18 8.1 DS18B20 的简介.18 8.11DS18B20 的主要特性.18 8.1

4、2 DS18B20 的外形和内部结构18 8.13 DS18B20 的工作原理19 8.14 DS18B20 有 4 个主要的数据部件19 8.2 DS18B20 与单片机的连接.20 8.3 DS18B20 与 51 单片机的连接程序21 结论 .27 致谢 .28 徐州工程学院毕业设计(论文 ) III 参考文献 .29 附录 .30 附录 1 电路原理图30 附录 2 程序源代码31 徐州工程学院毕业设计(论文 ) 0 1 绪论 1.1 研究背景 由于社会不断进步发展,许多传统的测距方法已经无法满足我们的需求,例如在井 深,液位,管道长度等场合。还有在很多要求实时测距的情况下,传统的测距

5、方法也很 难完成测量的任务。于是,在这种情况下一种新的测距方法诞生了-超声波测距。 超声波可用于非接触测量,具有不受光、电磁波以及粉尘等外界因素的干扰的优点, 是利用计算超声波在被测物体和超声波探头之间的传输来测量距离的,对被测目标无损 害。而且超声波传播速度在相当大范围内与频率无关。超声波的这些独特优点越来越受 到人们的重视。 目前对于超声波精确测距的需求也越来越大,如油库和水箱液面的精确测量和控制, 物体内气孔大小的检测和机械内部损伤的检测等。在机械制造,电子冶金,航海,宇航, 石油化工,交通等工业领域也有广泛地应用。此外,在材料科学,医学,生物科学等领 域中也占具重要地位。 1.2 研究

6、内容 超声波测距仪主要以单片机 AT89C51 为核心,其发射器是利用压电晶体的谐振带动 周围空气振动来工作的.超声波发射器向某一方向发射超声波,在发射的同时开始计时 , 超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器接收到反射波就立 即停止计时。一般情况下,超声波在空气中的传播速度为 340m/ s,根据计时器记录的时 间 t ,就可以计算出发射点距障碍物的距离 s,即 s=340t/2。 本系统的一个亮点就是利用超声波测量距离,超声波具有不受光、电磁波以及粉尘等 外界因素的干扰的优点,而且超声波传播速度在相当大范围内与频率无关。 徐州工程学院毕业设计(论文 ) 1 2 相关知

7、识 2.1 超声波发生器 我们知道,由于超声波指向性强,能量消耗缓慢,在介质中传播的距离比较远,因 而超声波经常用于距离的测量。利用超声波检测距离,设计比较方便,计算处理也比较 简单,并且在测量精度方面也能达到日常使用的要求。 超声波发生器可以分为两大类:一类是用电气方式产生超声波,一类是用机械方式 产生超声波。电气方式包括压电型、电动型;机械方式有加尔统笛、液哨和气流旋笛等, 它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同,目前在 近距离测量方面较为常用的是压电式超声波换能器。 2.2.单片机的任务 单片机的任务是指以单片机为核心,构建硬件部分和软件部分组成,配以一定的

8、外 围电路和软件,实现某几种功能,完成相应的任务。硬件是系统的基础,软件则是在硬 件的基础上对其合理的调配和使用,从而完成应用系统所要完成的基础。一般来讲,所 要完成的任务不同,相应的硬件配置和软件配置也就不同。因此,单片机的设计应包括 硬件设计和软件设计两大部分。 2.3 AT89C51 单片机主要特性和引脚功能 AT89C51 是带 4K 字节闪烁可编程可擦除只读存储器(EPEROM)的低电压、高性能 CMOS 8 位微处理器(俗称单片机) 。该单片机与工业标准的 MCS-51 型机的指令集和输出 引脚兼容。AT89C51 将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,为很多嵌入

9、式控 制提供了灵活性高且价格低廉的方案。 AT89C51 的主要特性如下: 寿命达 1000 写/擦循环; 数据保留时间:10 年; 全静态工作:0Hz-24MHz; 三级程序存储器锁定; 128 * 8 位内部 RAM; 32 可编程 I/O 线; 2 个 16 位定时器/计数器; 5 个中断源; 可编程串行通道; 低功耗闲置和掉电模式; 片内振荡器和时钟电路; 徐州工程学院毕业设计(论文 ) 2 AT89C51 引脚排列如图 1 所示,引脚功能如下图 2-1 所示: 图 2-1AT89C51 引脚图 VCC(40):+5V. GND(20):接地。 P0 口:P0 口为一个 8 位漏级开路

10、双向 I/O 口,每脚可吸收 8TTL 门电流。当 P1 口的 管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定 义为数据/地址的第八位。在 FIASH 编程时,P0 口作为原码输入口,当 FIASH 进行校验 时,P0 输出原码,此时 P0 外部必须被拉高。 P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平 时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作为第八位 地址接收。 P2

11、口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为 输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于 外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给 出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口 输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制 信号。 P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/

12、O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为 低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。 RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。 徐州工程学院毕业设计(论文 ) 3 在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正 脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。 然而要注意的是:每当用作外

13、部数据存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的 输出可在 SFR8EH 地址上置 0。此时, ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。 另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次 /PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。 /EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH) ,不管是否 有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为 RESET

14、;当/EA 端保持高电平 时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP) 。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 徐州工程学院毕业设计(论文 ) 4 3 理论分析与计算理论分析与计算 3 3.1 测量与控制方法 声波在其传播介质中被定义为纵波。当声波受到尺寸大于其波长的目标物体阻挡时 就会发生反射;反射波称为回声。假如声波在介质中传播的速度是已知的,而且声波从 声源到达目标然后返回声源的时间可以测量得到,从声波到目标的距离就可以精确地计 算出来。这就是本系统的测量原理。 超声波传感器的结

15、构如图 3-1 所示。 图 3 -1 超声波传感器结构 超声波测距器的系统框图如图 3-2 所示: 图 3-2 超声波测距器的系统框图 超声波也是一种声波,其声速 c 与温度有关,表 3-3 列出了几种不同温度下的超声 波声速。在使用时,如果温度变化不大,则可认为声速是基本不变的。如果测距精度要 求很高,则应通过温度补偿的方法加以校正。声速确定后,只要测得超声波往返的时间, 即可求得距离。 表 3-3 不同温度下超声波声速表 温度/c-30-20-100102030100 声速声速 c/(m/s)c/(m/s) 313319325323338344349386 徐州工程学院毕业设计(论文 )

16、5 3.2 理论计算 图 3-4 测距的原理 如图 3-4 所示为反射时间法,是利用检测声波发出到接收到被测物反射回波的时间来 测量距离其原理如图所示,对于距离较短和要求不高的场合我们可认为空气中的声速为 常数,我们通过测量回波时间 T 利用公式 S=C*(T/2)其中,S 为被测距离、V 为空气中声 速、T 为回波时间(T=T1+T2),可以计算出路程,这种方法不受声波强度的影响,直接 耦合信号的影响也可以通过设置“时间门”来加以克服。 这样可以求出距离: S=C(T1-T2)/2 3.3 超声波测距误差分析 (1) 发射接收时间对测量精度的影响分析 采用 TR40 压电超声波传感器压电超声

17、波传感器,脉冲发射由单片机控制,发射频率 40KHz ,忽略 脉冲电路硬件产生的延时,可知由软件生成的起始时间对于一般要求的精度是可靠的。 对于接收到的回波,超声波在空气介质的传播过程中会有很大的衰减,其衰减遵循指数 规律。 设测量设备基准面距被测物距离为 h,则空气中传播的超声波波动方程为: k ht +ktet +kt 2 0 AAcosAcos 由以上公式可知,超声波在传播过程中存在衰减,且超声波频率越高,衰减越快, 但频率的增高有利于提高超声波的指向性。 经以上分析,超声波回波的幅值在传播过程中衰减很大,收到的回波信号可能十分 微弱,要想判断捕获到的第一个回波确定准确的接受时间,必须对

18、收到的信号进行足够 的放大,否则不正确的判断回波时间,会对超声波测量精度产生影响。 (2) 当地声速对测量精度的影响分析 当地声速对超声波测距测量精度的影响远远要比收发时间的影响严重。超声波在大 气中传播的速度受介质气体的温度、密度及气体分子成分的影响,即: 徐州工程学院毕业设计(论文 ) 6 s RT C M 由上式知,在空气中,当地声速只决定于气体的温度,因此获得准确的当地气温可 以有效的提高超声波测距时的测量精度。工程上常用的由气温估算当地声速的公式如下: 0 CC1 T 273 式中 C0=331.4m/s ; T为绝对温度,单位 K 。 此公式一般能为声速的换算提供较为准确的结果。实

19、际情况下,温度每上升或者下 降 1oC, 声速将增加或者减少 0.607m /s ,这个影响对于较高精度的测量是相当严重的。 因此提高超声波测量精度的重中之重就是获得准确的当地声速。 徐州工程学院毕业设计(论文 ) 7 4 系统硬件电路设计 硬件电路主要分为单片机系统及显示电路、超声波发射电路和超声波检测接收电路 三部分。 4.1 单片机系统及显示电路 单片机采用 AT89C51 或其兼容系列。采用 12MHZ 高精度的晶振,以获得较稳定的 时钟频率,减小测量误差。单片机用 P1.0 端口输出超声波换能器所需的 40KMZ 方波信号, 利用外中断 0 口监测超声波接收电路输出的返回信号。显示电

20、路采用简单实用的 4 位共 阳 LED 数码管,段码用 74LS244 驱动,位码用 PNP 三极管 8550 驱动。 单片机系统及显示电路如下图 4-1 所示 图 4-1 单片机系统及显示电路 徐州工程学院毕业设计(论文 ) 8 4.1.1 74LS244 的简介 (1)74LS244 引脚图如下 4-2 所示: 图 4-2 74LS244 引脚图 (2)引脚功能: 1A11A4,2A12A4 输入端 /1G, /2G 三态允许端(低电平有效) 1Y11Y4,2Y12Y4 输出端 4.2 超声波发射电路 超声波发射电路原理图如下图 4-3 所示。发生电路主要由反向器 74LS04 和超声波发

21、 射换能器 T 构成,单片机 P1.0 端口输出的 40KMz 方波信号一路经一级反向器后送到超声 波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极。用这种 推挽形式将方波信号加到超声波换能器两端,可以提高超声波的发射强度。输出端采用 两个反向器并联,用以提高驱动能力。上拉电阻 R10、R11 一方面可以提高反向器 74LS04 输出高电平的驱动能力,另一方面可以增加超声换能器的阻尼效果,缩短其自由振荡的 时间。 压电式超声波换能器是利用压电晶体的谐振来工作的。超声波换能器内部结构它有 两个压电晶片和一个共振板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振 徐州工程学

22、院毕业设计(论文 ) 9 荡频率时,压电晶片将会发生共振,并带动共振板振动产生超声波,这时它就是一个超 声波发生器;反之,如果两电极间未加电压,当共振板接收到超声波时,将压迫压电晶 片作振动,将机械能转换为电信号,这时它就成为超声波接收换能器了。超声波发射换 能器与接收换能器其结构上稍有不同,使用时应分清器件上的标志。 图 4-3 超声波发射电路 4.3 超声波监测接收电路 集成电路 CX20106A 是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收 器。考虑到红外遥控常用的载波频率 38KHz 与测距的超声波频率 40kHz 较为接近,可以 利用它制作超声波检测接收电路。实验证明用

23、CX20106A 接收超声波(无信号时输出高电 平) ,具有很高的灵敏度和较强的抗干扰能力。适当更改电容 C4 的大小,可以改变接收 电路的灵敏度和抗干扰能力。如图 4-4 所示: 徐州工程学院毕业设计(论文 ) 10 图 4-4 超声波检测电路 4.4 显示电路原理 超声波测距仪显示模块如下图 4-5 所示。通过单片机的 15、16、17 三个管脚的 信号控制三个三极管的 B 级,利用三极管的开关特性,实现数码管的点亮,从而实现动 态显示。 4-5 显示模块 徐州工程学院毕业设计(论文 ) 11 5 系统软件设计 5.1 主程序 主程序首先是对系统环境初始化,设置定时器 T0 工作模式为 1

24、6 位定时计数器模式, 置位总中断容许位 EA 并给显示端口 P0 和 P2 清 0.然后调用超声波发生子程序送出一个超 声波脉冲,为了避免超声波从发射器直接传送到接收器引起的直射波触发,需要延时约 0.1ms(这也就是超声波测距器会有一个最小可测距离的原因)后,才打开外中断 0 接收 返回的超声波信号。由于采用的是 12MHz 的晶振,计数器每计一个数就是 1us,当主程序 检测到接收成功的标志位后,将计数器 T0 中的数(即超设波来回所用的距离)按下式计 算,即可得被测物体与测距器之间的距离,设计时取 20 度时的声速为 344m/s 则有: S=(C*T)/2=172T0/10000cm

25、 其中 T0 为计数器 T0 的计数值。 测出距离后结果将以十进制 BCD 码方式送往 LED 显示约 0.5s,然后再发超声波脉冲重 复测量过程。为了有利于程序结构化合容易计算出距离,主程序采用 C 语言编写。 图 5-1 为主程序流程图 徐州工程学院毕业设计(论文 ) 12 图 5-1 流程图 5.2 超声波发生子程序和接收子程序 (1)超声波发生子程序的作用是通过 P1.0 端口发送 2 个左右的超声波信号频率约 40KHz 的方波,脉冲宽度为 12us 左右,同时把计数器 T0 打开进行计时。 (2)超声波测距器主程序利用外中断 0 检测返回超声波信号,一旦接收到返回超 声波信号(IN

26、T0 引脚出现低电平),立即进入中断程序。进入该中断后就立即关闭计时 器 T0 停止计时,并将测距成功标志字赋值 1。 (3)如果当计时器溢出时还未检测到超声波返回信号,则定时器 T0 溢出中断将外 中断 0 关闭,并将测距成功标志字赋值 2 以表示此次测距不成功。如下图 5-2 所示: 徐州工程学院毕业设计(论文 ) 13 图 5-2 超声波发生子程序和超声波接收中断程序流程图 5.3 超声波的接收与处理 接收头采用与发射头配对的 UCM40R,将超声波调制脉冲变为交变电压信号,经运算 放大器 IC1A 和 IC1B 两极放大后加至 IC2。IC2 是带有锁定环的音频译码集成块 LM567,

27、 内部的压控振荡器的中心频率 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.

28、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 徐州工程学院毕业设计(论文 ) 14 6 6 单片机系统的可靠性单片机系统的可靠性 6.1 测试单片机系统的可靠性 当一个单片机系统设计完成后,对于不同的单片机系统产品会有不同的测试项目和 方法,但是有一些是必须测试的

29、。 (1)测试单片机软件功能的完整性。这是针对所有单片机系统功能的测试,测试软件 是否写得正确完整。 (2)上电、掉电测试。在使用中用户必然会遇到上电和掉电的情况,可以进行多次开 关电源,测试单片机系统的可抗性。 (3)老化测试。测试长时间工作情况下,单片机系统的可抗性。必要的话可以放置在 高温、高压以及强电磁干扰的环境下测试。 (4)ESD 和 EFT 等测试。可以使用各种干扰模拟器来测试单片机系统的可抗性。例如 使用静电模拟器测试单片机系统的抗静电 ESD 能力;使用突波杂讯模拟器进行快速脉冲 抗干扰 EFT 测试等。 6.2 单片机的抗干扰性 影响单片机系统可靠安全运行的主要因素主要来自

30、系统内部和外部的各种电气干 扰,并受系统结构设计、元器件选择、安装、制造工艺的影响。这些都是单片机系统的 徐州工程学院毕业设计(论文 ) 15 干扰因素,常会导致单片机系统运行失常,轻则影响产品质量和产量,重则会导致事故, 造成重大经济损失。 形成干扰的基本要素有三个: (1)干扰源。指产生干扰的元件、设备或信号,用数学语言描述为 du/dt、di/dt 大的地 方就是干扰源,如雷电、继电器、可控硅、电机、高频时钟等都可能成为干扰源 (2)传播路径。指干扰从干扰源传播到敏感器件的通路或媒介。典型的干扰传播路径是 通过导线的传导和空间的辐射。 (3)敏感器件。指容易被干扰的对象,如 A/D、D/

31、A 变换器,单片机,数字 IC,弱信号 放大器等。 7 软硬件调试 7.1 调试 测试是为了发现程序中的错误而执行程序的过程。具体地说,软件测试是根据软件 开发各阶段的规格说明和程序的内部结构而精心设计出一批测试用例,并利用测试用例 来运行程序,以发现程序错误的过程。 超声波测距仪的制作和调试,其中超声波发射和接收采用 15 的超声波换能器 TCT40-10F1(T 发射)和 TCT40-10S1(R 接收) ,中心频率为 40kHz,安装时应保持两换 能器中心轴线平行并相距 48cm,其余元件无特殊要求。若能将超声波接收电路用金属 壳屏蔽起来,则可提高抗干扰能力。根据测量范围要求不同,可适当

32、调整与接收换能器 并接的滤波电容 C 的大小,以获得合适的接收灵敏度和抗干扰能力。 7.2 提高精度的方案及系统设计 (1)温度校正的方法提高测距精度 由上述的误差分析知,如果能够知道当地温度,则可根据公式 求出当地声速, 从而能够获得较高的测量精度。而问题的关键在于获得温度数据的方法。采用热敏电阻、 热电耦、集成温度传感器都可以获得较为准确的温度值。 为了便于对温度信号的数据采集及处理,我们采用 DALASS 公司生产的 DS18B20 集 徐州工程学院毕业设计(论文 ) 16 成温度传感器。 DS18B20 采用了 DALASS 公司的 1-WIRE 总线专利技术,能够仅在占用 控制器一个

33、 I/O 口的情况下工作(芯片可由数据线供电) ,极大的方便了使用者的调试 使用,而且其在 10oC 85oC 的工作环境下可以保持 0.5% 的使用精度,在这 个空间内足以保证为超声波测距设备提供足够的精度范围。 通过 DS18B20 芯片获得的数据信号经由 1-WIRE 总线传至 MCU ,由软件进行声速 换算。为了更好的实现换算过程同时兼顾设备的使用成本,我们采用宏晶公司的最新推 出的 STC12C5410 单片机实现超声波测距的各项功能。 STC12C5410 采用了低成本、低 功耗、强抗干扰设计,并且在最高支持 48MHz 的前提下能够实现 1 个时钟 / 机械周期 的运行速度。由于

34、能够使用高频率的晶振,因此相对于普通单片机来说可以有效的减少 由计时问题带来的量化误差,能够满足较高精度超声波测距仪的设计要求。 (2)标杆校正的方法提高测距精度 在复杂环境下,如果难于获得环境温度,或者不便获得环境温度时,如果仍旧要求 较高的测量精度,我们采用所谓标杆校正的方法实现超声波测距精度的校正。标杆校正 的示意图下图 7-1 所示。 图 7- 1 标杆校正的示意图 超声波测距装置首先测量距离已知为 h 的基平面(标杆)声波往返所用的时间,而 后由测得的时间和距离 h 根据公式 求出当地声速。通过这样的方法,我们也能够顺 利的求出声速,省去了使用传感器测量温度所带来的麻烦。因此,只用为

35、测距设备设定 “标定”和“测量”两种状态,即能够实现温度校正所能实现的高精度测距功能。 徐州工程学院毕业设计(论文 ) 17 8 系统的扩展 超声波测距系统在测量距离时,容易受到温度的影响,从而导致误差,在此通过 DS18B20 对其进行改进。 8.1 DS18B20 的简介 8.11DS18B20 的主要特性 (1)适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数据线供电。 (2)独特的单线接口方式,DS18B20 在与微处理器连接时仅需要一条口线即可实现微 处理器与 DS18B20 的双向通讯。 (3)DS18B20 支持多点组网功能,多个 DS18B20 可以并联在唯一

36、的三线上,实现组网 多点测温。 (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,同时可传送 徐州工程学院毕业设计(论文 ) 18 CRC 校验码,

37、具有极强的抗干扰纠错能力。 (9)负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。 8.12 DS18B20 的外形和内部结构 DS18B20 内部结构主要由四部分组成:64 位光刻 ROM、温度传感器、非挥发的温度报 警触发器 TH 和 TL、配置寄存器。DS18B20 的外形及管脚排列如下图 8-1: 图 8-1DS18B20 的外形及管脚排列 8.13 DS18B20 的工作原理 DS18B20 的读写时序和测温原理与 DS1820 相同,只是得到的温度值的位数因分辨率 不同而不同,且温度转换时的延时时间由 2s 减为 750ms。 DS18B20 测温原理如图 3 所示

38、。 图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计 数器 1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器 2 的脉 冲输入。计数器 1 和温度寄存器被预置在55所对应的一个基数值。计数器 1 对低温 度系数晶振产生的脉冲信号进行减法计数,当计数器 1 的预置值减到 0 时,温度寄存器 的值将加 1,计数器 1 的预置将重新被装入,计数器 1 重新开始对低温度系数晶振产生的 脉冲信号进行计数,如此循环直到计数器 2 计数到 0 时,停止温度寄存器值的累加,此 时温度寄存器中的数值即为所测温度。图 8-2 中的斜率累加器用于补偿和修正测温过程 中

39、的非线性,其输出用于修正计数器 1 的预置值。 图 8-2DS18B20 测温原理框图 徐州工程学院毕业设计(论文 ) 19 8.14 DS18B20 有 4 个主要的数据部件 (1)光刻 ROM 中的 64 位序列号是出厂前被光刻好的,它可以看作是该 DS18B20 的 地址序列码。64 位光刻 ROM 的排列是:开始 8 位(28H)是产品类型标号,接着的 48 位 是该 DS18B20 自身的序列号,最后 8 位是前面 56 位的循环冗余校验码 (CRC=X8+X5+X4+1) 。光刻 ROM 的作用是使每一个 DS18B20 都各不相同,这样就可以实现 一根总线上挂接多个 DS18B2

40、0 的目的。 (2)DS18B20 中的温度传感器可完成对温度的测量,以 12 位转化为例:用 16 位符 号扩展的二进制补码读数形式提供,以 0.0625/LSB 形式表达,其中 S 为符号位。 表表 1:1: DS18B20 温度值格式表 这是 12 位转化后得到的 12 位数据,存储在 18B20 的两个 8 比特的 RAM 中,二进制 中的前面 5 位是符号位,如果测得的温度大于 0,这 5 位为 0,只要将测到的数值乘于 0.0625 即可得到实际温度;如果温度小于 0,这 5 位为 1,测到的数值需要取反加 1 再乘 于 0.0625 即可得到实际温度。 表表 2:2: DS18B

41、20 温度数据表 (3)DS18B20 温度传感器的存储器 DS18B20 温度传感器的内部存储器包括一个高速暂存 RAM 和一个非易失性的 可电擦除的 EEPRAM,后者存放高温度和低温度触发器 TH、TL 和结构寄存器。 (4)配置寄存器该字节各位的意义如下: 表表 3 3: 配置寄存器结构 TMR1R0 1 1 1 1 1 徐州工程学院毕业设计(论文 ) 20 低五位一直都是“1“,TM 是测试模式位,用于设置 DS18B20 在工作模式还是在测试模 式。在 DS18B20 出厂时该位被设置为 0,用户不要去改动。 8.2 DS18B20 与单片机的连接 在硬件上,DS18B20 与单片

42、机的连接有两种方法,一种是Vcc接外部电源,GND 接地,I/O 与单片机的 I/O 线相连;另一种是用寄生电源供电,此时 UDD、GND 接地, I/O 接单片机 I/O。无论是内部寄生电源还是外部供电,I/O 口线要接 5K 左右的 上拉电阻。 CPU 对 DS18B20 的访问流程是:先对 DS18B20 初始化,再进行 ROM 操作命令, 最后才能对存储器操作,数据操作。DS18B20 每一步操作都要遵循严格的工作时序 和通信协议。如主机控制 DS18B20 完成温度转换这一过程,根据 DS18B20 的通讯协 议,须经三个步骤:每一次读写之前都要对 DS18B20 进行复位,复位成功

43、后发送一 条 ROM 指令,最后发送 RAM 指令,这样才能对 DS18B20 进行预定的操作。 8.3 DS18B20 与 51 单片机的连接程序 ; FLAG1: 标志位,为“1“时表示检测到 DS18B20 ; DQ: DS18B20 的数据总线接脚 ; TEMPER_NUM:保存读出的温度数据 ; 晶振为 12MHZ 左右 TEMPER_L EQU 36H TEMPER_H EQU 35H DQ BIT P1.7 ; DS18B20 初始化程序 ;/*/ INIT_1820: SETB DQ NOP CLR DQ MOV R0,#06BH TSR1: 徐州工程学院毕业设计(论文 ) 2

44、1 DJNZ R0,TSR1 ; 延时 SETB DQ MOV R0,#25H TSR2: JNB DQ,TSR3 DJNZ R0,TSR2 LJMP TSR4 ; 延时 TSR3: SETB FLAG1 ; 置标志位,表示 DS1820 存在 LJMP TSR5 TSR4: CLR FLAG1 ; 清标志位,表示 DS1820 不存在 LJMP TSR7 TSR5: MOV R0,#06BH TSR6: DJNZ R0,TSR6 ; 延时 TSR7: SETB DQ RET ;/*/ ; 读出转换后的温度值 ;/*/ GET_TEMPER: SETB DQ ; 定时入口 LCALL INIT

45、_1820 JB FLAG1,TSS2 RET ; 若 DS18B20 不存在则返回 TSS2: MOV A,#0CCH ; 跳过 ROM 匹配 LCALL WRITE_1820 MOV A,#44H ; 发出温度转换命令 LCALL WRITE_1820 徐州工程学院毕业设计(论文 ) 22 LCALL INIT_1820 MOV A,#0CCH ; 跳过 ROM 匹配 LCALL WRITE_1820 MOV A,#0BEH ; 发出读温度命令 LCALL WRITE_1820 LCALL READ_1820 MOV TEMPER_NUM,A ; 将读出的温度数据保存 RET ;/*/ ;

46、 读 DS18B20 的程序,从 DS18B20 中读出一个字节的数据 ;/*/ READ_1820: MOV R2,#8 RE1: CLR C SETB DQ NOP NOP CLR DQ NOP NOP NOP SETB DQ MOV R3,#7 DJNZ R3,$ MOV C,DQ MOV R3,#23 DJNZ R3,$ RRC A DJNZ R2,RE1 RET ;/*/ ; 写 DS18B20 的程序 徐州工程学院毕业设计(论文 ) 23 ;/*/ WRITE_1820: MOV R2,#8 CLR C WR1: CLR DQ MOV R3,#6 DJNZ R3,$ RRC A M

47、OV DQ,C MOV R3,#23 DJNZ R3,$ SETB DQ NOP DJNZ R2,WR1 SETB DQ RET ;/*/ ; 读 DS18B20 的程序,从 DS18B20 中读出两个字节的温度数据 ;/*/ READ_18200: MOV R4,#2 ; 将温度高位和低位从 DS18B20 中读出 MOV R1,#36H ; 低位存入 36H(TEMPER_L),高位存入 35H(TEMPER_H) RE00: MOV R2,#8 RE01: CLR C SETB DQ NOP NOP CLR DQ NOP NOP NOP 徐州工程学院毕业设计(论文 ) 24 SETB DQ MOV R3,#7 DJNZ R3,$ MOV C,DQ MOV R3,#23 DJNZ R3,$ RRC A DJNZ R2,RE01 MOV R1,A DEC R1 DJNZ R4,RE00 RET ;/*/ ; 将从 DS18B20 中读出的温度数据进行转换 ;/*/ TEMPER_COV: MOV A,#0F0H ANL A,TEMPER_L ; 舍去温度低位中小数点后的四位温度数值 SWAP A M

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1