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释放总线

-----使用示例

相关推荐
橘为己有4417 小时前
51单片机:定时/计数器
单片机·51单片机
杯子不吃紫菜9 小时前
LangGraph 体系实战(下):中断恢复、流式、子图与设计模式
单片机·嵌入式硬件·设计模式
qq_4480111610 小时前
中断服务函数简介
嵌入式硬件
Risehuxyc10 小时前
STM32程序逻辑---入口函数逻辑和NVIC嵌套向量中断控制器初始化
stm32·单片机·嵌入式硬件
【 STM32开发 】10 小时前
CubeMX+STM32】SD卡U盘实现__USB+FATFS (F103 篇)
stm32·单片机·嵌入式硬件
jianqiang.xue11 小时前
3倍向量算力:Arm给最小MCU装上本地AI
arm开发·人工智能·单片机
无敌最俊朗-1 天前
【电感专题2:电感的感抗、电路的阻抗、电流的滞后】
单片机·嵌入式硬件·元器件·电感
wuyk5551 天前
嵌入式故障诊断-Bug002-局部大数组压栈高温必死机
stm32·单片机·嵌入式硬件·mcu·物联网·51单片机·嵌入式实时数据库
Zwawa1 天前
嵌入式OLED表驱动菜单:用一张表、一个栈和一个窗口重写表驱动菜单
c语言·单片机·嵌入式
Dev_XH1 天前
【成品设计】基于沁恒单片机的电动汽车充电站智慧调度系统
stm32·单片机·嵌入式硬件·物联网