DS18B20 & OneWire

本文详细介绍了DS18B20传感器使用OneWire协议的工作流程,包括初始化、写字节、读字节、更新Cache、读取温度和显示数据点(DP)的步骤。OneWire协议对时序要求严格,DS18B20在接收到主机的低电平信号后会拉高总线进行响应,通过特定的高低电平组合进行数据传输。
摘要由CSDN通过智能技术生成

One - Wire协议

在这里插入图片描述
DS18B20 使用OneWire协议,时序要求严格,不可被打断。


第一步:初始化在这里插入图片描述

主机(Master)发出(Tx)最低480μs最高960μs电平信号。期间DS18B20主动拉高总线,共15 - 60μs。然后DS18B20发出“存在脉冲”,即将总线拉总线 60 - 240μs。主机接收(Rx)这样的脉冲即可认为DS18B20初始化成功。接收过程不低于480μs

bit OneWire_Online() // 1 online 0 offline
{
   
 bit Ack;
 
 EA = 0;
 OneWire_Port = 0;
 OneWire_Delay(480);
 OneWire_Port = 1;
 OneWire_Delay(15);
 Ack = OneWire_Port;
 while(!OneWire_Port);
 EA = 1;
 
 return ~Ack;
}

第二步:写字节

在这里插入图片描述
在这里插入图片描述
主机发出电平1 - 15μs(最低1μs,最高15μs)典型值为2μs。 然后18B20开始采样 1 - 45μs 典型值为15μs
发0即保持低电平,发1即保持高电平。整个过程限时 60 - 120μs

void OneWire_Write(u8 dat)
{
   
 u8 mask;
 
 EA = 0;
 for(mask 
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值