Hi, Anyone successfully access Temic 89C51RD2's internal EEPROM? I have this unsigned char xdata * data pEEAddr = 1; void WriteOne(unsigned char val) { unsigned char data dVal = val; DisableGlobalInterrupt(); MapEE(); *pEEAddr = dVal; UnMapEE(); EnableGlobalInterrupt(); } Somehow that did not work reliably. I examined the assembler output and it looked ok (one movx instructure between the MapEE() and UnMapEE() macros). Thanks for any insight. Andy
oh,I have the same problem.And in http://www.keil.com/forum/docs/thread477.asp EECON &= 0xFB; // Disable EEPROM memory space I think it should be: EECON &= 0xFD; And the value of EETIM in my system: EETIM = 0x7D; //5*25MHz And In my simulator debug,it will endless in: while(EECON & 0x01); // Wait for EEPROM write to finish so I must put the microcontrol to the board, but can't get right eeprom data operation,what't wrong about it? My emulator micetek Easypack/E II 8052F can't support EEPROM data RD/WR function,so I must download my code to the cpu and run it in board? The cpu is ATMEL 89C51RD2-CM,is it the T89C51RD2? And the programmer is lab tool-48,its software vertion is V4.67,the device of T89C51RD2 for selecting is only TEMIC,I don't know whether they are the same device? I can't get right EEPROM data RD/WR using your means,so could you give me some advice?