基于AT89C51與DS18B20的温度测量系统.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于AT89C51與DS18B20的温度测量系统

基于AT89C51与DS18B20的温度测量系统 引言 温度是一种最基本的环境参数,日常生活和工农业生产中经常要检测温度。传统的方式是采用热电偶或热电阻,但是由于模拟温度传感器输出为模拟信号,必须经过A/D转换环节获得数字信号后才能与单片机等微处理器接口,使得硬件电路结构复杂,制作成木较高。近年来,美国DALLAS公司生产的DS18B20为代表的新型单总线数字式温度传感器以其突出优点广泛使用于工农业生产制造以及日常生活中。 DS18B20集温度测量和A/D转换于一体,直接输出数字量,传输距离远,可以很方便地实现多点测量,硬件电路结构简单,与单片机接口几乎不需要外围元件。文章将介绍DS18B20的结构特征及控制方法,给出以此传感器和AT89C51单片机构成的最小温度测量报警系统。 1 数字温度计DS18B20介绍 1.1 DS18B20性能介绍 温度传感器DS18B20独特的一线接口,只需要一条口线通信,简化了分布式温度传感应用,无需外部元件,可用数据总线供电,电压范围为3.0 V至5.5 V 无需备用电源,测量温度范围为-55 ° C至+125 ,精度为±0.5 ° C。   温度传感器可编程的分辨率为9~12位 温度转换为12位数字格式最大值为750毫秒,用户可定义的非易失性温度报警设置,应用范围包括恒温控制,工业系统,消费电子产品温度计,或任何热敏感系统。   DS18B20芯片出厂时默认为12位的转换精度。读取或写入DS18B20仅需要一根总线,要求外接一个约4.7kΩ的上拉电阻,当总线闲置时,其状态为高电平。此外DS18B20是温度-电流传感器,对于提高系统抗干扰能力有很大的帮助。 1.2 DSl8B20引脚结构 DS18B20采用3脚TO-92封装或8脚的SOIC封装,如图1所示。各引脚的功能:GND为电压地;DQ为单数据总线;V为电源电压;NC为空引脚。 图1DS18B20引脚图 1.3 DS18B20工作原理及应用 DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。其一个工作周期可分为两个部分,即温度检测和数据处理。在讲解其工作流程之前我们有必要了解DS18B20的内部存储器资源。DS18B20共有二种形态的存储器资源,它们分别是: (1)ROM只读存储器,用于存放DS18B20ID编码,其前8位是单线系列编码(DS18B20的编码是19H),后而48位是芯片唯一的序列号,最后8位是以上56位的CRC码(冗余校验)。数据在出厂时设置不由用户修改。DS18B20共64位ROM (2) RAM数据暂存器,用于内部计算和数据存取,数据在掉电后丢失DS18B20共9个字节RAM每个字节为8位。如图2所示。第1, 2个字节是温度转换后的数据值信急,第3和第4字节是高温触发器TH和低温触发器TL的易失性拷贝,第5个字节为配置寄存器,它的内容用于确定温度值的数字转换分辨率,DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。以上字节内容每次上电复位时被刷新。配置寄存器字节各位的定义如图2所示。低5位是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户不要去改动;R1和R0用来设置分辨率,决定温度转换的精度位数。如表1所示。 图2 DS18B20字节定义 表1 DS18B20温度转换时间 2 AT89C51与DS18B20组成的温度测量系统 2.1 电路工作原理分析与原理图 2.1.1 DS18B20与单片机的连接 DS18B20的DQ单数据总线与单片机P1.7连接,GND电压地、V电源电压分别和电压地和5伏直流电源连接。本文设计的系统主机只对一个DS18B20进行操作,因此不需要读取ROM编码以及匹配ROM编码,只要跳过ROM命令,就可以进行如下温度转换和读取操作。 (1)CCH—跳过ROM,直接向DS18B20发送温度变换命令。 (2)44H—读暂存器。读内部RAM中9字节的温度数据。 (3)BEH—写暂存器。发出向内部RAM的第2、3字节写上、下限温度数据命令,紧跟该命令之后,再传送两字节数据。 DS18B20在出厂时默认配置为12位,其中最高位为符号位,即温度值共11位,单片机在读取数据时,一次会读两字节共16位,读完后将低11位的二进制数转换为十进制后再乘以0.0625变为所测的温度值。另外,还需要判断温度的正负。前5个数字为符号位,这5位同时变化,我们只需判断11位就可以了。前5位为1时,读取的温度为负值,且测到的数值需要取反再加一再乘以0.0625才可以得到实际的温度值。前5位为0时,读取的温度为正值,只要将测得的数值乘以0.0625即可得到实际温度值。

文档评论(0)

fglgf11gf21gI + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档