#include // SFR definition header file
#include // prototype declarations for I/O functions
#include // include EEPROM variables
#ifdef MONITOR51 /* Debugging with Monitor-51 needs */
char code reserve [3] _at_ 0x23; /* space for serial interrupt if */
#endif /* Stop Exection with Serial Intr. */
/*
* This routine stores some values into the EEPROM for testing
*/
void store_eeprom (void) {
unsigned char i;
for (i = 0; i < 20; i++) {
esample1.carray[i] = i; // Store some values to show how it works
esample2.carray[i] = i + 10;
esample1.iarray[i] = 0xFF00+i;
esample2.iarray[i] = 0xFE00+i;
esample1.larray[i] = 0xABCDEF00+i;
esample2.larray[i] = 0x12345600+i;
}
etxt_ptr = "Store EEPROM Done"; // Pointer to Text in ROM
}
/*------------------------------------------------
The main C function. Program execution starts
here after stack initialization.
------------------------------------------------*/
void main (void) {
unsigned char i;
/*------------------------------------------------
Setup the serial port for 1200 baud at 16MHz.
------------------------------------------------*/
EETIM = 5 * 40; // EETIM: 5 * 40 MHz in normal mode
#ifndef MONITOR51
SCON = 0x50; // SCON: mode 1, 8-bit UART, enable rcvr
TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit reload
TH1 = 221; // TH1: reload value for 1200 baud @ 16MHz
TR1 = 1; // TR1: timer 1 run
TI = 1; // TI: set TI to send first char of UART
#endif
store_eeprom (); // store some values in EEPROM
// Read Back Values from EEPROM
for (i = 0; i < 20; i++) {
printf ("\n%bd %bd %bd %x %x", i, esample1.carray[i],
esample2.carray[i],
esample1.iarray[i],
esample2.iarray[i]);
}
printf ("\n%s", etxt_ptr);
while (1);
}