You are on page 1of 3

22/9/2014

TUTORIAL MICROCONTROLADORES PIC MANEJO DE DATOS EN LA EEPROM MICROCONTROLADOR PIC PUNTO FLOTANTE S.A.

tutorial: lectura y escritura de datos en la memoria EEPROM en


el 16F84/F628/F88
Introduccin:
La memoria EEPROM permite la lectura-escritura de datos teniendo
como caracterstica principal que, a diferencia de la memoria RAM, no
es voltil, es decir, si la alimentacin externa del circuito se
interrumpe, los datos contenidos en las localidades de la EEPROM no
se pierden. Adems, stos datos son electrnicamente modificables a
travs de programa, como se muestra en las subrutinas listadas ms
abajo.
El microcontrolador 16F84 cuenta con 64 localidades (direcciones
00H..3FH), el 16F628 con 128 bytes (direcciones 00H..7FH) y el
16F88 con 256 bytes (direcciones 00H..FFH) de memoria EEPROM.
El nmero total de ciclos de lectura y escritura que puede llevarse a
cabo en cada localidad en EEPROM es de aproximadamente 10
millones.

La memoria EEPROM es til para almacenar datos que, por su importancia, se quieren conservar almacenados en forma segura, a pesar de
cortes de energa o ruido inducido en los circuitos del microcontrolador, que en un momento dado podran destruir estos datos en caso de
encontrarse almacenados en memoria RAM.
Adicionalmente, para cancelar la posibilidad de escrituras accidentales en la EEPROM, que pudiesen ocurrir en caso de que el procesador
pierda el control sobre la ejecucin del programa, existe una secuencia de seguridad para el ciclo de escritura, mediante el registro EECON2.
Como ejemplos de aplicaciones en donde se utilice la EEPROM se pueden mencionar los siguientes: en una chapa electrnica, la clave de
control de acceso generalmente se almacena en EEPROM. Asimismo, en un temporizador programable, las horas de encendido y apagado del
temporizador tambin se almacena en EEPROM. El kilometraje en el odmetro de un automvil se almacena en memoria EEPROM, lo cual
garantiza su permanencia.
Para accesar la memoria, es necesario utilizar 4 registros especiales que son: EEADR, EEDAT, EECON1 y EECON2. El acceso a la EEPROM
en el 16F84/F628/F88 es a travs de direccionamiento indirecto. EEDAT guarda el dato que habr de escribirse en la EEPROM, mientras que
EEADR es un apuntador hacia la localidad deseada. EECON1 y EECON2 son los registros de control que permiten leer y escribir y garantizar
la integridad de los datos almacenados.
Las subrutinas para manejar la EEPROM en los microcontroladores 16F84/F628/F88 son muy parecidas. La nica diferencia el la ubicacin de
las localidades en los bancos de registros: en el 16F84, los registros EEDAT y EEADR se encuentran en el banco 0 y EECON1 y EECON2 en
el banco 1. En el 16F628, todos estos registros se encuentran en el banco 1; en el 16F88, EEDAT Y EEADR en el banco 2, EECON1 y
EECON2 en el banco 3
EJEMPLO DE RUTINAS PARA EL MICROCONTROLADOR 16F628
PARA ESCRIBIR EN LA EEPROM:
;para usar esta subrutina, debe almacenarse primeramente la direccin
;en el registro EEADR (BANCO1) y el dato en el registro EEDATA (BANCO1)
;la rutina regresa una vez que el dato fue escrito en la localidad deseada.
EEWR:

BANCO1
BSF
BCF
MOVLW
MOVWF

EECON1,WREN
INTCON, GIE
H'55'
EECON2

http://www.puntoflotante.net/EEPROM.htm

;HABILITA EL BANCO 1
;HABILITA ESCRITURA EN EEPROM
; DESHABILITA INTERRUPCIONES
;PREPARA SECUENCIA DE SEGURIDAD
;ESCRIBE PRIMER DATO DE SECUENCIA
1/3

22/9/2014

EW:

TUTORIAL MICROCONTROLADORES PIC MANEJO DE DATOS EN LA EEPROM MICROCONTROLADOR PIC PUNTO FLOTANTE S.A.

MOVLW H'AA'
MOVWF EECON2
BSF
EECON1,WR
BTFSC
EECON1,WR
GOTO
EW
BCF
EECON1, WREN
BSF
INTCON, GIE
RETURN

;SEGUNDO DATO
;ESCRIBE SEGUNDO DATO DE SECUENCIA
;INICIA CICLO DE ESCRITURA
;MALLA PARA ESPERAR AL FINAL DEL CICLO
;SI WR=1, CICLO DE ESCRITURA AUN NO TERMINA
;DESHABILITA ESCRITURA
;HABILITA INTERRUPCIONES

PARA LEER DE LA EEPROM:


;para usar esta subrutina, debe almacenarse antes la direccin deseada
;en el registro EEADR (BANCO1). La rutina regresa con el dato en w.
EERD: BANCO1
BSF
EECON1,RD
;HABILITA EL BIT 0 (RD) DEL REGISTRO EECON1
MOVF
EEDATA,W
;TRANSFIERE EL DATO EN EEDATA A W
RETURN
para el 16F88, consulte el siguiente documento: SUBRUTINAS PARA EEPROM 16F88.PDF

PROGRAMAS DE PRUEBA Y SIMULACION EN MPLAB IDE


Este programa, en versiones para 16F628/F88, escribe en la memoria EEPROM 32 datos en las direcciones 00H-1FH. Luego los lee uno a uno
y los transfiere a los leds del puerto B durante medio segundo, de tal manera que puedan ser observados por el usuario. Si usted desarrolla su
propio programa, use el archivo .txt para copiar/pegar en su programa las rutinas de lectura y escritura.
Puede tambin cargar directamente el programa ejecutable .hex para observarlo en su sistema EDUPIC EVOLUPIC 16F628/F88.
En la ventana de abajo se muestra la simulacin del programa mencionado en MPLAB IDE. Los datos marcados en color rojo, son las
localidades de la EEPROM.
EDUPIC EVOLUPIC
EVOLUPIC Bootloader 16F88
16F628
EEPROMF628.asm
EEPROMF88TINY.asm
EEPROMF628.hex
EEPROMF88TINY.hex
Escribir y leer datos de EEPROM 16F88.txt

http://www.puntoflotante.net/EEPROM.htm

Lectura y escritura de datos en la EEPROM


SUBRUTINAS PARA LA EEPROM 16F88.PDF

2/3

22/9/2014

TUTORIAL MICROCONTROLADORES PIC MANEJO DE DATOS EN LA EEPROM MICROCONTROLADOR PIC PUNTO FLOTANTE S.A.

http://www.puntoflotante.net/EEPROM.htm

3/3

You might also like