51驱动AT24C02存储数据

 

51驱动AT24C02存储数据

AT24C02介绍

1,AT24C02是一种可以实现掉电不丢失的存储器,可用于保存单片机运行时想要永久保存的数据信息
存储介质:E2PROM
通讯接口:I2C总线
容量:256字节
在这里插入图片描述
2,引脚及应用电路
在这里插入图片描述 在这里插入图片描述
3,内部结构框图

在这里插入图片描述
4,AT24C02数据帧
字节写:在“字地址”处写入“数据”
在这里插入图片描述
随机读:读出在“字地址”处的“数据”
在这里插入图片描述

主要程序

存储的地址

#define AT24C02_ADDRESS		0xA0
/**
  * @brief  AT24C02写入一个字节
  * @param  WordAddress 要写入字节的地址
  * @param  Data 要写入的数据
  * @retval 无
  */
void AT24C02_WriteByte(unsigned char WordAddress,Data)
{
	I2C_Start();
	I2C_SendByte(AT24C02_ADDRESS);
	I2C_ReceiveAck();
	I2C_SendByte(WordAddress);
	I2C_ReceiveAck();
	I2C_SendByte(Data);
	I2C_ReceiveAck();
	I2C_Stop();
}
/**
  * @brief  AT24C02读取一个字节
  * @param  WordAddress 要读出字节的地址
  * @retval 读出的数据
  */
unsigned char AT24C02_ReadByte(unsigned char WordAddress)
{
	unsigned char Data;
	I2C_Start();
	I2C_SendByte(AT24C02_ADDRESS);
	I2C_ReceiveAck();
	I2C_SendByte(WordAddress);
	I2C_ReceiveAck();
	I2C_Start();
	I2C_SendByte(AT24C02_ADDRESS|0x01);
	I2C_ReceiveAck();
	Data=I2C_ReceiveByte();
	I2C_SendAck(1);
	I2C_Stop();
	return Data;
}

主要代码

void main ()
{
	LCD_Init();                    //LCD1602初始化
	AT24C02_WriteByte(1,210);      // 写入一个数据”210“
	Delay(5);                      //延时5S
	Data=AT24C02_readByte(1);      //读取数据
	LCD_ShowNum(2,1,Data,3);       //在第二行第一列显示”210“ 3位
	while(1)
	{
		
	}
}

实验现象

在这里插入图片描述
注意事项:
写入的数据最大是255
AT24C02的接线在IIC库文件里面,不同的开发板可以根据板载的接线改定义,
需要完整工程的可以下方留言获取

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

热门文章

收藏
浏览量:0
创建时间:2022-06-10 18:19