Contenido>Indice>Intro Tutor

MEMORIA DE PROGRAMA


La memoria de código (o memoria de programa) es una memoria de sólo lectura destinada a contener el programa a ejecutar por el 8051. El µC solamente puede ejecutar las instrucciones que residan en este tipo de memoria. El 8051 dispone de 4 Kbytes de memoria de código interna, que puede expandirse hasta 64 Kbytes utilizando chips de memoria externa. La memoria de código es una memoria no volátil (los datos permanecen al quitar la alimentación) de tipo ROM, EPROM o FLASH.

Es posible utilizar combinaciones de memoria interna y externa. Un ejemplo típico es el que utiliza los 4Kbytes de ROM en el chip y el resto hasta completar como máximo los 64Kbytes en chips de memoria EPROM.

Para direccionar la memoria de código el 8051 usa siempre direcciones de 16 bits. Si la patilla EA' (1) (External Address) se encuentra a nivel alto, el 8051 ejecuta instrucciones de la ROM interna, a menos que la dirección que se esté leyendo sea superior a 0x0FFF (supere los 4 Kbytes internos), en cuyo caso los accesos van dirigidos a la memoria de código externa. Si la patilla EA' se encuentra a nivel bajo, el 8051 trata de leer todas las instrucciones desde la memoria externa de código.

Dentro de la memoria de programa, las primeras direcciones están reservadas para los vectores de interrupción así como para el comienzo de programa según se muestra en la figura siguiente:

vectores_interrupcion.GIF (1594 bytes)

figura: VECTORES DE INTERRUPCIÓN DEL 8051

i088.gif (541 bytes) El tamaño máximo de los programas del 8051 está limitado a 64K. Algunos ensambladores y compiladores ofrecen métodos para salvar esta limitación cuando se usa hardware especial. Sin embargo, sin estos compiladores y hardware especial, los programas están limitados a 64K.

   

l002.gif (417 bytes)

(1) El carácter < ' > utilizado en todo el tutorial indica que el elemento a que se refiere es activo a nivel bajo, esto es, es activo cuando su nivel lógico es un cero.


   Contenido>Indice>Intro Tutor