STC89C52学习笔记(十)

STC89C52学习笔记(

综述:本文介绍了DS18B20和单总线协议,以及讲述了如何使用DS18B20测量温度。

一、单总线协议

1.只有一根通讯线:DQ

(常见的运用单总线的两种设备:DS18B20和DHT11)

2.异步、半双工

3.电路规范:配置成开漏输出模式,DQ需要添加一个上拉电阻(4.7KΩ左右)

4.时序:

①初始化:主机将总线拉低至少480us→释放总线→等待15-60us→从机拉低总线60-240us响应主机→从机释放。

②发送一位:

发送0:主机将总线拉低60-120us然后释放总线;

发送1:主机将总线拉低1-15us然后释放总线;

长0短1(类似于摩斯密码)

从机在总线拉低30us后读取点平,整个时间片大于60us。

③接收一位:

主机将总线拉低1-15us,释放总线,并在拉低后15us内读取总线电平(贴近15us末尾),接收0:读取低电平

接收1:读取高电平

④发送一个字节:低位在前,调用8次发送一位的时序,依次发送

⑤接收一个字节:低位在前,调用8次接收一位的时序,依次接收

(注意:I2C是高位在前!!!)

二、DS18B20

1.器件介绍:数字温度传感器,硬件简单,抗干扰性强

2.测温范围:-55~+125

3.通信接口:单总线

4.电路:DS18B20只有三个接口,一个接正极,一个接负极,一个接单总线。

5.原理:温度→暂存器RAM→读暂存器的指令→读取出数据(温度数据,2个字节)

6.DS18B20操作流程:初始化→ROM→功能操作

①初始化:从机复位,主机判断是否响应

②ROM操作:ROM指令+本指令需要的读写操作

③功能操作:功能指令+本指令需要的读写操作

7.DS18B20数据帧

①温度存储格式:

  • 温度是两个字节的数据:BIT0-BIT3是小数位;BIT4-BIT10是整数位;BIT11-BIT15都是符号位,如果为1,表示负数,反之,表示正数。
  • 数据是以补码的形式存在的。
  • 先读取低位,再读取高位。

②温度变换:初始化→跳过ROM→温度转换

③温度读取:初始化→跳过ROM→读暂存器→连续读操作(跳过ROM是因为单总线,只有温度传感器这一个设备,不用去选择设备)


参考视频:51单片机学习.视频

侵权联系删除!

相关推荐

  1. STC89C51学习笔记

    2024-04-13 05:56:02       17 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-13 05:56:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-13 05:56:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-13 05:56:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-13 05:56:02       18 阅读

热门阅读

  1. SQLMap简单注入教程

    2024-04-13 05:56:02       19 阅读
  2. Devops初讲

    2024-04-13 05:56:02       20 阅读
  3. opencv+python(顶帽+黑帽)

    2024-04-13 05:56:02       35 阅读
  4. Prompt编写——安全边界

    2024-04-13 05:56:02       48 阅读
  5. 蚂蚁云科技集团正式发布「以正」教育大模型

    2024-04-13 05:56:02       16 阅读
  6. 什么是跨域?

    2024-04-13 05:56:02       14 阅读