Está en la página 1de 6

Memoria de programa

Esta memoria almacena el programa de usuario aunque también puede contener


datos alfanuméricos y textos variables. Las memorias de usuario suelen ser
RAM+batería o EPROM/EEPROM. Por lo general se suelen utilizar memorias
RAM+batería para el desarrollo de programa y luego se pasan a memorias
EPROM/EEPROM cuando ya está finalizada la programación.

El conjunto de direcciones correspondientes a todas las posiciones de memoria que


puede direccionar la CPU se denomina mapa de memoria y su longitud depende de
tres factores: De la capacidad de direccionamiento de la CPU, del número de E/S
conectadas, que determina la longitud de la memoria imagen E/S y de la longitud
de la memoria de usuario utilizada.

El micro controlador está diseñado para que en su memoria de programa se


almacenen todas las instrucciones del programa de control. Como éste siempre es
el mismo, debe estar grabado de forma permanente. Existen algunos tipos de
memoria adecuados para soportar estas funciones, de las cuales se citan las
siguientes:
 ROM con máscara: se graba mediante el uso de máscaras. Sólo es
recomendable para series muy grandes debido a su elevado coste.
 EPROM: se graba eléctricamente con un programador controlador por un PC.
Disponen de una ventana en la parte superior para someterla a luz ultravioleta,
lo que permite su borrado. Puede usarse en fase de diseño, aunque su coste
unitario es elevado.
 OTP: su proceso de grabación es similiar al anterior, pero éstas no pueden
borrarse. Su bajo coste las hacen idóneas para productos finales.
 EEPROM: también se graba eléctricamente, pero su borrado es mucho más
sencillo, ya que también es eléctrico. No se pueden conseguir grandes
capacidades y su tiempo de de escritura y su consumo es elevado.

1
 FLASH: se trata de una memoria no volátil, de bajo consumo, que se puede
escribir y borrar en circuito al igual que las EEPROM, pero que suelen disponer
de mayor capacidad que estas últimas.
Son recomendables aplicaciones en las que es necesario modificar el programa a
lo largo de la vida del producto. Por sus mejores prestaciones, está sustituyendo a
la memoria EEPROM para contener instrucciones.

De esta forma Microchip comercializa dos micro controladores prácticamente


iguales que sólo se diferencian en que la memoria de programa de uno de ellos es
tipo EEPROM y la del otro tipo Flash. Se trata del PIC16C84 y el PIC16F84,
respectivamente.

Características
 Almacena todas las instrucciones del programa en ejecución, que estará
grabado de forma permanente.
 La información contenida en esta memoria se graba previamente mediante
un equipo físico denominado programador o grabador.
 El PIC16F877 tiene una memoria de programa no volátil denominada ROM
Flash que admite unas 1000 grabaciones.
 La memoria de programa está organizada en palabras de 14 bits cada una.
 Todas las instrucciones ocupan una posición de memoria de programa
 A la dirección 0 se accederá tras un RESET y a la posición 4 tras una
interrupción cualquiera

2
Contador de programa
El contador de programa (PC) es un registro de 13 bits que se descompone en 2
registros:

El byte bajo PC se denomina PCL y está disponible en la memoria de datos. Es un


registro que se puede leer y escribir directamente desde programa.

El “cuasibyte” alto PC se denomina PCH y no está disponible en la memoria de


datos. Este registro no se puede leer ni escribir directamente. La escritura debe
realizarse usando como registro intermedio el registro PCLATH que sí es un registro
de 8 bits accesible en la memoria de datos del micro controlador. El contenido del
registro PCLATH se transfiere a la parte alta del PC en el momento en que se
escribe en el registro PCL. También aporta dos bits al PC en los saltos.

El PC de 13 bits se divide en dos registros: PCH (parte alta) y PCL (parte baja). El
registro PCL es uno más de los registros de RAM, pero PCH no es accesible
directamente.

3
• Cada vez que se opere con PCL o se cargue el PC con 11 bits procedentes de un
salto o llamada a subprograma, un registro denominado PCLATH, aportará los bits
que le falten al PC para llegar a los 13 (aporta 5 bits ó 2 bits).

• El PCLATH no es la parte alta del PC, sino que es un complemento al PCL o a la


dirección que aporta una instrucción de salto o llamada a subprograma

Vector Reset
El vector de restablecimiento es la ubicación predeterminada a la que irá una unidad
central de procesamiento para encontrar la primera instrucción que ejecutará
después de un restablecimiento . El vector de reinicio es un puntero o dirección ,
donde la CPU siempre debe comenzar tan pronto como sea capaz de ejecutar
instrucciones. La dirección se encuentra en una sección de la memoria no
volátil inicializada para contener instrucciones para iniciar el funcionamiento de la
CPU, como el primer paso en el proceso de iniciar el sistema que contiene la CPU

Características
 El vector de RESET está siempre en la posición 0000h de la memoria de programa.
 Cualquier reset (interno o externo) que se genere en un micro controlador hará que
su contador de programa pase a tener el valor 0000h y que por tanto el micro
controlador pase a ejecutar la instrucción situada en dicha posición.
 El RESET también limpia el contenido del registro PCLATH.

Vector de interrupción
Es un vector que almacena la dirección de atención a la interrupción. En
muchas arquitecturas de computación típicas, los vectores de interrupción se
almacenan en una tabla en una zona de memoria, la llamada tabla de vectores de
interrupción, de modo que cuando se atiende una petición de interrupción de
número n, el sistema, tras realizar eventualmente algunas tareas previas (tales

4
como salvar el valor de ciertos registros) transfiere el control a la dirección indicada
por el elemento n-ésimo de dicha tabla.

Un vector de interrupción es un numero de 4 bytes almacenado en el primer 1K byte


de la memoria (00000H – 003FFH) el cual define la tabla de vectores de
interrupción, con un total de 256 interrupciones. Cada vector contiene la dirección
de un procedimiento ISR. Los primeros dos bytes contienen la IP y los dos últimos
contienen la CS lugar donde se encuentra el código a ejecutar debido a la
interrupción

Características
• El vector de INTERRUPCION está siempre en la posición 0004h de la
memoria de programa.
• Cualquier interrupción que se fuerce a un micro controlador hará que su
contador de programa pase a tener el valor 0004h y que por tanto el micro
controlador pase a ejecutar la instrucción situada en dicha posición.

5
• El salto a la rutina de interrupción no modifica el contenido del PCLATH, por
lo que cualquier modificación que se realice del PC en la rutina de
interrupción debe realizarse con cuidado de lo que se tiene cargado en el
PCLATH

También podría gustarte