发表于
2008-5-23 14:26:02
关于PIC自带的内部的eeprom的读写,其实只要是pic系列的原理都是一样的,控制两个寄存器,注意操作顺序即可。
这里是几个测试通过的读写小函数:
char EEPROM_READ(char adresa) // read from EEPROM
{
eeadr = adresa;
clear_bit( eecon1, EEPGD);
clear_bit( eecon1, CFGS);
set_bit( eecon1, RD); // start reading
return eedata;
}
void EEPROM_READ_LEN(char adresa, char len, char *string)
{
char i = 0;
while(i < len)
{
*(string+i) = EEPROM_READ(adresa + i);
i++;
delay_us(20);
}
}
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 );
}
void EEPROM_WRITE_LEN(char adresa, char len, char *string)
{
char i = 0;
while(i < len)
{
EEPROM_WRITE(adresa + i, *(string+i));
i++;
delay_us(20);
}
}