51单片机at24c02的读写

本文详细介绍了AT24C02 EEPROM的写入和读取过程,包括开始状态、器件地址、数据传输和确认信号的交互。写操作涉及8位数据地址和8位数据,读取操作则包含顺序读取和随机地址读取,数据传输过程中使用IIC接口进行通信。同时,提到了页面写入操作,允许连续写入多个字节并由EEPROM确认每个数据。提供的代码示例展示了如何实现向AT24C02写入和读取数据的函数。
摘要由CSDN通过智能技术生成

AT24C02

原理图

在这里插入图片描述

AT24C02 存储器写操作需要在给出开始态、器件地址和确认之后,紧跟着给出一个 8 位数据
地址。一经收到该地址, EEPROM 就通过 SDA 发出确认信号,并随时钟输入 8 位数据。在收到 8
位数据之后, EEPROM 将向 SDA 确认,数据传送设备必须用停止状态来终止写操作,这时,
EEPROM 进入一个内计时固定存储器写入周期。在该写周期时,所有输入被禁止, EEPROM 直到
写完后才应答

1KB/2KB EEPROM 能进行 8 字节页面写入, 4KB、 8KB 和 16KB 设备能进行 16 字节页面写
入。激发写页面与激发写字节相同,只是数据传送设备无须在第一个字节随时钟输入之后,发出
一个停止状态。在 EEPROM 确认收到第一个数据之后,数据传送设备能再传送 7 个(1KB、 2KB)
或 15 个(4KB、 8KB、 16KB)数据,每一个数据收到之后, EEPROM 都将通过 SDA 回送一个确
认信号,最后数据传送设备必须通过停止状态终止页面写序列。

顺序读取由立即地址读取或随机地址读取激发,在读数据器件
收到一数据码之后,通过确认应答,只要 EEPROM 收到确认之后,便会继续增加数据码地址及串
行输出数据码。当达到存储器地址极限时,数据码地址将重复滚动,顺序读取将继续。当读数据
器件不通过确认(使 SDA 总线处于高电平)应答,而通过产生一个停止条件应答时,顺序读取操
作被终止.

代码

//函数功能:向AT24C02中写入一个数据
void wr_24c02(unsigned char add,unsigned char data1)
{
	IIC_Start();//打开iic
	IIC_SendByte(0xa0);//写入设备地址
	IIC_WaitAck();//等待应答
	IIC_SendByte(add);//写入控制字节
	IIC_WaitAck();//等待应答
	IIC_SendByte(data1);//写入数值	  
    IIC_WaitAck();//等待应答
	IIC_Stop();//停止
}
//函数功能:从AT24C02中读取一个数据
unsigned char rd_24c02(unsigned char add)
{
	 unsigned char temp;
	
	  IIC_Start();//
	  IIC_SendByte(0xa0);//读取设备地址
	  IIC_WaitAck();//等待应答
	  IIC_SendByte(add);//读取控制字
	  IIC_WaitAck();//等待应答
	  IIC_Stop();//停止
	  
	  IIC_Start();//
	  IIC_SendByte(0xa1);//	  
	  IIC_WaitAck();//等待应答
	  temp=IIC_RecByte();//
	  IIC_WaitAck();//等待应答
	  IIC_Stop();//停止
	  
	  return temp;//
}
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值