【51单片机】DS18B20温度传感器(1-Wire)

🔎**【博主简介】**🔎

🏅全网技术博客粉丝量十万

🏅全网技术博客学习数百万

🏅CSDN博客专家领域专家

🏅2021年博客之星物联网与嵌入式开发TOP5

🏅2022年博客之星物联网与嵌入式开发TOP4

🏅2021年2022年C站百大博主

🏅华为云开发者社区专家博主

🏅阿里云开发者社区专家博主

🏅掘金INFOQ腾讯云优秀博主

📅创作时间2022年11月10日

DS18B20介绍

**🍎说明⇢**DS18B20是一种常见的数字温度传感器,其控制命令和数据都是以数字信号的方式输入输出。相比较于模拟温度传感器(功能强大、硬件简单、易扩展、抗干扰性强)等..特点。

₁测温范围**⇢-**55°C 到 +125°C

₂通信接口**⇢**1-Wire (单总线)

₃其它特征**⇢**可形成总线结构、内置温度报警功能、可寄生供电(如果是寄生供电的话连Vcc正极都不需要进行连接直接用一根数据线[SDA]和GND地十分的节省线路)

🍊**拓展说明⇢**DS18B20在里面集成了模拟温度传感器、芯片、微控制器。内部读取内部当中的传感器,通过内部转换存储在RAM(随机存储器)里面。

引脚电路

复制代码
VCC:电源(3.0v~5.5v)
GND:电源地
DQ: 单总线(通信端口)

📑说明⇢以上便是DS18B20的应用电路从这里我们可以看出它的应用电路也是非常简单的。

存储器结构

内部结构

⒈64-BIT ROM**⇢**作为器件地址,用于总线通信的寻址。

⒉SCRATCHPAD(暂存器)**⇢**用于总线的数据交互。

⒊EEPROM**⇢**用于保存温度触发阈值和配置参数。

⒋POWER-SUPPLYSENSE**⇢**可以感应外部的VDD是否存在,如果不存在就会调整内部的一个结构来进行省电|内部的执行操作逻辑。当然寄生电路它是自动运行的不需要对其中的程序进行配置。

🍏**注⇢**我们使用寄生供是需要加一个强上拉电阻在DQ上的而我们的开发板是没有给DQ强上拉。所以这里我们是使用不了寄身供电的。

🖋拓展知识点⇢寄生供电不是实际的电源器件,而是一种供电方式,即通过数据线供电。

单总线介绍

①单总线(1-Wire BUS)是由Dallas公司开发的一种通用数据总线。

②一根通信线→DQ ✔

③异步、半双工。

④单总线只需要一根通信线即可实现数据的双向传输,当采用寄生供电时,还可以省去设备的VDD线路,此时,供电加通信只需要DQ和GND两根线。

|--------|----------|----------|--------|
| 名称 | 引脚定义 | 通信方式 | 特点 |

|------------|--------|------------|-------------|
| 1-Wire | DQ | 半双工、异步 | 可挂载多个设备 |

半双工:通信双方可以互相传输数据,但必须分时复用一根数据线。

异步:通信双方各自约定通信速率。异步→不会那么的同步。

**总线→**连接各个设备的数据传输线路(类似于一条马路,把路边各住户连接起来,使住户可以相互交流)

**🍎****注意→**可以挂载多个设备都可以叫做是"总线"。

单总线的电路规范

⒈设备的DQ均要配置成开漏输出模式。

⒉DQ添加一个上拉电阻,阻值一般为4.7KΩ左右。

⒊若此总线的从机采取寄生供电,则主机还应配一个强上拉输出电路。

单总线的时序结构

⒈****初始化⇢主机将总线拉低至少480us(准确值)然后释放总线(注:释放把DQ置1即可) 等待15~60us(选取中间值),存在的从机会拉低总线60~240us以响应主机,之后从机将释放总线。

⒉发送一位如下↓

主机将总线拉低60~120us(选取中间值)然后释放总线,表示发送0;

主机将总线拉低1~15us ,然后释放总线,表示发送1;

从机将在总线拉低30us 后(典型值)读取电平,整个时间片应大于60us。

⒊接收一位如下↓

主机将总线拉低1~15us,然后释放总线。

然后释放总线,并在拉低后15us 内读取总线电平(尽量贴近15us的末尾)

读取为低电平则为接收0,读取为高电平则为接收1 ,整个时间片应大于60us的值。

发送字节/接收字节

发送一个字节→连续调用8次发送一位的时序,依次发送一个字节的8位(低位在前)

接收一个字节→连续调用8次接收一位的时序,依次接收一个字节的8位(低位在前)

🍎注→单总线是低位在前的,而在前面我们所说的IIC是高位在前依次发送数据的。这两者是有一定的区别的我们需要注意以下才行。

DS18B20操作流程

初始化→从机复位,主机判断从机是否响应。

ROM操作→ROM指令+本指令需要的读写操作。

功能操作→功能指令+本指令需要的读写操作。

|------------------------------|-------------------------------------|
| ROM****指令 | 功能指令 |
| SEARCH(搜寻) ROM [F0h] | CONVERT(温度转变) T [44h] |
| READ(读) ROM [33h] | WRITE(写) SCRATCHPAD(笺存储) [4Eh] |
| MATCH(匹配) ROM [55h] | READ(读) SCRATCHPAD(笺存储) [BEh] |
| SKIP(跳过) ROM [CCh] | COPY(复制) SCRATCHPAD(笺存储) [48h] |
| ALARM(报警) SEARCH(搜索) [ECh] | RECALL E2(电可擦除可编程) [B8h] |
| | READ POWER SUPPLY(读取设备供电模式) [B4h] |

DS18B20数据帧

温度变换→初始化→跳过ROM →开始温度变换。

温度读取→初始化→跳过ROM →读暂存器→连续的读操作。

Temperature:温度

LSB:最低有效位。

MSB:最高有效位。

温度存储格式

相关推荐
F137298015572 小时前
220V降5V,100MA非隔离离线恒压稳压器WD5202A
stm32·单片机·嵌入式硬件·51单片机
电子工程师成长日记-C512 小时前
51单片机PM2.5监测系统
单片机·嵌入式硬件·51单片机
恶魔泡泡糖2 小时前
51单片机带字库LCD12864液晶屏显示
单片机·嵌入式硬件·51单片机
项目題供诗2 小时前
51单片机入门-AT24C02(十二)
单片机·嵌入式硬件·51单片机
是大强3 小时前
DSP 和 MCU 的区别
单片机·嵌入式硬件
xuxie993 小时前
N6 ARM
arm开发·嵌入式硬件
Zevalin爱灰灰3 小时前
零基础入门学用物联网(ESP8266) 第一部分 基础知识篇(三)
单片机·物联网·嵌入式·esp8266
weixin_460783873 小时前
STM32CubeMX配置ST25R3911B外设指南
stm32·单片机·嵌入式硬件
m0_555762903 小时前
STM32H743 USB FS 内部 IP DMA 问题分析
stm32·嵌入式硬件·tcp/ip