1单片机与传感器应用实战——带温度补偿的超声波距离测量仪设计报告姓名:莫帮杰学号:2013301200227专业:电子信息类时间:2014-82目录摘要.............................................................................................................4第一章绪论...............................................................................................5一、课题意义..................................................................................5二、设计目标..................................................................................5第二章系统设计原理...............................................................................6一、超声波测距原理..............................................错误!未定义书签。二、温度补偿法原理..........................................................................第三章系统整体方案...............................................................................8一、微处理器STC90C516RD+40I.......................................................8二、温度传感器DS18B20.....................................................................9三、超声波传感器HC-SR04...............................................................17四、液晶显示器LCD1602...................................................................19第四章系统硬件接口.............................................................................27一、系统硬件框架................................................................................27二、系统电路设计................................................................................27第五章系统软件设计.............................................................................28一、算法流程图...................................................................................28二、代码实现........................................................................................31第六章课题总结.....................................................................................39一、成果展示........................................................................................393二、设计反思........................................................................................51参考文献...................................................................................................524摘要运用超声波测距原理,结合了微控制器、超声波传感器和温度传感器等技术,本文设计和制作了一款带数字显示并且能够根据环境温度来矫正测量值的工业级高精度超声波距离测量仪。单片机(MCU)自问世以来就因其强大的控制性能和高可靠性而得到了广泛的应用,大到工厂的自动化生产,小到我们身边的各种家用电器,它的身影无处不在。单片机因其功能之强大、应用之广泛而具备着长久的市场开发前景。随着传感器(Sensor)技术的发展,单片机在民生、工业等舞台上更加能够大展拳脚。在本课题中,作者结合了单片机(MCU)、超声波传感器(Ultrasonicsensor)和温度传感器(Temperaturesensor)等技术,设计和制作了一款带数字显示并且能够根据环境温度来矫正测量值的高精度超声波距离测量仪。该测量仪与一般的超声波距离测量仪不同,它因搭载了温度检测模块,将能够胜任更为精确的工业测量工作。关键词:单片机、传感器、测距5第一章绪论一、课题意义在现代的工业距离测量中,由于某些测量环境的复杂性和苛刻性,传统的接触式测量方式已经不能满足测量要求。为了解决这个问题,本课题设计和制作了一种能够在某些特殊场合取代传统的接触式测量工具的超声波距离测量仪。该测量仪运用了超声波测距原理,同时加入了温度补偿功能,在提供便捷的非接触式距离测量的同时能够满足高稳定性、高精度的要求,能够在建筑施工和某些工业现场如井深、液深的测量上带来安全可靠的测量动作。二、设计目标1)工作稳定、可靠2)精度高3)便携4)经济5)低功耗6第二章系统设计原理一、超声波测距原理超声波是指频率高于20khz的机械波,具有方向性好、穿透力强的特点,广泛用于测距、测速、杀菌、机械清洗等方面。为了以超声波作为距离检测手段,必须产生超生波和接收超声波。完成这种功能的装置就是超声波传感器,习惯上称为超声波换能器或超声波探头。超声波传感器有发送器和接收器,但一个超声波传感器也可扮演发送器和接收器的双重角色。超声波传感器是利用压电效应的原理将电能和超声波相互转化,即在发射超声波的时候,将电能转换,发射超声波;而在收到回波的时候,则将超声振动信号转换成电信号。超声波测距的原理一般采用TOF(TimeOfFlight)法,即渡越时间法。首先测出超声波从发射到遇到障碍物返回所经历的时间,再乘以超声波的速度就得到二倍的声源与障碍物之间的距离,即2vtD其中D为传感器与被测物之间的距离,v为声波在介质中的传播速率。因此只要测出超声波从发射到遇到障碍物再返回波源的时间,就可以根据上式算出波源到障碍物之间的距离。超声波测距原理图超声波传感器障碍物发射回波时间t7二、温度补偿法原理由于声波在空气中的传播速率受温度影响,在空气中声波的传播速率smTv/273/1v0,其中smv/4.3310,它为Co0时的声速,T为摄氏温度,因此在利用超声波测距原理进行精确测量时应考虑温度补偿。根据以上两个原理,我们可以用单片机控制超声波传感器向某一方向发射超声波波束,在发射的同时,启动单片机的内部定时器。在传播过程中,超声波遇障碍物后反射回波,超声波接收器接收到第一个反射波后,定时器停止计时。根据温度检测模块所测出的环境温度,算出超声波在空气中的传播速度v,再根据计时器记录的时间t,计算出发射点距障碍物的距离D。8第三章系统整体方案一、微处理器STC90C512RD+40I。由于该超声波测距仪的设计需满足工业标准,故应选择具备较强的温度适应能力的微处理器,此处选用STC90C512RD+40I工业级单片机,它有CCo85~40-o的宽工作温度范围,能耗低,且具有64K的程序存储空间和1280B的程序运行空间,能够储存较大程序和高效执行指令。STC90C512RD+40I有多种封装形式,本次设计采用PDIP封装。以下为PDIP封装形式的STC90C512RD+40I的接口定义:STC90C512RD+40I(PDIP封装)的接口定义图二、温度传感器DS18B20。(1)简介。9DS18B20是美国DALLAS半导体公司推出的一种单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,它可将温度信号直接转换为数字信号,实现了与单片机的直接接口,从而省去了信号调理和A/D转换等复杂模/数转换电路。DS18B20构成的温度采集模块电路简单、功能可靠、测量效率高,很好地弥补了传统温度测量方法的不足,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。它具有集成度高、模拟输入数字输出、抗干扰能力强、体积小、接口方便、传输距离远测温误差小等特点。DS18B20有PR-35和SOSI两种封装方式,本次设计采用PR-35式封装(PR-35封装)(SOSI封装)DS18B20数字温度计提供9位(二进制)温度读数,指示器件的温度。信息经过单线接口送入DS18B20或从DS18B20送出,因此从主机CPU到从机DS18B20仅需一条线。DS18B20的电源可以由数据线本身提供而不需要外部电源。因为每一个DS18B20在出厂时已经给定了唯一的序号,因此任意多个DS18B20可以存放在同一条单线总线上,这允许在许多不同的地方放置DS18B20。DS18B20的测量范围从-55摄氏度到+125摄氏度,增量值为0.5摄氏度,可在ls(典型值)内把温度变换成数字。DS18B20中还有用于贮存测得的温度值的两个8位存贮器,RAM编号为0号和1号。1号存贮器存放温度值的符号,如果温度为负,则1号存贮器8位全为1否则全为0。0号存贮器用于存放温度值的补码,LSB(最低位)的1表示0.5。将存贮器中的二进制数求补再转换成十进制数并除以2就得到被测温度值。每只DS18B20都可以设置成两种供10电方式,即数据总线供电方式和外部供电方式。数据总线供电方式为:在信号线处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。采取数据总线供电方式可以节省一根导线,但完成温度测量的时间较长;采取外部供电方式则多用一根导线,但测量速度较快。两种供电方式:I/OI/OGNDGNDa)使用外部电源供电b)使用寄生电源供电(2)DS18B20的内部结构。DS18B20的内部结构如图所示。其主要部件有:1)64位激光ROM2)温度传感器3)高速暂存器4)非易失性温度报警触发器TH和TLMCUI/ODS18B20VDDMCUI/ODS18B20VDD11DS18B20内部结构:内部电源探测位和单线端口位产生器暂存器下限触发上限触发温度传感器存储器和控制逻辑64位激光ROM。每一个DS18B20包括一个唯一的64位长的序号,该序号值存放在DS18B20内部的ROM(只读存贮器)中。开始8位是产品类型编码(DS18B20编码均为10H),接着的48位是每个器件唯一的序号,最后8位是前面56位的CRC(循环冗余校验)码。64位ROM地址序列号结构:48位产品序列号8位产品序号8位CRC编码检验12高速暂存器。可以设置DS18B20温度转换的精度。DS18B20出厂时该位被设置