Página 1 de 1

Gravar e ler a EEPROM 89s8252

MensagemEnviado: 13 Fev 2007 07:38
por MaCo
:cry: Ola Pessoal
Sou iniciante em microcontrolador atmel , uso o compilador jéns file , sdcc programo em liquagem c , estou prescisando de um exemplo p/ guardar uma variavel na eeprom interna do 89s52 em um programinha simples , onde é mostrada a variavel no lcd , com duas teclas que incrementa e decrementa a variavel , e grava ela na eeprom , depois desligo o wardwer aguardo um tempo ligo novamente e ele mostra o ultimo valor da variavel no lcd ,isso e possivel ? como ?

MensagemEnviado: 13 Fev 2007 19:34
por styg
Dei uma fuçada aqui pra encontrar..
Isso foi feito para o 89s8252 e compilado no keil
Pra entender melhor da uma olhada nos registtradores usados ;p
(Faz tempo que fiz isso, entao nao lembro de nenhuma dica que posso lhe dar a respeito..)

/*---------------------------------------------------------------
FUNCAO: ESCREVE_EEPROM
DESCRICAO: ESCREVE 1 BYTE NA E2PROM
---------------------------------------------------------------*/
void escreve_eeprom (unsigned int endereco, unsigned char valor)
{
WMCON |= (EEMEN_ | EEMWE_); // habilita EEPROM e seta bit de escrita
XBYTE[endereco] = valor; // escreve o valor
while ((WMCON & EERDY_) == 0); // espera terminar escrita(2.5ms)
WMCON &= ~(EEMWE_ | EEMEN_); // desabilita EEPROM e escrita
}

/*---------------------------------------------------------------
FUNCAO: LE_EEPROM
DESCRICAO: LE 1 BYTE DA E2PROM
---------------------------------------------------------------*/
unsigned char le_eeprom (unsigned int endereco)
{
unsigned char valor;
WMCON |= EEMEN_; // habilita EEPROM
valor = XBYTE[endereco]; // le valor
WMCON &= ~EEMEN_; // desabilita EEPROM
return (valor);
}