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库文件里面,不同的开发板可以根据板载的接线改定义,
需要完整工程的可以下方留言获取