
void WriteEEPROM (unsigned char xdata *addr, unsigned short Data)

{ // WriteEEPROM

  EECON |= EEMEN;
  EECON |= EEMWE;

  EECON |= EELD;
  *addr = Data >> 8;

  EECON &= ~EELD;
  *(addr+1) = (unsigned char)Data;
  while (!(EECON & EERDY));

  EECON &= ~EEMWE;
  EECON &= ~EEMEN;

} // WriteEEPROM



short ReadEEPROM (unsigned char xdata *addr)

{ // ReadEEPROM
short Result;

 EECON |= EEMEN;
 Result = (*addr << 8) + (*(addr+1));
 EECON &= ~EEMEN;
  
 return (Result);
} // ReadEEPROM
