51单片机使用AT24C02
作者:野牛程序员:2023-12-28 12:08:49单片机与硬件阅读 2756
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智能小车控制舵机转向