一、DS18B20传感器参数1. 测温量程测量温度范围-55℃ ~ 125℃覆盖低温、常温、高温场景2. 测量精度在 -10℃ ~ 80℃ 区间内测量误差最大为 ±0.5℃3. 温度分辨率可配置决定测温精细度分辨率由配置寄存器设置不同分辨率对应最小温度变化与转换耗时9 位0.5℃10 位0.25℃11 位0.125℃12 位芯片出厂默认0.0625℃单次温度转换最长 750ms4. 工作电压供电范围3V ~ 5.5V兼容 3.3V、5V 单片机系统二、通信协议1.通信类型半双工、串行、异步通信2.硬件仅需一根 GPIO 信号线 DQ 完成主机与传感器全部数据交互3.总线特性需要外接上拉电阻主机、传感器同时释放总线时总线稳定维持高电平4.半双工说明同一根线既能发数据也能收数据但同一时刻只能单向传输。GPIO One-WireGPIO单总线通信通过一根GPIO信号新进行数据传输三、上拉电阻器件为开漏输出自身不能输出高电平所以单总线DQ引脚必须搭配上拉电阻才能让总线空闲时为高电平1.51和ds18b20都释放总线时上拉电阻将总线拉高总线空闲时能够呈现高电平。2.主机需要接收数据时释放总线传感器拉低总线输出低电平传感器释放总线输出高电平。四、线与特性总线电平由所有器件共同决定只要有任意一个器件拉低总线总线就为低电平只有所有器件都释放总线总线才会回到高电平。线与逻辑全高位高有低则低五、采集流程单次采集温度分为 8 个固定步骤1.发送复位时序初始化 DS18B202.主机发送指令 0xCC跳过 ROM 匹配适用于总线上只接 1 个传感器3.主机发送指令 0x44启动温度转换传感器开始采集当前温度4.延时 750ms12 位分辨率标准转换时间等待转换完成5.再次发送复位时序重新初始化总线6.再次发送 0xCC 跳过 ROM7.主机发送指令 0xBE读取暂存器温度数据8.连续读取 2 字节数据拼接得到 16 位温度原始值换算实际温度。六、时序一复位时序初始化总线传感器回复存在脉冲1.主机将 DQ 总线拉低维持 480us ~ 960us发送复位脉冲2.主机释放总线上拉电阻将总线拉高3.DS18B20 检测到总线S高电平后等待 15~60us4.ds18b20将总线拉低60 - 240us回复响应脉冲。5.ds18b20释放总线总线呈现高电平初始化过程结束二写时序主机向 DS18B20 发送命令 / 数据逐 bit 发送数据低位先行循环 8 次写完 1 字节。1写 0 时序1.主机拉低总线持续 60~120us2.DS18B20 在 30~60us 区间采样总线低电平判定为 bit03.主机释放总线恢复高电平。2写 1 时序1.主机拉低总线时间小于15us立刻释放总线2.DS18B20 在总线拉高后的 45us 内采样高电平判定为 bit1。三读时序主机读取传感器输出的温度 / 寄存器数据逐 bit 读取循环 8 次拼成 1 字节。1读 1 时序1.主机短暂拉低总线 1us 后释放2.总线被上拉电阻拉高3.主机在 15us 内采样总线高电平代表读到 bit1。2读 0 时序1.主机拉低总线 1us 后释放2.DS18B20 主动拉低总线输出 03.主机 15us 内采样低电平代表读到 bit0。
51单片机 04(ds18b20传感器)
发布时间:2026/7/16 3:25:55
一、DS18B20传感器参数1. 测温量程测量温度范围-55℃ ~ 125℃覆盖低温、常温、高温场景2. 测量精度在 -10℃ ~ 80℃ 区间内测量误差最大为 ±0.5℃3. 温度分辨率可配置决定测温精细度分辨率由配置寄存器设置不同分辨率对应最小温度变化与转换耗时9 位0.5℃10 位0.25℃11 位0.125℃12 位芯片出厂默认0.0625℃单次温度转换最长 750ms4. 工作电压供电范围3V ~ 5.5V兼容 3.3V、5V 单片机系统二、通信协议1.通信类型半双工、串行、异步通信2.硬件仅需一根 GPIO 信号线 DQ 完成主机与传感器全部数据交互3.总线特性需要外接上拉电阻主机、传感器同时释放总线时总线稳定维持高电平4.半双工说明同一根线既能发数据也能收数据但同一时刻只能单向传输。GPIO One-WireGPIO单总线通信通过一根GPIO信号新进行数据传输三、上拉电阻器件为开漏输出自身不能输出高电平所以单总线DQ引脚必须搭配上拉电阻才能让总线空闲时为高电平1.51和ds18b20都释放总线时上拉电阻将总线拉高总线空闲时能够呈现高电平。2.主机需要接收数据时释放总线传感器拉低总线输出低电平传感器释放总线输出高电平。四、线与特性总线电平由所有器件共同决定只要有任意一个器件拉低总线总线就为低电平只有所有器件都释放总线总线才会回到高电平。线与逻辑全高位高有低则低五、采集流程单次采集温度分为 8 个固定步骤1.发送复位时序初始化 DS18B202.主机发送指令 0xCC跳过 ROM 匹配适用于总线上只接 1 个传感器3.主机发送指令 0x44启动温度转换传感器开始采集当前温度4.延时 750ms12 位分辨率标准转换时间等待转换完成5.再次发送复位时序重新初始化总线6.再次发送 0xCC 跳过 ROM7.主机发送指令 0xBE读取暂存器温度数据8.连续读取 2 字节数据拼接得到 16 位温度原始值换算实际温度。六、时序一复位时序初始化总线传感器回复存在脉冲1.主机将 DQ 总线拉低维持 480us ~ 960us发送复位脉冲2.主机释放总线上拉电阻将总线拉高3.DS18B20 检测到总线S高电平后等待 15~60us4.ds18b20将总线拉低60 - 240us回复响应脉冲。5.ds18b20释放总线总线呈现高电平初始化过程结束二写时序主机向 DS18B20 发送命令 / 数据逐 bit 发送数据低位先行循环 8 次写完 1 字节。1写 0 时序1.主机拉低总线持续 60~120us2.DS18B20 在 30~60us 区间采样总线低电平判定为 bit03.主机释放总线恢复高电平。2写 1 时序1.主机拉低总线时间小于15us立刻释放总线2.DS18B20 在总线拉高后的 45us 内采样高电平判定为 bit1。三读时序主机读取传感器输出的温度 / 寄存器数据逐 bit 读取循环 8 次拼成 1 字节。1读 1 时序1.主机短暂拉低总线 1us 后释放2.总线被上拉电阻拉高3.主机在 15us 内采样总线高电平代表读到 bit1。2读 0 时序1.主机拉低总线 1us 后释放2.DS18B20 主动拉低总线输出 03.主机 15us 内采样低电平代表读到 bit0。