Você está na página 1de 4

EEPROM

• É uma memória para dados


• Normalmente usada para gravar dados de
configuração (set point, ajuste de calibração,
um contador de eventos).
• No caso do PIC16F877A seu tamanho é 256
bytes
Comandos para EEPROM
write_eeprom(endereço,valor);
valor=read_eeprom(endereço);

OBS: endereço e valor são de 8 bits (1 byte)


Variáveis maiores de que um byte devem ser
quebradas em bytes para serem gravadas e
depois devem ser reconstruídas para serem
recuperadas.
Exemplo: rotina que limpa a EEPROM

void limpa_eeprom(){
int16 i;
for(i=0;i<256;i++){
write_eeprom(i,0);
}
pos_linha(2);
printf(lcd_escreve,"Memoria limpa");
delay_ms(2000);
limpa_linha(2);
}
Exemplo: programa que grava o valor do conversor A/D quando BO é atuado e
limpa a memória quando D1 a atuado.
while(true){
valor_atual=read_adc();
pos_linha(1);
printf(lcd_escreve,"%04lu",valor_atual);
byte1=read_eeprom(0);
byte2=read_eeprom(1);
valor_gravado=0;
valor_gravado=byte1;
valor_gravado=valor_gravado<<8;
valor_gravado+=byte2;
pos_linha(2);
printf(lcd_escreve,"%04lu",valor_gravado);
if(input(gravar)){
write_eeprom(0,valor_atual>>8);
write_eeprom(1,valor_atual);
delay_ms(200);
}
if(input(limpar)){
limpa_eeprom();
}
}

Você também pode gostar