从零开始学习单片机12

编译上一次的代码并烧录到板卡中,用两根杜邦线分别连接逻辑分析仪和板卡上的SCL1和SDA1口(代码上模拟的两个IO口),连接逻辑分析仪和电脑,点击逻辑分析软件的Start后点击复位按键,找到数据并进行分析

SCL为高时,SDA从高变低,发送的数据为0x55(0b0101 0101),与原理图相符

应答信号:把SDA拉高,在SCL为高的时候,不停检测SDA是否被拉低,由于没有应答,代码中当time>100时自动应答。结束信号,SCL为高时,SDA由低变高

发送的数据为0x35(0b0011 0101)

发送的数据为0x75(0b0111 0101)

温湿度传感器

温湿度传感器的引脚分配

通过改变 ADDR 的连接方式可以改变传感器的 I2C 地址。当 ADDR 接低电平时,传感器芯片的地址为 0x44,当 ADDR 接高电 平时,传感器芯片的地址为 0x45。(在通信过程中 ADDR 的电平不能发生改变)其中0x44指的是I2C地址的高7位,第八位为读写标志位。

51单片机P0口是没有上拉能力的,而SDA和SCL分别连接的P0^1和P0^2,所以需要加上两个上拉电阻

该芯片有两种转换模式:单次转换模式和连续转换模式

单次转换模式,每初始化一次,只能读取一次温湿度值,读取完会进行休眠,下次检测需要重新初始化(一般用于低功耗产品里)

连续转换模式,初始化一次后,芯片就会一直处于检测的状态中,可以随时读取最新的数据

相关推荐
心祭丫丫1 小时前
【每天一个 Python 小案例17】Python 实现通讯录
开发语言·人工智能·笔记·python·学习
Nerd(BUG版)4 小时前
Flutter学习day5--事件手势与命中测试
学习·flutter
Nerd(BUG版)5 小时前
KMP学习day4--Kotlin空安全与泛型
学习·安全·kotlin
東隅已逝,桑榆非晚5 小时前
算法6. 双指针法-查找总价格为目标的两个商品
c++·学习·算法
wdyan2976 小时前
带着小白学习-微服务-5 实战:配置中心-数据库连接
数据库·学习·微服务
叼烟扛炮7 小时前
Linux 学习笔记(五十):网络层——IP 协议、子网划分与 NAT 魔法
linux·笔记·学习
叼烟扛炮7 小时前
Linux 学习笔记(六十):单线程的逆袭——epoll 高并发服务器实战
linux·服务器·网络·笔记·学习·算法
Rabitebla9 小时前
【Linux操作系统】进程篇(十一):进程程序替换——从底层原理到 exec 函数族
linux·服务器·c++·笔记·学习·算法
叼烟扛炮9 小时前
[LangChain] 学习笔记(03):打破失忆症——对话机制与上下文管理
java·前端·javascript·笔记·学习·langchain
旖旎夜光10 小时前
【C++ 基础入门】类和对象(下):初始化列表、static 成员、友元与内部类
c++·笔记·学习