eeprom.c

24-hour clock with switching times stored in EEPROM and LCD output (HD44780) for PIC16F84A (by Petr Mervart).



//// Rutines for EEPROM on PIC 16F84A ///


void EEPROM_NULL();
char EEPROM_READ(char adresa);
void EEPROM_WRITE(char adresa,char data);

void EEPROM_WRITE(char adresa,char data)  //write to EEPROM
{
   EEADR=adresa;
   EEDATA=data;

   set_bit(EECON1,WREN);
   EECON2=0x55;
   EECON2=0xAA;
   set_bit( EECON1, WR );       // start writing
   while(EECON1&2);          // cycle until WR reg. EECON1 = 1 (writing..)
   clear_bit( EECON1, WREN );

}

char EEPROM_READ(char adresa)     // read from EEPROM
{
   EEADR = adresa;
    set_bit( EECON1, RD);      // start reading
    return EEDATA;
}
void EEPROM_NULL()             // erase all EEPROM
{
    EEADR=0;
    while(EEADR<=63)
    {
      EEDATA=0;
      EEPROM_WRITE(EEADR,EEDATA);
   }
}



http://www.sourceboost.com/home.html

Copyright © 2002-2006 SourceBoost Technologies