DS18B20使用说明
DS18B20 - 温湿度监测模块
芯片介绍
基础介绍\引脚介绍
DS18B20是单总线协议的典型代表,同时也是单总线协议最广泛的应用场景,是常用的数字温度传感器,其输出的是数字信号。具有体积小,硬件开销低,抗干扰能力强,精度高的特点。DS18B20数字温度传感器接线方便,封装成后可应用于多种场合。
DS18B20 的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。其一个工作周期可分为两个部分,即温度检测和数据处理。在讲解其工作流程之前我们有必要了解 18B20 的内部存储器资源。 18B20 共有三种形态的存储器资源,它们分别是:ROM 只读存储器,用于存放 DS18B20ID 编码,其前 8 位是单线 系列编码(DS18B20 的编码是 19H),后面 48 位是芯片唯一的序列号,最后 8 位是以上 56 的位的 CRC 码 (冗余校验)。数据在出产时设置不由用户更改。
DS18B20 共 64 位 ROM。RAM 数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,DS18B20 共9 个字节 RAM,每个字节为 8 位:
第 1、 2 个字节是温度转换后的数据值信息,
第 3、 4 个字节是用户 EEPROM(常用于温度报警值储存)的镜像。在上电复位时其值将被刷新。
第 5 个字节则是用户第 3 个 EEPROM的镜像。
第 6、 7、 8 个字节为计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也 是内部温度转换、计算的暂存单元。
第 9 个字节为前 8 个字节的 CRC 码。
RAM内容如下图,最常用为前两个字节数据,其余数据由于操作方式没有直接在控制端操控方便,一般很少使用。
EEPROM 非易失性记忆体,用于 存放长期需要保存的数据,上下限温度报警值和校验数据,DS18B20 共 3 位 EEPROM,并在 RAM 都存在镜像,以方便用户操作。
其引脚图如下:
DS18B20仅有三根引脚,其中一根接电源,一根接地,即其仅使用一根引脚用于数据命令等的传输,由于没有时钟线,其为异步传输,对传输时序要求极高。
DQ:DS18B20传输线,采用单总线,详见协议使用笔记单总线章节
操作控制流程
每次通信必须经过如下步骤,且对时序有较高要求,延时部分需使用滴答定时器等进行精准延时。
1.复位:单片机拉低DQ线至少480us,DS18B20接收到信号后会在15 - 60us内发送存在脉冲。
2.存在脉冲:复位信号结束后,应将DQ线拉高以接收存在脉冲,该脉冲为一个60 - 240us的低电平
3.发送ROM指令:共有五条指令可供发送,每条指令为8位数据,每个周期仅可发送一条。五条指令如下:
- 读ROM数据:33H
- 指定匹配芯片:55H
- 跳跃ROM:CCH
- 芯片搜索:F0H
- 报警芯片搜索:ECH
若不需要对ROM进行操作,则可使用跳跃ROM指令跳过该阶段。
4.发送存储器操作指令:共有六条指令可供发送,每条指令为8位数据,每个周期仅可发送一条。指令如下:
- 写RAM数据:4EH
- 读RAM数据:BEH
- 温度转换:44H
- 将RAM数据复制到EEPROM:48H
- 将EEPROM警报值复制到RAM:B8H
- 工作方式切换:B4H
5.执行或数据读写:在此将会进行数据的读写或指令执行,由以上命令确定。若执行转换指令,则需要等待500us左右的转换时间,若执行读写指令,则需要根据DS18B20时序要求进行读写。
时序介绍
复位应答时序
写时间隙时序
写时间隙由控制端将总线拉低15us左右,后在其低电平状态下进行控制,若要发送1则在拉低后将总线拉高15 - 45us
若要发送0则保持该低电平15 - 45us,尔后将总线重新拉高。
注意:单bit的发送时间应在60 - 120us内,否则将不能进行通信。
读时间隙时序
读时间隙需要先由控制端拉低总线1us左右,并释放总线,在释放后的15us中,从机接管总线并发送数据,此时高电平表示1,低电平表示0,每一个bit的读取都需要先由总线拉低总线1us。
注意:字节的读写由低位开始,由高位结束。
读取数据
读取一次温度信息的步骤:
发送复位信号 --> 检测回应信号 --> 发送0xCC --> 发送0x44 --> 发送复位信号 --> 检测回应信号 --> 写0xCC --> 写0xBE --> 循环 8 次读取温度低字节 --> 循环 8 次读取温度高字节
其它操作与此类似,不做过多介绍。
代码示例
变量介绍
DS18B20_OUTPUT() //设置为输出模式
DS18B20_DQ_OUT //DQ线输出
DS18B20_INPUT() //设置为输入模式
DS18B20_DQ_IN //DQ线输入
读数据(从DS18B20读)
u8 DS18B20_Read_Byte(void)
{u8 i, rxData = 0;DS18B20_DQ_OUT = 1; //DQ输出为高for(i=0; i<8; i++){DS18B20_OUTPUT(); //设置为输出模式DS18B20_DQ_OUT = 0; //拉低总线(释放总线)delayUs(5); //等待1us以上DS18B20_INPUT(); //切换为输入模式delayUs(10);if(DS18B20_DQ_IN) rxData |= 1<<i; //此时总线电平已改变,判断电平delayUs(40);DS18B20_DQ_OUT = 1; //接管总线,等待下一次释放delayUs(5);}return rxData;
}
写数据(从DS18B20写)
void DS18B20_Write_Byte(u8 txData)
{u8 i;DS18B20_OUTPUT(); //设置为输出模式for(i=0; i<8; i++){if(txData & 0x01) //低位先发{DS18B20_DQ_OUT = 0; //拉低总线delayUs(5); DS18B20_DQ_OUT = 1; //该位为高,拉高总线,延时delayUs(55); }else {DS18B20_DQ_OUT = 0; //拉低总线delayUs(5);delayUs(55); //该位为低,保持总线低,延时DS18B20_DQ_OUT = 1; //重新拉高,等待下一次}txData >>= 1;}
}
DS18B20使用说明相关推荐
- matlab ds18b20 单片机,基于51单片机ds18b20温度检测————设计报告.doc
基于51单片机ds18b20温度检测----设计报告 课程名称: 微机原理课程设计 题 目: 温度检测课程设计 摘要 随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为 ...
- STM32F103+DHT11模块+DS18B20模块 显示实时温湿度并高温高湿报警
目录 前言 代码下载: 功能介绍: 接线 DS18B20 DHT11 效果图 普通环境 普通版main.c 升级版 哈热气 普通版 升级版 搓手捂热 核心代码 普通版main.c 升级版main.c ...
- DS18B20使用注意事项
DS18B20使用注意事项 芯片STC15W404AS 最重要两点:一是精准延时,用内嵌汇编的方式保证:二是CRC校验 keil中内嵌汇编的方法: 直接嵌入汇编代码的方法: 1.在 C 文件中要嵌入汇 ...
- abaqus高性能服务器怎么用,高性能计算平台ABAQUS任务调度使用说明作者陈林E-Mailchenlin.PDF...
高性能计算平台ABAQUS任务调度使用说明作者陈林E-Mailchenlin.PDF 高性能计算平台ABAQUS 任务调度使用说明 作者:陈林 E-Mail:chenlin@ 日期:2017-1-10 ...
- linux 文件拷贝并替换,Linux_cmd replace 文件替换使用说明,帮助信息: 复制代码 代码如 - phpStudy...
cmd replace 文件替换使用说明 帮助信息: 复制代码 代码如下: 替换文件. REPLACE [drive1:][path1]filename [drive2:][path2] [/A] [ ...
- Simple Dynamic Strings(SDS)源码解析和使用说明二
在<Simple Dynamic Strings(SDS)源码解析和使用说明一>文中,我们分析了SDS库中数据的基本结构和创建.释放等方法.本文将介绍其一些其他方法及实现.(转载请指明出于 ...
- Delphi开发的IOCP测试Demo以及使用说明。
Delphi开发的IOCP,此为压力测试Demo和使用说明.
- oracle database link mysql_oracle database link使用说明
oracle database link使用说明 作用: 将多个oracle数据库逻辑上看成一个数据库,也就是说在一个数据库中可以操作另一个数据库中的对象. 简易语法: CREATE [PUBLIC] ...
- 序列拼接工具Bowtie使用说明
序列拼接工具Bowtie使用说明 2011-06-08 ~ ADMIN Bowtie是一个超级快速的,较为节省内存的短序列拼接至模板基因组的工具.它在拼接35碱基长度的序列时,可以达到每小时2.5亿次 ...
- benchmarksql测试mysql_数据库压力测试工具 -- BenchmarkSQL 使用说明
关于数据库的压力测试,之前写过3篇Blog: 数据库基准测试(Database Benchmarking) 说明 数据库压力测试工具 -- Hammerdb 使用说明 数据库压力测试工具 -- Swi ...
最新文章
- 最小哈希 minhash
- Spring的控制反转以及依赖注入,控制反转使程序具有高拓展性。
- mysql视频教程siki_siki老师MySQL数据库从零到精通,资源教程下载
- CentOS 5.X用第三方源安装PHP MySQL Apache等
- 图片下载中文传输转义问题
- 嵌入式系统Linux内核开发学习指导框图
- 基于用户的协同过滤推荐算法研究
- 仿IBM首页焦点图,缩略图大图,带文字
- 数独基本规则_数独游戏规则?
- DNS劫持使用DNS加速有哪些作用
- 迪文屏DMT12800K070_A2WTC踩坑实录(一)
- 什么是GPU服务器?如何正确选择?
- zabbix4.4 使用自动发现监测web网站健康状态(通过mysql表获取web地址)
- linux下利用MP4v2封装H264 aac为mp4
- 2021汽车行业内容营销白皮书
- power automate desktop字符串处理
- C1认证快速复习重点个人总结(一、计算机通识【下】),部分内容同任务文档
- 手把手教你BCGControlBar MFC界面控件“起航”技巧(文章转载自:慧都控件网)
- 关于程序员网站,这七家超级实用!(来自36氪推荐)
- 互联网线下活动一周整理 11月23日—29日