Memoria Eeprom de Datos
Memoria Eeprom de Datos
Memoria Eeprom de Datos
En algunos proyectos es necesario guardar la informacin que se genera durante el proceso de una forma
permanente, es decir, esos datos han de permanecer incluso cuando el sistema se desconecta de la
alimentacin. Para realizar esta funcin los microcontroladores PTC disponen de un rea de datos
EEPROM no voltil.
El PIC16F84 dispone de una zona con 64 bytes de memoria EEPROM para almacenar datos que no se
pierden al desconectar la alimentacin. Esto es muy til ya que permite guardar datos permanentemente.
La figura 7-1 muestra la estructura de esta memoria y los registros asociados.
Es el registro para el control de la memoria EEPROM de datos. Se encuentra en la posicin 88h del
Banco 1. Slo destina cinco bits para este control:
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
EEIF
WRERR
WREN
WR
RD
movwf EEADR
bsf
STATUS,RP0
bsf
EECON1,RD
EEPROM_SigueLeyendo
btfsc EECON1,RD
goto
EEPROM_SigueLeyendo
bcf
STATUS,RP0
movf
EEDATA,W
return
; Direccin a leer.
; Banco 1.
; Orden de lectura.
;
;
;
;
Inicia la escritura.
Comprueba que termina de escribir en la EEPROM.
Desautoriza la escritura en EEPROM.
Limpia este flag.
Acceso al Banco 0.
Restaura el valor anterior de INTCON.
1.
2.
3.
4.
5.
6.
0x55
EECON2
0xAA
EECON2
EECON1,WR
; Inicia la escritura.
Esta ltima instruccin inicia el proceso de escritura propiamente dicho. Cuando se termina la
escritura, el bit EEIF del registro EECON1 se pone a 1. Al acabar el proceso, el bit WR se
pone a 0 automticamente.
Mediante programa, hay que deshabilitar la escritura y poner a 0 el bit EEIF del EECON1.
7.5 DIRECTIVA DE
La directiva DE (Declare EEPROMData Byte) reserva palabras de memoria de 8 bits dentro de la
memoria EEPROM de datos, asignndole un valor. Cada expresin reserva un valor de 8 bits y cada
carcter de una frase se guarda en una posicin separada. Cuando se usa esta directiva debe fijarse un
origen en 2100h para su uso con grabadores.
Ejemplo:
ORG
0x2100
DE
0x00
Figura 7. 2
7.8 PROGRAMA EJEMPLO
El siguiente programa es un ejemplo para una mejor comprensin de la utilizacin de este recurso,
aplicado al esquema de la figura 7-3.
Figura 7. 3
;************************************EEPROM_01.asm *********************************
;
;
; Este programa comprueba el funcionamiento de la lectura y escritura en la memoria
EEPROM de
; datos. Cada vez que el sistema es reseteado se incrementa un contador que se guarda en
la
; primera posicin de la memoria EEPROM de datos del PIC y es visualizado en el modulo
LCD.
;
; ZONA DE DATOS **********************************************************************
__CONFIG
_CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
LIST
P=16F84A
INCLUDE <P16F84A.INC>
CBLOCK
0x0C
Contador
ENDC
ORG
0x2100
DE
0x00
Inicio
call
clrw
call
movwf
call
call
movlw
call
incf
movf
call
Principal
sleep
LCD_Inicializa
; Leer la primera posicin de memoria EEPROM.
EEPROM_LeeDato
Contador
BIN_a_BCD
LCD_Byte
MensajeReseteado
LCD_Mensaje
Contador,F
Contador,W
EEPROM_EscribeDato
; Se guarda en Contador.
; Se visualiza en BCD
; con nibble alto apagado si es cero.
; Se incrementa.
; Ahora se graba en la EEPROM de datos.
; Pasa a modo de reposo.
goto
Principal
; "Mensajes" --------------------------------------------------------------------------;
Mensajes
addwf PCL,F
MensajeReseteado
DT " reseteados.
", 0x00
FinMensajes
INCLUDE
INCLUDE
INCLUDE
INCLUDE
INCLUDE
END
<EEPROM.INC>
<RETARDOS.INC>
<BIN_BCD.INC>
<LCD_4BIT.INC>
<LCD_MENS.INC>