EEPROM_READ_WRITE_WITH_REGISTER_ON_18f4550
//tested with MikroC pro and Proteus
//use 16 bit variable
//8 bit variable would stuck at 256
void main()
{
TRISB=0;
PORTB=0;
ADCON1=0xff;
for(;;)
{
Dat=0;
//EEPROM_WRITE
//success
for(Add=0;Add<256;Add++)
{
//Eeprom_Write(Add,Dat);
EEADR=Add;
EEDATA=Dat;
EECON1.EEPGD=0;
EECON1.CFGS=0;
EECON1.WREN=1;
INTCON.GIE=0;
EECON2=0x55;
EECON2-0x0AA;
EECON1.WR=1;
EECON1.WREN=0;
INTCON.GIE=1;
Dat=Dat+1;
}
//read
//success
for(Add=0;Add<256;Add++)
{
// PORTB=Eeprom_Read(Add);
EEADR=Add;
EECON1.EEPGD=0;
EECON1.CFGS=0;
EECON1.RD=1;
PORTB=EEDATA;
delay_ms(500);
}
}
}
//use 16 bit variable
//8 bit variable would stuck at 256
void main()
{
TRISB=0;
PORTB=0;
ADCON1=0xff;
for(;;)
{
Dat=0;
//EEPROM_WRITE
//success
for(Add=0;Add<256;Add++)
{
//Eeprom_Write(Add,Dat);
EEADR=Add;
EEDATA=Dat;
EECON1.EEPGD=0;
EECON1.CFGS=0;
EECON1.WREN=1;
INTCON.GIE=0;
EECON2=0x55;
EECON2-0x0AA;
EECON1.WR=1;
EECON1.WREN=0;
INTCON.GIE=1;
Dat=Dat+1;
}
//read
//success
for(Add=0;Add<256;Add++)
{
// PORTB=Eeprom_Read(Add);
EEADR=Add;
EECON1.EEPGD=0;
EECON1.CFGS=0;
EECON1.RD=1;
PORTB=EEDATA;
delay_ms(500);
}
}
}
Comments
Post a Comment