51单片机使用AT24C02
作者:野牛程序员:2023-12-28 12:08:49单片机与硬件阅读 2922
AT24C02是一种串行EEPROM(Electrically Erasable Programmable Read-Only Memory),通常用于存储小量数据。以下是一个简单的C语言示例代码,用于在51单片机上使用AT24C02 EEPROM。
#include <reg51.h>
#define EEPROM_ADDR 0xA0 // AT24C02的I2C地址
#define DELAY_MS 10 // 延时函数的毫秒数
void delay(unsigned int ms) {
unsigned int i, j;
for (i = 0; i < ms; i++)
for (j = 0; j < 112; j++);
}
void I2C_Start() {
// 发送起始条件
}
void I2C_Stop() {
// 发送停止条件
}
void I2C_Write(unsigned char dat) {
// 向I2C总线写入一个字节的数据
}
unsigned char I2C_Read() {
// 从I2C总线读取一个字节的数据
return 0;
}
void EEPROM_WriteByte(unsigned char address, unsigned char data) {
I2C_Start();
I2C_Write(EEPROM_ADDR | 0); // 写入设备地址
I2C_Write(address); // 写入EEPROM地址
I2C_Write(data); // 写入数据
I2C_Stop();
delay(DELAY_MS); // 等待写入完成
}
unsigned char EEPROM_ReadByte(unsigned char address) {
unsigned char data;
I2C_Start();
I2C_Write(EEPROM_ADDR | 0); // 写入设备地址
I2C_Write(address); // 写入EEPROM地址
I2C_Start(); // 重启
I2C_Write(EEPROM_ADDR | 1); // 写入设备地址(读模式)
data = I2C_Read(); // 读取数据
I2C_Stop();
return data;
}
void main() {
unsigned char dataToWrite = 0x55;
unsigned char readData;
EEPROM_WriteByte(0, dataToWrite); // 写入数据到地址0
readData = EEPROM_ReadByte(0); // 从地址0读取数据
// 现在readData中包含从EEPROM读取的数据,你可以在这里处理它
while (1) {
// 你的主程序循环
}
}野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:C++零基础教程什么是多态
- 下一篇:STM32智能小车控制舵机转向
