合泰单片机 C语言读写片内EEPROM怎么不行呢?求高手指点!!!

unsigned char eeprom_rd(unsigned char a){ unsigned char data; _eea = a; _eec = 0x02; _eec =_eec|0x01; //_eec = 0x03; //// NOP(); while(_eec & 0x01); _eec=0x00; data = _eed; return (data); }void eeprom_wd(unsigned char a , unsigned char d){ _emi = 0; _eea = a; _eed = d; _eec = 0x08; _eec =_eec|0x04; //_eec = 0x0c; //// NOP(); while(_eec & 0x04); //_wr _eec=0x00; _emi = 1; }
2026年09月23日 15:24
有4个网友回答
网友(1):

控制EEPROM存取的EEC寄存器是位于bank1地址的40H处,所以必须做bank的切换并搭配MP1的间接寻址才能正确地进行位状态的设置。
程序参考:
unsigned short Read()
{
unsinged short Backup;
_mp1=0x40;
Backup=_bp; bp=1;
RDEN=1; RD=1;
while(RD);
_iar1=0;
_bp=Backup;
return _edd;
}
void Write(unsinged short a)
{
unsinged short Backup;
_eed=a;
_mp1=0x40;
Backup=_bp; bp=1;
WREN=1; WR=1;
while(WR);
_iar1=0;
_bp=Backup;
}

网友(2):

STC的网站有例子程序,你可以直接使用的./STC90/89系列内部EEPROM放数据(C语言)

网友(3):

兄弟,怎么解决的我用的也出现这样子情况

网友(4):

要注意时序