基于AVR单片机DS18B20的温度测量实验.doc

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

AVR学习笔记七、基于DS18B20的温度测量实验 7.1 基于DS18B20的基本测温实验 7.1.1、实例功能 传统的温度测量采用热敏电阻,但热敏电阻存在可靠性差,测温准确率低,并且必须经过专门的接口电路将采集到的模拟量转换为数字量后才能由单片机处理。 DS18B20是美国DALLAS公司推出的一款单线数字温度传感器。它具有:体积小,功耗低,精度高,可靠性好,易于单片机接口等优点,每片DS18B20都有唯一的一个可读出的序列号,同时DS18B20还采用了寄生电源技术,可以不用外接电源。综合以上特点,DS18B20特别适合于多点测温系统。 本节首先介绍DS18B20的一些基本知识:特点、结构、原理、控制时序、与单片机的接口方法等。最后通过一个实例实现最简单的温度测量。 本实例分为三个功能模块,分别描述如下: ● 单片机系统:利用ATmega16单片机与DS18B20温度传感器通信,控制温度的采集过程,并将采集到的温度值通过串口发送到计算机。 ● 外围电路:外围电路分两部分:串口电路部分(实现将采集到的温度值发送到计算机的功能)、DS18B20温度采集电路(实现采集环境温度的功能)。 ● 软件程序:编写软件,实现温度测量和串口发送数据功能。 通过本实例的学习,掌握以下内容: ● 理解DS18B20的特点、结构和原理和接口设计方法。 ● 掌握DS18B20的控制时序和控制方法流程。 ● 掌握最简单的采集温度指令。 7.1.2 器件和原理 1、DS18B20介绍 DS18B20主要有以下特点: ●单线接口:DS18B20与单片机连接时仅需一根I/O口线即可实现单片机与DS18B20之间的双向通信。 ●实际使用中不需要任何外围元件。 ●可用数据线供电,电压范围3.0-5.5V。测温范围-55-+125oC。 ●可编程实现9-12位的数字读数方式。 ●用户可设定的非易失性(掉电不丢失)的温度上下线报警值。 ●支持多点组网功能,多个DS18B20可并联在唯一的三总线上,实现多点温度测量。 ●负压特性:电源极性接反时不会烧坏DS18B20,但是也不能正常工作 DS18B20的外形级封装如图7.1.1,引脚说明: NC 空引脚,不连接外部信号。 VDD 电源引脚,电压范围3.0-5.5V。 GND 接地引脚。 DQ 数据引脚,传递数据的输入和输出。该引脚常态下为开漏输出,输出高电平。 图7.1.1 DS18B20的外形级封装 7.1.2DS18B20的内部结构 DS18B20的内部结构如图7.1.2。DS18B20的内部结构主要有64位ROM、温度灵敏元件、内部存储器和配置寄存器四部分组成。 图7.1.2 DS18B20的内部结构 ● 64位ROM:64位ROM的内容是64位序列号,是出厂前用激光刻好的。它可以用作该DS18B20的地址序列码。每一个DS18B20的64位ROM都不同,这样就可以实现一根总线上挂多个DS18B20的目的。这64位 ROM的排列是:开始8位是产品类型号,接着的48位是该DS18B20的自身的序列号,最后8位是前面56位的循环冗余(CRC,CRC=X8+X5+X4+1)校验码。 ● 温度灵敏元件:温度灵敏元件完成对温度的测量,测量后的结果存储在两个8位的寄存器中,这两个寄存器定义如图7.1.3。温度寄存器高字节的高5位是符号位,温度为负时这5位为1;温度为正时,这5位为0。高字节寄存器的低3位与低字节寄存器的高4位组成温度的整数部分,低字节寄存器的低4位是温度的小数部分。当温度大于0时,温度值以原码存放。而当温度小于0时,以二进制补码形式存放。 当转换位数为12位时,温度的精度为1/16(4位小数位,所以为16)=0.0625度。同理,当转换位数为11位时,精度为1/8=0.125度。 对于温度的计算,以12位转换位数为例:对于正的温度,只要将测到的数值的整数部分取出,转换为10进制,再将小数部分乘以0.0625就可以得到10进制的小数位的温度值了。而对于负的温度,则需要将采集到的数值取反加1,即可得到实际温度的16进制表示。再按照正温度的计算方法就可以得出10进制的负的温度了。 图7.1.3 DS18B20温度寄存器格式 图7.1.4所示是在12位转换位数情况下的温度转换值和温度对照表 图7.1.4 12位转换位数的温度转换值和温度对照表 7.1.3 DS18B20的内部存储器 DS18B20的内部存储器包括一个告诉暂存RAM和一个非易失性的可电擦除的EEPROM,后者存放温度的上下限报警值和配置寄存器。 高速暂存RAM以及EEPROM的构成如图7.1

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档