温度传感器DS18B20读写

1.复位

  主机发送480us-960us的低电平,然后设置端口为高电平,释放总线。

  温度传感器接收到复位信号,等待15-60us,拉低总线,发出60-240us的复位应答脉冲。

  主机读取总线电平是否为低,如果为低,则判定温度传感器复位。

2.读1bit数据

  主机产生一个下降沿,低电平维持至少1us,之后释放总线为高电平,让DS18B20把数据传输到单总线上。

DS18B20在检测到总线被拉低1微秒后,开始发送数据,若是0就把总线拉为低电平直到读周期结束;

若是1则释放总线为高电平。

     主机在一开始拉低总线1us后释放总线,然后在包括前面的拉低总线电平1us在内的15us时间内完成对

总线进行采样检测,采样期内总线为低电平则确认为0,采样期内总线为高电平则确认为1,完成一个读时序过程,

至少需要60μs才能完成。

  两次读之间间隔至少1us。

3.写1bit数据

  写周期60-120us,主机先把总线拉低1us表示写周期开始,随后若主机写0,则继续拉低电平最少60us直至

写周期结束,然后释放总线为高电平;若主机写1,在一开始拉低总线电平1us后就释放总线为高电平,一直到写周期结束。

     从机的DS18B20则在检测到总线被拉低后等待15us,然后从15μs到45μs开始对总线采样,在采样期内总线为高电平则为1,

若采样期内总线为低电平则为0。

  两次写之间至少间隔1us。

4.读取ID

  功能码 0x33(仅仅在总线上只有一个传感器时使用)

  复位-发送0x33-读取8字节ID   ID=族系码1+串行号6+CRC1

5.获取温度数据

  复位->发送0xcc(跳过ROM)->发送0x44(启动温度转换)->等待至少750ms转换完毕

  复位->发送0xcc(跳过ROM)->发送0xbe(读取温度寄存器)->低8位在前,高8位在后->转换为实际温度值

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值