1. 实验背景与硬件准备
I2C-EEPROM实验是51单片机开发中的经典项目,主要目的是掌握I2C总线协议的基本原理和实际应用。普中开发板(包括普中-2、普中-3、普中-4系列)都配备了AT24C02芯片作为I2C接口的EEPROM存储器,这是学习I2C通信的理想硬件平台。
1.1 所需硬件清单
- 普中51开发板(任意型号)
- AT24C02 EEPROM芯片(板上已集成)
- USB数据线(用于供电和程序下载)
- 杜邦线若干(如需外接模块)
注意:不同型号的普中开发板上AT24C02的I2C引脚可能不同,请务必查阅对应开发板的原理图确认SCL和SDA引脚位置。
1.2 I2C总线基础
I2C(Inter-Integrated Circuit)是一种同步、多主从架构的串行通信总线,由Philips公司开发。主要特点包括:
- 仅需两根线:串行数据线(SDA)和串行时钟线(SCL)
- 支持多主多从设备连接
- 每个设备有唯一地址
- 标准模式100kbps,快速模式400kbps
在51单片机系统中,由于硬件I2C控制器资源有限,通常采用GPIO模拟I2C时序的方式实现通信。这种方式虽然效率不如硬件I2C,但具有更好的兼容性和灵活性。
2. AT24C02芯片详解
AT24C02是Atmel公司生产的2Kbit(256×8)串行EEPROM,采用I2C接口通信。理解其特性对正确编程至关重要。
2.1 关键参数
- 工作电压:1.8V~5.5V(完美适配5V的51系统)
- 写周期时间:最大5ms
- 页写入:8字节/页
- 数据保存:100年
- 读写次数:100万次
2.2 设备地址
AT24C02的7位设备地址格式为:1010[A2][A1][A0]。在普中开发板上,A2A1A0通常接地(000),因此设备地址为0xA0(写)和0xA1(读)。
实操技巧:如果遇到通信失败,首先检查地址是否正确。有些开发板可能将A0-A2接高电平,此时地址需要相应调整。
2.3 存储结构
AT24C02的256字节存储空间被分为32页,每页8字节。写入时如果跨页,需要分多次操作。例如,从地址0x07开始写入10字节数据,实际上需要:
- 第一页写入1字节(0x07)
- 第二页写入7字节(0x00-0x06)
- 第三页写入2字节(0x07-0x08)
3. I2C时序模拟实现
51单片机通常没有硬件I2C控制器,需要软件模拟时序。以下是关键步骤的实现。
3.1 GPIO初始化
首先定义SDA和SCL引脚(以P2.0和P2.1为例):
c复制sbit SDA = P2^0;
sbit SCL = P2^1;
void I2C_Init() {
SDA = 1; // 释放总线
SCL = 1;
}
3.2 基本时序函数
c复制// 产生起始条件
