关于DS18B20基本原理及基本代码操作(本实验操作环境平台为蓝桥杯K61S2)

DS18B20内部结构简介

一、硬件图示

在这里插入图片描述

二、内部结构

在这里插入图片描述

1.64位(激)光刻只读存储器 64位ROM

作用:使每一个DS18B20都各不相同,可以实现一根总线挂接多个DS18B20的目的

在这里插入图片描述

  1. 8位CRC(28H):产品类型编号
  2. 48位序列号:该DS18B20的自身序列号
  3. 8位系列码:前面56位的循环冗余校验码

2.暂存器SCRATCHPAD(上电状态POWER-UP STATE)

在这里插入图片描述
Byte 0:温度数据低字节
Byte 1:温度数据高字节
在这里插入图片描述
Byte 2:设置最高温度
Byte 3:设置最低温度
Byte 4:配置寄存器(CONFIGURATION REGISTER)
在这里插入图片描述
RESOLUTION(BITS)精度
MAX CONVERSION TIME最大转换时间

在这里插入图片描述

如图·:温度传感器地精度为用户可编程地9,10,11或12位,分别以0.5℃,0.25℃。0.125℃或0.0625℃表示,在上电状态下默认的精度为12位。

注意:存储在DS18B20的两个8位的RAM中
1. 高字节的前五位是符号位,如果测得的温度大于0,这5位位为‘0’,即为正温度,只要将测得的数值乘以0.0625(默认状态下)即可得到实际温度;如果温度小于0,这5位位‘1’,测得的数值需要取反加1再乘以0.0625即可得到实际温度。
2. bit0~3:表示温度小数部分
3. bit4~10:表示小数整数部分

三、DS18B20工作协议过程

DS18B20大致工作流程:
shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzMzgyMDE2,size_16,color_FFFFFF,t_70)

1.初始化

手册原版(English):
在这里插入图片描述
汉化版:
在这里插入图片描述

存在脉冲检测原理 1-wire总线开始需要检测该总线是否存在DS18B20这个器件。如果这条总线上存在DS18B20,总线会根据时序要求返回一个低电平脉冲,如果不存在,就不会返回脉冲,即总线保持高电平,一般称之为检测存在脉冲。另外,获取存在脉冲是不仅检测是否存在,而且通过这个脉冲过程通知DS18B20准备好,单片机要对它进行操作。
存在脉冲检测步骤:

  1. 数据线拉到低电平“0”;
  2. 延时480μs~960μs,一般500μs左右即可;
  3. 数据线拉到高电平;
  4. 延时等待15μs~60μs。如果初始化成功则在15到60μs时间内产生一个由DS18B20所返回的低电平“0”,根据该状态可以来确定它的存在,但是应注意不能无限进行等待,否则会出现程序死循环。
  5. 检测到低电平后做延时,其延时时间从发出的高电平算起(以第三步时间算起)最少480μs。

2.ROM操作指令

由于1-wire总线可以挂多个器件,所以我们需要通过ROM指令来区分不同器件。

常见ROM指令表:

在这里插入图片描述
在这里插入图片描述

3.DS18B20的位读写时序

①.DS18B20位写入时序

手册原版:
在这里插入图片描述
汉化版:
在这里插入图片描述
步骤:
在这里插入图片描述

②.DS18B20位读入时序

手册原版:
在这里插入图片描述
汉化版:
在这里插入图片描述
步骤:
在这里插入图片描述

四、DS18B20基本代码操作

1.DS18B20主程序

//DS18B20
/*********实验要求:*********************************************
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值