【AT89C52】AT24C02

AT24C01

AT24C02-----可以实现掉电不丢失的存储器,可用于保存单片机运行时想要永久保存的数据信息
存储介质:E2PROM
通信接口:I2C总线
容量:256字节

存储器简化模型
逐行扫描

引脚及应用电路
在这里插入图片描述

I2C

I2C
支持总线挂载多设备(一主多从、多主多从)
一主多从:单片机作为主机,主导I2C总线的运行,挂载在I2C总线的所有外部模块都是从机。只有主机同意才能控制I2C总线。(大多数)
[例如:老师上课]
多主多从:任一模块都可以是主机,同一时间只有一个主机,会发生总线冲突。

通过通信线实现单片机读写外挂模块寄存器的功能,其中至少实现在指定的位置写寄存器和在指定的位置读寄存器两个功能,实现读写寄存器就对模块进行完全控制。
(//自我理解:通过通信线实现单片机和外部寄存器的数据传输 )

使用同步时序可以极大的降低单片机对硬件电路的依赖,即使没有硬件电路也可以用软件手动翻转电平来实现通信。
异步时序:省一根时钟线,节约资源;对时间要求严格,对硬件电路的依赖比较严重。(同步正好相反,低端单片机也可以使用软件模拟时序)



代码:

void I2C_Start(void)   //起始
{
	I2C_SDA = 1;
	I2C_SCL = 1;
	I2C_SDA = 0;
	I2C_SCL = 0;  //占用总线 & 方便基本单元的拼接 保证除了起始和终止条件,每个时序单元的SCL都是以低电平开始,低电平结束
}

void I2C_Stop(void)   //终止
{
		I2C_SDA = 0;
		I2C_SCL = 1;
		I2C_SDA = 1;

}


接收:主机将SDA控制权交给从机

主机发送应答:SCL发送完最后一个字节下降沿后,主机变化SDA,释放SDA不给从机应答,拉低SDA给从机应答,从机在SCL高电平处读取是否应答
从机接收应答:SCL低电平期间,主机释放SDA,从机应答即拉低,不应答默认高
在这里插入图片描述

I2C数据帧

在这里插入图片描述

S(开始)–从机地址(4位固定+3位可配置[见电路引脚])+读写位(1位0)–接收应答0–第一个字节–接受应答……
接收

复合数据帧

字节写-随机读

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值