当前位置:首页 > STC51单片机EEPROM的使用方法
STC51单片机EEPROM的使用方法
STC51单片机有类似flash的功能EEPROM,可以掉电保存数据,不同型号
的可以保存不同大小的数据,以12C5A60S2为例,EEPROM的大小为2K,分为两个扇区,掉电保存在很多地方需要。
首先寄存器的问题,不同系列的STC单片机的与EEPROM有关的寄存器不同,比如10/11/12系列的sfr ISP_DATA = 0xC2;sfr ISP_ADDRH = 0xC3;sfr ISP_ADDRL = 0xC4;sfr ISP_CMD = 0xC5;sfr ISP_TRIG = 0xC6;sfr ISP_CONTR = 0xC7;89/90系列的sfr ISP_DATA = 0xe2;sfr ISP_ADDRH = 0xe3;sfr ISP_ADDRL = 0xe4;sfr ISP_CMD = 0xe5;sfr ISP_TRIG = 0xe6;sfr ISP_CONTR = 0xe7;注意寄存器一定要按数据手册中的配置,ISP触发命令也不相同,详情请看下方代码
其次是关于扇区问题,不同型号的MCU扇区个数不尽相同,详情请查询数据手册,在这里我以12C5A60S2为例,一共2扇区,每扇区512B,地址区间为0x0000~0x03FF,使用时请勿超出范围。
EEPROM使用时有三个功能,分别为读、写、和擦除,由ISP_CMD寄存器控制,分别对应1/2/3
下面为此项内容的代码部分,分别为初始化、读、擦除和写,本程序为11.0592MHz晶振,STC12C5A60S2的MCU,以下程序测试可用 EEPROM.c
void DisableEEPROM(void) {
ISP_CONTR = 0;//禁止ISP/IAP操作
ISP_CMD = 0;//去除ISP/IAP命令 ISP_TRIG = 0;//防止ISP/IAP命令误触发
ISP_ADDRH = 0xff;//指向非EEPROM区,防止误操作 ISP_ADDRL = 0xff;//指向非EEPROM区,防止误操作
共分享92篇相关文档