基于at89c51单片机超声波测距仪的设计_第1页
基于at89c51单片机超声波测距仪的设计_第2页
基于at89c51单片机超声波测距仪的设计_第3页
基于at89c51单片机超声波测距仪的设计_第4页
基于at89c51单片机超声波测距仪的设计_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

图书分类号密级毕业设计论文基于AT89C51单片机超声波测距仪的设计BASEDONAT89C51ULTRASONICRANGEFINDERDESIGN学生姓名严海波学院名称信电工程学院专业名称电子信息工程技术指导教师高玉芹2009年5月15日徐州工程学院毕业设计论文I摘要超声波是一种在弹性介质中的机械振荡,它是由与介质相接触的振荡源所引起的,其频率在20000HZ以上。由于它有指向性强、方向性好、传播能量大、传播距离较远等特点,因此常用于测量物体的距离。本文介绍了基于AT89C51单片机的超声波测距仪的软硬件设计,整个系统分为单片机控制模块、发射模块和接收模块组成。程序采用模块化设计,由主程序、预置子程序、发射子程序、接收子程序、显示子程序等模块组成。超声探头接收的信号经单片机综合分析处理后,实现了超声波测距仪的各种功能。关键词超声波AT89C51测量距离徐州工程学院毕业设计论文II目录1绪论111研究背景112研究内容12相关知识221超声波发生器222单片机的任务223AT89C51单片机主要特性和引脚功能23理论分析与计算531测量与控制方法533超声波测距误差分析64系统硬件电路设计841单片机系统及显示电路841174LS244的简介942超声波发射电路943超声波监测接收电路1044显示电路原理115系统软件设计1251主程序1252超声波发生子程序和接收子程序1353超声波的接收与处理146单片机系统的可靠性1561测试单片机系统的可靠性1562单片机的抗干扰性157软硬件调试1671调试1672提高精度的方案及系统设计168系统的扩展1881DS18B20的简介18811DS18B20的主要特性18812DS18B20的外形和内部结构18813DS18B20的工作原理19814DS18B20有4个主要的数据部件1982DS18B20与单片机的连接2083DS18B20与51单片机的连接程序21结论27致谢28徐州工程学院毕业设计论文III参考文献29附录30附录1电路原理图30附录2程序源代码31徐州工程学院毕业设计论文11绪论11研究背景由于社会不断进步发展,许多传统的测距方法已经无法满足我们的需求,例如在井深,液位,管道长度等场合。还有在很多要求实时测距的情况下,传统的测距方法也很难完成测量的任务。于是,在这种情况下一种新的测距方法诞生了超声波测距。超声波可用于非接触测量,具有不受光、电磁波以及粉尘等外界因素的干扰的优点,是利用计算超声波在被测物体和超声波探头之间的传输来测量距离的,对被测目标无损害。而且超声波传播速度在相当大范围内与频率无关。超声波的这些独特优点越来越受到人们的重视。目前对于超声波精确测距的需求也越来越大,如油库和水箱液面的精确测量和控制,物体内气孔大小的检测和机械内部损伤的检测等。在机械制造,电子冶金,航海,宇航,石油化工,交通等工业领域也有广泛地应用。此外,在材料科学,医学,生物科学等领域中也占具重要地位。12研究内容超声波测距仪主要以单片机AT89C51为核心,其发射器是利用压电晶体的谐振带动周围空气振动来工作的超声波发射器向某一方向发射超声波,在发射的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器接收到反射波就立即停止计时。一般情况下,超声波在空气中的传播速度为340M/S,根据计时器记录的时间T,就可以计算出发射点距障碍物的距离S,即S340T/2。本系统的一个亮点就是利用超声波测量距离,超声波具有不受光、电磁波以及粉尘等外界因素的干扰的优点,而且超声波传播速度在相当大范围内与频率无关。徐州工程学院毕业设计论文22相关知识21超声波发生器我们知道,由于超声波指向性强,能量消耗缓慢,在介质中传播的距离比较远,因而超声波经常用于距离的测量。利用超声波检测距离,设计比较方便,计算处理也比较简单,并且在测量精度方面也能达到日常使用的要求。超声波发生器可以分为两大类一类是用电气方式产生超声波,一类是用机械方式产生超声波。电气方式包括压电型、电动型;机械方式有加尔统笛、液哨和气流旋笛等,它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同,目前在近距离测量方面较为常用的是压电式超声波换能器。22单片机的任务单片机的任务是指以单片机为核心,构建硬件部分和软件部分组成,配以一定的外围电路和软件,实现某几种功能,完成相应的任务。硬件是系统的基础,软件则是在硬件的基础上对其合理的调配和使用,从而完成应用系统所要完成的基础。一般来讲,所要完成的任务不同,相应的硬件配置和软件配置也就不同。因此,单片机的设计应包括硬件设计和软件设计两大部分。23AT89C51单片机主要特性和引脚功能AT89C51是带4K字节闪烁可编程可擦除只读存储器(EPEROM)的低电压、高性能CMOS8位微处理器(俗称单片机)。该单片机与工业标准的MCS51型机的指令集和输出引脚兼容。AT89C51将多功能8位CPU和闪烁存储器组合在单个芯片中,为很多嵌入式控制提供了灵活性高且价格低廉的方案。AT89C51的主要特性如下寿命达1000写/擦循环;数据保留时间10年;全静态工作0HZ24MHZ;三级程序存储器锁定;1288位内部RAM;32可编程I/O线;2个16位定时器/计数器;5个中断源;可编程串行通道;低功耗闲置和掉电模式;片内振荡器和时钟电路;徐州工程学院毕业设计论文3AT89C51引脚排列如图1所示,引脚功能如下图21所示图21AT89C51引脚图VCC405VGND20接地。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当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。徐州工程学院毕业设计论文4在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP当/EA保持低电平时,则在此期间外部程序存储器(0000HFFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2来自反向振荡器的输出。徐州工程学院毕业设计论文53理论分析与计算31测量与控制方法声波在其传播介质中被定义为纵波。当声波受到尺寸大于其波长的目标物体阻挡时就会发生反射;反射波称为回声。假如声波在介质中传播的速度是已知的,而且声波从声源到达目标然后返回声源的时间可以测量得到,从声波到目标的距离就可以精确地计算出来。这就是本系统的测量原理。超声波传感器的结构如图31所示。图31超声波传感器结构超声波测距器的系统框图如图32所示图32超声波测距器的系统框图超声波也是一种声波,其声速C与温度有关,表33列出了几种不同温度下的超声波声速。在使用时,如果温度变化不大,则可认为声速是基本不变的。如果测距精度要求很高,则应通过温度补偿的方法加以校正。声速确定后,只要测得超声波往返的时间,即可求得距离。表33不同温度下超声波声速表温度/C3020100102030100声速C/M/S313319325323338344349386徐州工程学院毕业设计论文632理论计算图34测距的原理如图34所示为反射时间法,是利用检测声波发出到接收到被测物反射回波的时间来测量距离其原理如图所示,对于距离较短和要求不高的场合我们可认为空气中的声速为常数,我们通过测量回波时间T利用公式SCT/2其中,S为被测距离、V为空气中声速、T为回波时间(TT1T2),可以计算出路程,这种方法不受声波强度的影响,直接耦合信号的影响也可以通过设置“时间门”来加以克服。这样可以求出距离SCT1T2/233超声波测距误差分析1发射接收时间对测量精度的影响分析采用TR40压电超声波传感器,脉冲发射由单片机控制,发射频率40KHZ,忽略脉冲电路硬件产生的延时,可知由软件生成的起始时间对于一般要求的精度是可靠的。对于接收到的回波,超声波在空气介质的传播过程中会有很大的衰减,其衰减遵循指数规律。设测量设备基准面距被测物距离为H,则空气中传播的超声波波动方程为KTET20ACOSACOS由以上公式可知,超声波在传播过程中存在衰减,且超声波频率越高,衰减越快,但频率的增高有利于提高超声波的指向性。经以上分析,超声波回波的幅值在传播过程中衰减很大,收到的回波信号可能十分微弱,要想判断捕获到的第一个回波确定准确的接受时间,必须对收到的信号进行足够的放大,否则不正确的判断回波时间,会对超声波测量精度产生影响。2当地声速对测量精度的影响分析当地声速对超声波测距测量精度的影响远远要比收发时间的影响严重。超声波在大气中传播的速度受介质气体的温度、密度及气体分子成分的影响,即徐州工程学院毕业设计论文7SRTCM由上式知,在空气中,当地声速只决定于气体的温度,因此获得准确的当地气温可以有效的提高超声波测距时的测量精度。工程上常用的由气温估算当地声速的公式如下0C1T273式中C03314M/S;T为绝对温度,单位K。此公式一般能为声速的换算提供较为准确的结果。实际情况下,温度每上升或者下降1OC,声速将增加或者减少0607M/S,这个影响对于较高精度的测量是相当严重的。因此提高超声波测量精度的重中之重就是获得准确的当地声速。徐州工程学院毕业设计论文84系统硬件电路设计硬件电路主要分为单片机系统及显示电路、超声波发射电路和超声波检测接收电路三部分。41单片机系统及显示电路单片机采用AT89C51或其兼容系列。采用12MHZ高精度的晶振,以获得较稳定的时钟频率,减小测量误差。单片机用P10端口输出超声波换能器所需的40KMZ方波信号,利用外中断0口监测超声波接收电路输出的返回信号。显示电路采用简单实用的4位共阳LED数码管,段码用74LS244驱动,位码用PNP三极管8550驱动。单片机系统及显示电路如下图41所示图41单片机系统及显示电路徐州工程学院毕业设计论文941174LS244的简介(1)74LS244引脚图如下42所示图4274LS244引脚图(2)引脚功能1A11A4,2A12A4输入端/1G,/2G三态允许端低电平有效1Y11Y4,2Y12Y4输出端42超声波发射电路超声波发射电路原理图如下图43所示。发生电路主要由反向器74LS04和超声波发射换能器T构成,单片机P10端口输出的40KMZ方波信号一路经一级反向器后送到超声波换能器的一个电极,另一路经两级反向器后送到超声波换能器的另一个电极。用这种推挽形式将方波信号加到超声波换能器两端,可以提高超声波的发射强度。输出端采用两个反向器并联,用以提高驱动能力。上拉电阻R10、R11一方面可以提高反向器74LS04输出高电平的驱动能力,另一方面可以增加超声换能器的阻尼效果,缩短其自由振荡的时间。压电式超声波换能器是利用压电晶体的谐振来工作的。超声波换能器内部结构它有两个压电晶片和一个共振板。当它的两极外加脉冲信号,其频率等于压电晶片的固有振徐州工程学院毕业设计论文10荡频率时,压电晶片将会发生共振,并带动共振板振动产生超声波,这时它就是一个超声波发生器;反之,如果两电极间未加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收换能器了。超声波发射换能器与接收换能器其结构上稍有不同,使用时应分清器件上的标志。图43超声波发射电路43超声波监测接收电路集成电路CX20106A是一款红外线检波接收的专用芯片,常用于电视机红外遥控接收器。考虑到红外遥控常用的载波频率38KHZ与测距的超声波频率40KHZ较为接近,可以利用它制作超声波检测接收电路。实验证明用CX20106A接收超声波(无信号时输出高电平),具有很高的灵敏度和较强的抗干扰能力。适当更改电容C4的大小,可以改变接收电路的灵敏度和抗干扰能力。如图44所示徐州工程学院毕业设计论文11图44超声波检测电路44显示电路原理超声波测距仪显示模块如下图45所示。通过单片机的15、16、17三个管脚的信号控制三个三极管的B级,利用三极管的开关特性,实现数码管的点亮,从而实现动态显示。45显示模块徐州工程学院毕业设计论文125系统软件设计51主程序主程序首先是对系统环境初始化,设置定时器T0工作模式为16位定时计数器模式,置位总中断容许位EA并给显示端口P0和P2清0然后调用超声波发生子程序送出一个超声波脉冲,为了避免超声波从发射器直接传送到接收器引起的直射波触发,需要延时约01MS(这也就是超声波测距器会有一个最小可测距离的原因)后,才打开外中断0接收返回的超声波信号。由于采用的是12MHZ的晶振,计数器每计一个数就是1US,当主程序检测到接收成功的标志位后,将计数器T0中的数(即超设波来回所用的距离)按下式计算,即可得被测物体与测距器之间的距离,设计时取20度时的声速为344M/S则有SCT/2172T0/10000CM其中T0为计数器T0的计数值。测出距离后结果将以十进制BCD码方式送往LED显示约05S,然后再发超声波脉冲重复测量过程。为了有利于程序结构化合容易计算出距离,主程序采用C语言编写。图51为主程序流程图徐州工程学院毕业设计论文13图51流程图52超声波发生子程序和接收子程序(1)超声波发生子程序的作用是通过P10端口发送2个左右的超声波信号频率约40KHZ的方波,脉冲宽度为12US左右,同时把计数器T0打开进行计时。(2)超声波测距器主程序利用外中断0检测返回超声波信号,一旦接收到返回超声波信号(INT0引脚出现低电平,立即进入中断程序。进入该中断后就立即关闭计时器T0停止计时,并将测距成功标志字赋值1。(3)如果当计时器溢出时还未检测到超声波返回信号,则定时器T0溢出中断将外中断0关闭,并将测距成功标志字赋值2以表示此次测距不成功。如下图52所示徐州工程学院毕业设计论文14图52超声波发生子程序和超声波接收中断程序流程图53超声波的接收与处理接收头采用与发射头配对的UCM40R,将超声波调制脉冲变为交变电压信号,经运算放大器IC1A和IC1B两极放大后加至IC2。IC2是带有锁定环的音频译码集成块LM567,内部的压控振荡器的中心频率F01/11R8C3,电容C4决定其锁定带宽。调节R8在发射的载频上,则LM567输入信号大于25MV,输出端8脚由高电平跃变为低电平,作为中断请求信号,送至单片机处理。前方测距电路的输出端接单片机INT0端口,中断优先级最高,左、右测距电路的输出通过与门IC3A的输出接单片机INT1端口,同时单片机P13和P14接到IC3A的输入端,中断源的识别由程序查询来处理,中断优先级为先右后左。部分源程序如下RECEIVE1PUSHPSWPUSHACCCLREX1;关外部中断1JNBP11,RIGHT;P11引脚为0,转至右测距电路中断服务程序JNBP12,LEFT;P12引脚为0,转至左测距电路中断服务程序RETURNSETBEX1;开外部中断1POPACCPOPPSWRETIRIGHT;右测距电路中断服务程序入口AJMPRETURNLEFT;左测距电路中断服务程序入口AJMPRETURN徐州工程学院毕业设计论文156单片机系统的可靠性61测试单片机系统的可靠性当一个单片机系统设计完成后,对于不同的单片机系统产品会有不同的测试项目和方法,但是有一些是必须测试的。(1)测试单片机软件功能的完整性。这是针对所有单片机系统功能的测试,测试软件是否写得正确完整。(2)上电、掉电测试。在使用中用户必然会遇到上电和掉电的情况,可以进行多次开关电源,测试单片机系统的可抗性。(3)老化测试。测试长时间工作情况下,单片机系统的可抗性。必要的话可以放置在高温、高压以及强电磁干扰的环境下测试。(4)ESD和EFT等测试。可以使用各种干扰模拟器来测试单片机系统的可抗性。例如使用静电模拟器测试单片机系统的抗静电ESD能力;使用突波杂讯模拟器进行快速脉冲抗干扰EFT测试等。62单片机的抗干扰性影响单片机系统可靠安全运行的主要因素主要来自系统内部和外部的各种电气干扰,并受系统结构设计、元器件选择、安装、制造工艺的影响。这些都是单片机系统的徐州工程学院毕业设计论文16干扰因素,常会导致单片机系统运行失常,轻则影响产品质量和产量,重则会导致事故,造成重大经济损失。形成干扰的基本要素有三个1干扰源。指产生干扰的元件、设备或信号,用数学语言描述为DU/DT、DI/DT大的地方就是干扰源,如雷电、继电器、可控硅、电机、高频时钟等都可能成为干扰源2传播路径。指干扰从干扰源传播到敏感器件的通路或媒介。典型的干扰传播路径是通过导线的传导和空间的辐射。3敏感器件。指容易被干扰的对象,如A/D、D/A变换器,单片机,数字IC,弱信号放大器等。7软硬件调试71调试测试是为了发现程序中的错误而执行程序的过程。具体地说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计出一批测试用例,并利用测试用例来运行程序,以发现程序错误的过程。超声波测距仪的制作和调试,其中超声波发射和接收采用15的超声波换能器TCT4010F1(T发射)和TCT4010S1(R接收),中心频率为40KHZ,安装时应保持两换能器中心轴线平行并相距48CM,其余元件无特殊要求。若能将超声波接收电路用金属壳屏蔽起来,则可提高抗干扰能力。根据测量范围要求不同,可适当调整与接收换能器并接的滤波电容C的大小,以获得合适的接收灵敏度和抗干扰能力。72提高精度的方案及系统设计(1)温度校正的方法提高测距精度由上述的误差分析知,如果能够知道当地温度,则可根据公式求出当地声速,从而能够获得较高的测量精度。而问题的关键在于获得温度数据的方法。采用热敏电阻、热电耦、集成温度传感器都可以获得较为准确的温度值。为了便于对温度信号的数据采集及处理,我们采用DALASS公司生产的DS18B20集徐州工程学院毕业设计论文17成温度传感器。DS18B20采用了DALASS公司的1WIRE总线专利技术,能够仅在占用控制器一个I/O口的情况下工作(芯片可由数据线供电),极大的方便了使用者的调试使用,而且其在10OC85OC的工作环境下可以保持05的使用精度,在这个空间内足以保证为超声波测距设备提供足够的精度范围。通过DS18B20芯片获得的数据信号经由1WIRE总线传至MCU,由软件进行声速换算。为了更好的实现换算过程同时兼顾设备的使用成本,我们采用宏晶公司的最新推出的STC12C5410单片机实现超声波测距的各项功能。STC12C5410采用了低成本、低功耗、强抗干扰设计,并且在最高支持48MHZ的前提下能够实现1个时钟/机械周期的运行速度。由于能够使用高频率的晶振,因此相对于普通单片机来说可以有效的减少由计时问题带来的量化误差,能够满足较高精度超声波测距仪的设计要求。(2)标杆校正的方法提高测距精度在复杂环境下,如果难于获得环境温度,或者不便获得环境温度时,如果仍旧要求较高的测量精度,我们采用所谓标杆校正的方法实现超声波测距精度的校正。标杆校正的示意图下图71所示。图71标杆校正的示意图超声波测距装置首先测量距离已知为H的基平面(标杆)声波往返所用的时间,而后由测得的时间和距离H根据公式求出当地声速。通过这样的方法,我们也能够顺利的求出声速,省去了使用传感器测量温度所带来的麻烦。因此,只用为测距设备设定“标定”和“测量”两种状态,即能够实现温度校正所能实现的高精度测距功能。徐州工程学院毕业设计论文188系统的扩展超声波测距系统在测量距离时,容易受到温度的影响,从而导致误差,在此通过DS18B20对其进行改进。81DS18B20的简介811DS18B20的主要特性1适应电压范围更宽,电压范围3055V,在寄生电源方式下可由数据线供电。2独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。3DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。4DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。5温范围55125,在1085时精度为05。6可编程的分辨率为912位,对应的可分辨温度分别为05、025、0125和00625,可实现高精度测温。7在9位分辨率时最多在9375MS内把温度转换为数字,12位分辨率时最多在750MS内把温度值转换为数字,速度更快。8测量结果直接输出数字温度信号,以“一线总线“串行传送给CPU,同时可传送徐州工程学院毕业设计论文19CRC校验码,具有极强的抗干扰纠错能力。9负压特性电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。812DS18B20的外形和内部结构DS18B20内部结构主要由四部分组成64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的外形及管脚排列如下图81图81DS18B20的外形及管脚排列813DS18B20的工作原理DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2S减为750MS。DS18B20测温原理如图3所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图82中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。图82DS18B20测温原理框图徐州工程学院毕业设计论文20814DS18B20有4个主要的数据部件(1)光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRCX8X5X41)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。(2)DS18B20中的温度传感器可完成对温度的测量,以12位转化为例用16位符号扩展的二进制补码读数形式提供,以00625/LSB形式表达,其中S为符号位。表1DS18B20温度值格式表这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于00625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于00625即可得到实际温度。表2DS18B20温度数据表(3)DS18B20温度传感器的存储器DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。(4)配置寄存器该字节各位的意义如下表3配置寄存器结构TMR1R011111徐州工程学院毕业设计论文21低五位一直都是“1“,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。82DS18B20与单片机的连接在硬件上,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进行预定的操作。83DS18B20与51单片机的连接程序FLAG1标志位,为“1“时表示检测到DS18B20DQDS18B20的数据总线接脚TEMPER_NUM保存读出的温度数据晶振为12MHZ左右TEMPER_LEQU36HTEMPER_HEQU35HDQBITP17DS18B20初始化程序/INIT_1820SETBDQNOPCLRDQMOVR0,06BHTSR1徐州工程学院毕业设计论文22DJNZR0,TSR1延时SETBDQMOVR0,25HTSR2JNBDQ,TSR3DJNZR0,TSR2LJMPTSR4延时TSR3SETBFLAG1置标志位,表示DS1820存在LJMPTSR5TSR4CLRFLAG1清标志位,表示DS1820不存在LJMPTSR7TSR5MOVR0,06BHTSR6DJNZR0,TSR6延时TSR7SETBDQRET/读出转换后的温度值/GET_TEMPERSETBDQ定时入口LCALLINIT_1820JBFLAG1,TSS2RET若DS18B20不存在则返回TSS2MOVA,0CCH跳过ROM匹配LCALLWRITE_1820MOVA,44H发出温度转换命令LCALLWRITE_1820徐州工程学院毕业设计论文23LCALLINIT_1820MOVA,0CCH跳过ROM匹配LCALLWRITE_1820MOVA,0BEH发出读温度命令LCALLWRITE_1820LCALLREAD_1820MOVTEMPER_NUM,A将读出的温度数据保存RET/读DS18B20的程序,从DS18B20中读出一个字节的数据/READ_1820MOVR2,8RE1CLRCSETBDQNOPNOPCLRDQNOPNOPNOPSETBDQMOVR3,7DJNZR3,MOVC,DQMOVR3,23DJNZR3,RRCADJNZR2,RE1RET/写DS18B20的程序徐州工程学院毕业设计论文24/WRITE_1820MOVR2,8CLRCWR1CLRDQMOVR3,6DJNZR3,RRCAMOVDQ,CMOVR3,23DJNZR3,SETBDQNOPDJNZR2,WR1SETBDQRET/读DS18B20的程序,从DS18B20中读出两个字节的温度数据/READ_18200MOVR4,2将温度高位和低位从DS18B20中读出MOVR1,36H低位存入36HTEMPER_L,高位存入35HTEMPER_HRE00MOVR2,8RE01CLRCSETBDQNOPNOPCLRDQNOPNOPNOP徐州工程学院毕业设计论文25SETBDQMOVR3,7DJNZR3,MOVC,DQMOVR3,23DJNZR3,RRCADJNZR2,RE01MOVR1,ADECR1DJNZR4,RE00RET/将从DS18B20中读出的温度数据进行转换/TEMPER_COVMOVA,0F0HANLA,TEMPER_L舍去温度低位中小数点后的四位温度数值SWAPAMOVTEMPER_NUM,AMOVA,TEMPER_LJNBACC3,TEMPER_COV1四舍五入去温度值INCTEMPER_NUMTEMPER_COV1MOVA,TEMPER_HANLA,07HSWAPAORLA,TEMPER_NUMMOVTEMPER_NUM,A保存变换后的温度数据LCALLBIN_BCDRET/徐州工程学院毕业设计论文26将16进制的温度数据转换成压缩BCD码/BIN_BCDMOVDPTR,TEMP_TABMOVA,TEMPER_NUMMOVCA,ADPTRMOVTEMPER_NUM,ARETTEMP_TABDB00H,01H,02H,03H,04H,05H,06H,07HDB08H,09H,10H,11H,12H,13H,14H,15HDB16H,17H,18H,19H,20H,21H,22H,23HDB24H,25H,26H,27H,28H,29H,30H,31HDB32H,33H,34H,35H,36H,37H,38H,39HDB40H,41H,42H,43H,44H,45H,46H,47HDB48H,49H,50H,51H,52H,53H,54H,55HDB56H,57H,58H,59H,60H,61H,62H,63HDB64H,65H,66H,67H,68H,69H,70H/徐州工程学院毕业设计论文27结论该测距仪具有准双向测距功能,稳定性比较高、灵敏度比较高,盲区范围小,分辨率小于001M,被测目标不需要垂直于超声波测距仪角度保持在正负30度,被测目标表面不需要平坦;但是在检测过程中会有一些不便的地方1测量时在超声波测距仪周围没有其他可反射超声波的物体,由于发射功率有限,测距仪无法测量5M外的物体。2因为实现双向测距所以电路的电流相对比较大。3不能够实现不同温度下的测距功能。4因为超声波是将空气作为媒介所以受电磁干扰比较大。徐州工程学院毕业设计论文28致谢在这次设计过程中,高玉芹老师在百忙之中对本人在系统开发方面的辛苦指导和大力支持,使本人的毕业设计“基于AT89C51单片机超声波测距”系统能够顺利的完成。高玉芹老师认真负责的工作态度、严谨的治学风格,让本人深受启发。通过这几个月的学习,也让我从高老师那里学到了很多东西,都将成为我踏入社会的宝贵财富。同时也感谢我的同学,他们也给了我很大的帮助,在此说声谢谢。另外也感谢徐州工程学院,是学校培养了我,让我学到了很多知识,开阔了眼界。徐州工程学院毕业设计论文29参考文献1谢维成,杨加国单片机原理与应用及C51程序设计北京清华大学出版社,20062蔡菲娜单片微型计算机原理和应用杭州杭州大学出版社,19953李建忠单片机原理及应用西安西安电子科技大学出版社,20024张齐等单片机应用系统设计技术基于C语言编程北京电子工业出版社,20045吴延海微型计算机接口技术重庆重庆大学出版社,19976李丽霞单片机在超声波测距中的应用J电子技术,20027姜道连,宁延一,袁世良用AT89C2051设计超声波测距仪J国外电子元器件,20008张鹏,张有志一种新型超生测距系统J山东山东大学学报,2003,3319李学海PIC单片机实用教程基础篇(第1版)M北京航天航空大学出版社北京2002年2月。10陈大新,胡学同,周杏鹏利用FPGA改进超声波测距模块设计J传感器技术,2005,242575911朱伟芳一种便携式长度测量系统的硬件设计J江苏电器,2005,51415徐州工程学院毕业设计论文30附录附录1电路原理图徐州工程学院毕业设计论文31附录2程序源代码超声测距器单片机程序MCUAT89C51XAL12MHZINCLUDEDEFINEUCHARUNSIGNEDCHARDEFINEUINTUNSIGNEDINTDEFINEULONGUNSIGNEDLONGEXTERNVOIDCS_TVOIDEXTERNVOIDDELAYUNITEXTERNVOIDDISPLAYUCHARDATAUCHARTESTOK/主程序/VOIDMAINVOIDDATAUCHARDISPRAM5DATAUINTIDATAULONGTIMEP00XFFP20XFF徐州工程学院毕业设计论文32TMOD0X11IE0X80WHILE1CS_TDELAY1TESTOK0EX01ET01WHILETESTOKDISPLAYDISPRAMIF1TESTOKTIMETH0TIMETIME8|TL0TIME172TIME/100000DISPRAM0UCHARTIME10TIME/10DISPRAM1UCHARTIME10TIME/10DISPRAM2UCHARTIME10DISPRAM3UCHARTIME10IF0DISPRAM3DISPRAM317ELSEDISPRAM016DISPRAM116DISPRAM216DISPRAM316FORI0I300IDISPLAYDISPRAM徐州工程学院毕业设计论文33/超声波接收程序(外中断0)/VOIDCS_RVOIDINTERRUPT0TR00ET00EX00TESTOK1/超声波清除程序(内中断T0)/VOIDOVERTIMEVOIDINTERRUPT1EX00TR00ET00TESTOK2/文件2CS_TASM/超声发生子程序(12MHZ晶振385HZ)NAMECS_TPRCS_TCS_TSEGMENTCODEPUBLICCS_TRSEGPRCS_TCS_TCS_TPUSHACCMOVTH0,00HMOVTL0,00HMOVA,4DSETBTR0CS_T1CPLPL0徐州工程学院毕业设计论文34NOPNOPNOPNOPNOPNOPNOPNOPNOPNOPDJNZACC,CS_T1POPACCRETEND/文件3DISPLAYASM/四位共阳LED动态扫描显示程序P0为段码口,P2为位候选(高电平有效)参数为要显示的字符串指针NAMEDISPLAYPR_DISPLAYDISPLAYSEGMENTCODECO_DISPLAYDISPLAYSEGMENTDATAEXTRNCODE_DELAYPUBLIC_DISPLAY_DISPLAYBYTEDISPBITDS1DISPNUMDS1RSEGPR_DISPLAYDISPLAY_DISPLAYPUSHACCPUSHDPHPUSHDPLPUSHPSWINCDISPNUMMOVA,DISPNUM徐州工程学院毕业设计论文35CJNEA,4D,DISP1DISP1JCDISP2MOVDISPNUM,00HMOVDISPBIT,0FEHDISP2MOVA,R1ADDA,DISPNUMMOVR0,AMOVA,R0MOVDPTR,DISPTABLEMOVCA,ADPTRMOVP0,AMOVA,DISPNUMCJNEA,2D,DISP3CLRP07DISP3MOVP2,DISPBITMOVR6,00HMOVR7,0AHLCALL_DELAYMOVP0,0FFHMOVP2,0FFHMOVA,DISPBITRLAMOVDISPBIT,APOPPSWPOPDPLPOPDPHPOPACCRETDISPTABLEDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0BFH,0FFH“0”,”1”,”2”,”3”,”4”,”5”,”6”,”7”,”8”,”9”,”A”,”B”,”C”,”D”,”E”,”F”,”,”END徐州工程学院毕业设计论文36/文件4DELAYASM/延时100机器周期参数(165535)NAMEDELAYPR_DELAYDELAYSEGMENTCODEFUBLIC_DELAYRSEGPR_DELAYDELAY_DELAYPUSHACC2MOVA,R71JZDELA12INCR61DELA1MOVR5,50D2DJNZR5,2DJNZR7,DELA12DJNZR6,DELA12POPACC2END以下是用汇编语言编写的超声波测距器控制源程序超声波测距器采用AT89C5112MHZ晶振采用共阳LED显示器测距范围7CM11M,堆栈在4FH以上,20H用于标志显示缓冲单元在40H43H,使用内存44H,45H,46H用于计算距离VOUTEQUP10脉冲输出端口中断入口程序徐州工程学院毕业设计论文37ORG0000HLJMPSTARTORG0003HLJMPPINT0ORG000BHLJMPINTT0ORG0013HRET1ORG001BHLJMPINTT1ORG0023HORG002BHRET1主程序STARTMOVSP,4FHMOVR0,40H40H43H为显示数据存放单元(40H为最位)MOVR7,0BHCLEARDISPMOVR0,00HINCR0DJNZR7,CLEARDISPMOV20H,00HMOVTMOD,21HT1为8位自动重装模式,T0为16位定时器MOVTH0,00H65MS初值MOVTL0,00HMOVTH1,0F2H40KHZ初值MOVTL1,0F2HMOVP0,0FFHMOVP1,0FFHMOVP2,0FFH徐州工程学院毕业设计论文38MOVP3,0FFHMOVR4,0FFH超声波脉冲个数控制(为赋值的一半)SETBPX0SETBET0SETBEASETBTR0开启测距定时器STARTLLCALLDISPLAYJNB00H,START1收到反射信号时标志位为1CLREALCALLWORK计算距离子程序SETBEACLR00HSETBTR0重新开启测距定时器MOVR2,64H;测量间隔控制(约4100400MS)LOOPLCALLDISPLAYDJNZR2,LOOPSJMPSTART1中断程序T0中断,65MS中断一次INTT0CLREACLRTR0MOVTH0,00HMOVTL0,00HSETBET1SETBEASETBTR0启动计数器T0,用以计数超声来回时间SETBTR1开启发超声波用定时器T1OU

温馨提示

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

最新文档

评论

0/150

提交评论