51单片机eeprom.c文件
时间: 2023-09-28 10:12:36 浏览: 138
51单片机EEPROM的读写.docx
以下是51单片机EEPROM读写的C文件示例,需要和之前提供的EEPROM头文件配合使用:
```c
#include "eeprom.h"
// 从EEPROM读取一个字节
unsigned char EEPROM_read(unsigned char addr)
{
unsigned char dat;
EA = 0; // 关闭中断
IAP_CONTR = 0x81; // 设置读操作
IAP_ADDRH = 0x00; // 设置地址高字节
IAP_ADDRL = addr; // 设置地址低字节
_nop_(); // 延时等待
dat = IAP_DATA; // 读取数据
EA = 1; // 开启中断
return dat;
}
// 写一个字节到EEPROM
void EEPROM_write(unsigned char addr, unsigned char dat)
{
EA = 0; // 关闭中断
IAP_CONTR = 0x81; // 设置写操作
IAP_ADDRH = 0x00; // 设置地址高字节
IAP_ADDRL = addr; // 设置地址低字节
IAP_DATA = dat; // 设置要写入的数据
_nop_(); // 延时等待
_nop_();
IAP_TRIG = 0x5a; // 启动写操作
_nop_(); // 延时等待
EA = 1; // 开启中断
}
```
这个C文件中定义了`EEPROM_read()`和`EEPROM_write()`函数,这两个函数实现了通过IAP指令来进行EEPROM的读写操作。在进行读写操作之前,需要关闭中断以避免对操作的干扰。操作完成后,再开启中断。
需要注意的是,这个C文件中的延时操作使用了`_nop_()`函数,这个函数可以用来进行简单的延时等待。在实际的应用中,需要根据具体的需求来选择适当的延时方式。同时,在进行EEPROM读写操作时,需要注意控制读写的地址范围,以避免对其他的内存区域造成干扰。
阅读全文