|
Introducción: La memoria EEPROM permite la lectura-escritura de datos teniendo como característica principal que, a diferencia de la memoria RAM, no es volátil, es decir, si la alimentación externa del circuito se interrumpe, los datos contenidos en las localidades de la EEPROM no se pierden. Además, éstos datos son electrónicamente modificables a través de programa, como se muestra en las subrutinas listadas más 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 número 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 energía o ruido inducido en los
circuitos del microcontrolador, que en un momento dado podrían 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 ejecución 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 electrónica, la clave de control de acceso generalmente se almacena en EEPROM. Asimismo, en un temporizador programable, las horas de encendido y apagado del temporizador también se almacena en EEPROM. El kilometraje en el odómetro de un automóvil 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 través 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 ubicación 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 dirección
|
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 también cargar directamente el programa ejecutable .hex para observarlo en su sistema EDUPIC ó EVOLUPIC 16F628/F88. En la ventana de abajo se muestra la simulación del programa mencionado en MPLAB IDE. Los datos marcados en color rojo, son las localidades de la EEPROM.
|