ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Memoria EEPROM


Enviado por   •  5 de Mayo de 2013  •  1.679 Palabras (7 Páginas)  •  641 Visitas

Página 1 de 7

MEMORIA EEPROM

ABSTRACT

El microcontrolador PIC16F877A creado por la MICROCHIP posee una memoria EEPROM(llamada de datos) puede ser leída y escrita durante la ejecución de un programa. Trabajan con la tensiónde alimentación del microcontrolador (VDD). Para operar ambos bloques de memoriadisponemos de los siguientes registros especiales de función (SFR): EECON1, EECON2, EEDATA, EEDATH, EEADR, EEADRH.La memoria de datos (EEPROM) tiene una palabra de 8 bits. Cuando accedemos a estebloque de memoria el registro EEDATA contiene los 8 bits de datos y el registro EEADRcontiene la dirección que deseamos trabajar. El PIC16F877 tiene 256 posiciones dememoria de datos (EEPROM) numeradas de 0x00 a 0xFF (de 0 a 255). La memoria de datos(EEPROM) es una memoria no volátil que se graba eléctricamente, es útil porque nospermite almacenar valores o parámetros que sean persistentes en la ejecución de laaplicación. Esto es, que no se borren frente a la pérdida de energía o reset.

PALABRA CLAVE

 Memoria EEPROM PIC16f877a

 Pic16f877a EEPROM

DESARROLLO

1. HISTORIA

LECTURA Y ESCRITURA DE LA MEMORIA DE DATOS EEPROM

En la familia de microcontroladores 16F87X tanto la memoria EEPROM de datos como la memoria de programa FLASH puede ser modificada sin necesidad de utilizar un programador exterior.

Se dispone de seis registros de SFR para leer y escribir sobre la memoria no volátil, estos registros son:

• EECON1

• EECON2

• EEDATA

• EEDATH

• EEADR

• EEADRH

Para direccionar las 256 posiciones de la memoria EEPROM del PIC16F876 y 16F877 basta con 8 bit, por ello para escribir o leer solo hacen falta el registro EEADR para direccionar la posición y el registro EEDATA para colocar el dato leído o escrito. Sin embargo para poder escribir o leer datos en la memoria FLASH que puede tener hasta 8K palabras de 14 bits hacen falta dos registros para direccionar la posición de memoria, por ello se utiliza el registro EEADR concatenado con el registro EEADRH que contiene la parte alta de la palabra de direccionamiento de memoria. De forma similar se utilizan los registros EEDATA concatenado con el registro EEADRH que contiene los 6 bits de mayor peso de las palabras de 14 bits. Además para controlar el proceso de lectura y escritura de la memoria EEPROM y FLASH se dispone de dos registros:

• EECON1

• EECON2.

LECTURA DE LA MEMORIA DE DATOS

Para leer un dato de la EEPROM, el registro EEADR es cargado con la dirección de la EEPROM donde se encuentra el dato y luego el microcontrolador copia el dato de dicha posición a EEDATA. A continuación hay que poner a 0 el bit EEPGD (EECON1<7>), para apuntar a la memoria de datos EEPROM. Una vez que se ponga a 1 la bandera RD (EECON1<0>), el dato estará disponible en el registro EEDATA, donde permanecerá hasta la siguiente escritura o lectura.

ESCRITURA DE LA MEMORIA DE DATOS

La escritura, que es en realidad una programación, es más compleja por razones de seguridad. Antes de escribir un dato en la EEPROM, debe ponerse a 1 la bandera de activación de escritura WR (EECON1<1>). Para transferir el dato desde el registro EEDATA a la dirección de la EEPROM a la que apunta EEADR, debe ejecutarse una secuencia obligatoria indicada por el fabricante. Posteriormente, cuando se ha realizado con éxito la operación de la bandera EEIF (PIR1<7>) se pone a 1. Si no lo hace, el almacenamiento ha sido incorrecto y no se ha realizado.

PROGRAMACION EN BASIC

La memoria EEPROM o memoria de lectura de programación y borrado eléctrico, que a diferencia de la memoria RAM, esta no es volátil, lo que quiere decir si al PIC se le corta la alimentación, los datos almacenados en la memoria EEPROM, permanecen inalterados según su fabricante por un periodo de 100 años.

LA DECLARACION EEPROM, READ Y WRITE se explican a continuación.

EEPROM 5,[3,”K”,9,12]; Quiere decir colocar la memoria EEPROM, dirección 5 el número 3, en la dirección 6 el carácter ASCII de K, es decir el número 75, en la dirección 7 se guardara el número 9 y así sucesivamente.

READ 5, pepe; Quiere decir leer la dirección 5 de la memoria EEPROM y guardar en la variable pepe, por consiguiente pepe se carga con el número 3.

WRITE 8,137; Quiere decir guardar en la dirección 8 de la memoria EEPROM el número 137, el dato anterior en este caso es el 12 automáticamente se borra y se reescribe el número 137.

WRITE 7, pepe; en este caso la variable pepe estaba cargada con el número 3, por consiguiente la dirección 7 de la memoria EEPROM se borra y se carga con el número 3.

Ejemplo:

1. Cerradura electrónica en la que la clave se puede cambiar la clave en la memoria EEPROM

cmcon=7

NUMERO VAR BYTE

R VAR BYTE

BIP VAR PORTA.0

LED VAR PORTA.1

DOOR VAR PORTA.2

A VAR PORTB.0

B VAR PORTB.1

C VAR PORTB.2

D VAR PORTB.3

UNO VAR PORTB.4

DOS VAR PORTB.5

TRES VAR PORTB.6

CUATRO VAR PORTB.7

SETPRIME VAR BYTE

SETSEGUN VAR BYTE

SETERCER VAR BYTE

SETCUART VAR BYTE

INICIANDO:

FOR R=1 to

...

Descargar como (para miembros actualizados)  txt (8.6 Kb)  
Leer 6 páginas más »
Disponible sólo en Clubensayos.com