This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Save data in EEPROM power failed???

HI,

I am wondering how to save a variable's value in case of power reset. I using AT89C51ED2 internal EEPROM..
what i done recently is i can write in data into EEPROM and read from it, but the problem is that once i reset the power, the data inside the EEPROM all gone too...

below is some part of my program..

unsigned char read_8bit_EEPROM (unsigned int adr)
{

        unsigned char val;
        bit ea_save;
        while (EECON&1); //wait while busy

        ea_save=EA;
        EA=0;
        EECON |= 0x02;//Enable eeprom data;
        val=*(unsigned char xdata*)adr;
        EECON &= ~0x02;//Disable eeprom data;
        EA=ea_save;
        return val;
}

// Write EEPROM 8-bit 'val' at address 'adr'
void write_8bit_EEPROM (unsigned int adr, unsigned char value)
{
        bit ea_save;
        while(EECON & 0x01);

        ea_save=EA;
        EA=0;
        EECON |= 0x02;//Enable eeprom data
        *(unsigned char xdata*)adr=value;
        EECON &= ~0x02;//Disable eeprom data
        EA=ea_save;
}

unsigned char chk_btn(void)
{
        unsigned char val;
        if(SAVE==0)
        {
                delay_5ms(); //debounce
                while(SAVE==0);
                delay(2000000);
                        LCD_com(0x01);
                        LCD_print(0x30);
                        delay(20000000);
                        delay(20000000);

                        val=0x30;

        }
          return val;
}

void main()
{
        unsigned char nv;
        //init_timer1();
        while(1)
        {       DX=0; //set the voltage to 5v

                LCD_init();
                LCD_print(read_8bit_EEPROM(0x10));
                delay(20000);
                 nv=chk_btn();
                write_8bit_EEPROM((0x10),nv);
          }
}

0