51单片机入门(4温度采集:DS18B20)

一、DS18B20

数字温度传感器,半双工, 异步, 串行

二、传感器参数

功能:温度采集

量程:-55℃ - 125℃

精度:±0.5℃

工作电压:3V - 5.5V

分辨率:12位 0.0625

分辨率:传感器对温度变化的敏感程度

9位 0.5℃

10位 0.25℃

11位 0.125℃

12位 0.0625℃(默认)

三、操作ROM 命令

  1. 读ROM (0x33)

  2. 搜索ROM (0xF0)

  3. 匹配ROM (0x55)

  4. 跳过ROM (0xCC)

  5. 报警搜索 (0xEC)

四、ds18b20 采集温度完整流程

  1. 复位 ds18b20_reset();

  2. 发送0xCC,跳过ROM write_ds18b20(0xCC);

  3. 发送0x44,开启温度转换 write_ds18b20(0x44);

  4. 延时1s

  5. 复位 ds18b20_reset();

  6. 发送0xCC,跳过ROM write_ds18b20(0xCC);

  7. 发送0xBE,读取温度 write_ds18b20(0xBE);

  8. 读取两个字节温度 read_ds18b20();

五、 ds18b20 时序

1、复位时序

(1)主机先将总线拉低至少480us,再释放总线,代表主机发送了一个复位脉冲

(2)主机如果在60-240us检测到总线出现低电平,代表ds18b20回复了一个存在脉冲

(3)ds18b20最终释放总线,总线为高电平

2、写时序

写0时序:

(1)主机将总线拉低大于60us

(2)ds18b20在60us内进行采样,如果采到低电平,代表主机发送了一个0

(3)主机释放总线,将引脚拉高

写1时序:

(1)主机将总线拉低大于1us

(2)主机释放总线,将引脚拉高

(3)ds18b20在45us内进行采样,如果采到高电平,代表主机发送了一个1

3、读时序

(1)主机将总线拉低大于1us,释放总线,引脚变为高电平

(2)主机再15us内进行采样

(3)若采到一个高电平,代表读到1,若采到低电平,代表读到0

(4)最终ds18b20释放总线

-----使用示例

相关推荐
璞致电子1 小时前
基于 AD9361 (PZSDR‑P201Pro) 软件无线电实战综述:从板卡选型、硬件平台升级到 GNU Radio QPSK 完整收发链路
经验分享·嵌入式硬件·fpga开发·软件无线电·sdr·璞致电子
高斯的手稿08012 小时前
CS+中,全局变量的正确管理方式
嵌入式硬件
俊基科技2 小时前
喇叭 95dB、麦克风贴到 1cm,回音还能消干净?拆解 A-29P 的消回音设计
嵌入式硬件·硬件开发·ai降噪·回音消除·拾音降噪
2401_862880822 小时前
LCD 显示与触控屏驱动开发
驱动开发·嵌入式硬件
糖糖单片机设计3 小时前
基于STM32的指纹刷卡智能门禁系统设计(RC522 + AS608 + 蓝牙远程开锁 + 断电记忆)
人工智能·stm32·嵌入式硬件·51单片机·语音识别
HRTOS4 小时前
HRTOS Shell继续完善:优化printf缓冲区与字符串越界保护,国庆后随新版本更新
运维·单片机·嵌入式硬件·算法·51单片机
YYRAN_ZZU4 小时前
GMSL开发加解串配置介绍
linux·嵌入式硬件
zhaoshuzhaoshu4 小时前
回调函数详解 —— 以 STM32 平台为例
嵌入式硬件
ccbw164 小时前
CH592 蓝牙 MCU 集成方案与低功耗设计要点
单片机·嵌入式硬件
I'm a winner5 小时前
《AI 赋能嵌入式开发:从 0 到全栈工程师》模块1|第3课时
人工智能·嵌入式硬件