[AI8051U入门第七步]软件IIC驱动SHT21/(SHT20/HTU21D同时适用)温湿度传感器
前言
学习目标:
1、软件IIC学习
2、软件IIC软件编写
3、SHT21传感器编写
完整代码请在我的资源里面下载
一、软件IIC介绍
I²C(Inter-Integrated Circuit,又称IIC)是一种常用的同步、半双工串行通信协议,用于连接低速外设(如传感器、EEPROM、OLED屏幕等)。硬件I²C由微控制器(MCU)的专用引脚和硬件模块实现,而软件I²C(Software I²C)则通过普通GPIO引脚模拟I²C时序,灵活性更高,适用于硬件资源受限的场景。
一、软件I²C vs 硬件I²C
对比项 软件I²C 硬件I²C
实现方式 GPIO模拟时序(Bit-Banging) MCU内置硬件模块
速度 较低(通常<100kHz) 较高(可达400kHz或更高)
资源占用 占用CPU时间 硬件自动处理,减少CPU负担
灵活性 任意GPIO均可使用 仅限特定引脚
稳定性 受代码优化和中断影响 更稳定,抗干扰强
适用场景 引脚不足、硬件I²C冲突、低成本MCU 高速、高可靠性应用
二、软件I²C的实现原理
软件I²C通过控制GPIO的高低电平模拟I²C协议,主要包括:
起始信号(Start)
SDA从高→低,SCL保持高电平。<