Você está na página 1de 22

Organización de la memoria

PIC18F4550
Memoria PIC18F4550
 Memoria de programa: es una memoria flash interna de
32,768 bytes (32 Kb), almacena instrucciones y puede ser
escrita/ leída mediante un programador externo. Es una
memoria no volátil.
 Memoria de datos: Es una memoria SRAM (Static Ram)
interna de 2,048 bytes, almacena datos de forma temporal
durante la ejecución de un programa. Es una memoria volátil.
 EEPROM de datos : Memoria no volátil de 256 bytes,
almacena datos que deben de conservarse aun en ausencia
de alimentación o voltaje, puede ser estrita/leída en tiempos
de ejecución a través de registros.
PC (program counter)
• El contador de programa indica la dirección en la memoria de
programa de la instrucción que se debe ejecutar.
• El PC es un registro de 21 bit, separado en 3 secciones de 8 bit
• Los 8 bit mas bajos son conocidos como registro PCL (low
program counter) se pueden leer y escribir en la memoria de
datos
• Los siguientes 8 bits son conocidos como registro PCH (high
program counter) no es un registro que se pueda leer o
escribir directamente.
• Los 8 bit mas altos se llaman registros PCU (Upper).
• El PCL tiene el bit menos significativo a “0” debido a que las
instrucciones siempre empieza en direcciones pares.
Memoria direccionable por byte
Pila de dirección (Stack level)
• Es un bloque de memoria RAM independiente de 31 palabras
(registros) de 21 bits que sirve para almacenar
temporalmente el valor del PC cuando se produce una
llamada a una subrutina, por ejemplo la subrutina CALL.
Vectores
• Reset Vector.- Cuando se activa la
función Reset provoca que el
microcontrolador se reinicie y el
contador de programa se limpie a
cero y empiece la ejecución del
programa desde la dirección 0000h
llamada vector de reset.
• La forma mas fácil de provocar un
reset es colocar un interruptor
pulsador en la terminal 1 del μC
(MCLR).
• Existen 8 modos de reset en el
PIC18f4550
Vectores
• Interrupción: Consiste en
un mecanismo por el cuál un
evento interno o externo puede
interrumpir la ejecución de un
programa en cualquier momento.
Inmediatamente que sucede una
interrupción se produce un salto a
una subrutina de atención a la
interrupción llamada ISR (Instrution
Service Routine). Esta atiende la
interrupción y regresa al programa
exactamente donde se quedo al
momento de ser interrumpido.
Vectores
• La interrupción tiene la
característica de la inmediatez y se
considera como una intervención
urgente.
• Las interrupciones constituyen el
mecanismo más importante para la
conexión del microcontrolador con
el exterior, ya que sincroniza la
ejecución del programa con los
acontecimientos externos.
• Existen dos vectores de
interrupción:
 Vector de interrupción de prioridad
alta.
 Vector de interrupción de prioridad
baja.
Vectores
• Cuando se genera una interrupción
el procesador deja lo que tiene
pendiente y salta a la localidad de
memoria 0008h o 0018
dependiendo de cómo se hayan
establecido las prioridades (alta o
baja).
• En esta registro debe haber otra
función que esta definida en otra
parte del programa.
Ciclos de máquina
• El tiempo que tarda en ejecutarse un programa, depende de
la frecuencia del oscilador conectado al microcontrolador.
• Un ciclo de máquina es la unidad básica de tiempo que
utilizan los microcotroladores.
• En el PIC18f4550 un ciclo de máquina equivale 4 ciclos de
reloj; cada instrucción requiere 1 ciclo de maquina para
ejecutarse excepto las de salto que requieren 2 ciclos.

1 ciclo de máquina=4 ciclos de reloj


Cálculo de tiempo
• El tiempo que tarda un microcontrolador en ejecutar una
tarea esta dada por la siguiente fórmula:
1
Tiempo  4 cm
f 
T= tiempo en segundos.
F=frecuencia del oscilador en Hz
Cm=ciclos de máquina
•Ejemplo1.- Calcular la duración de 1 ciclo de máquina para un
PIC18f4550 que utiliza un cristal de cuarzo de 4 Mhz, 12 Mhz, y
20 Mhz.
•Ejemplo 2.-Calcular el tiempo que tarda en ejecutarse la
instrucción CALL si el micro funciona con un cristal de 16 Mhz..
•Ejemplo 3.-En un microcontrolador PIC18F4550 con un cristal
de 4 Mhz se desea generar un retardo de 1.5 ms. Calcular el
número de ciclos de máquina necesarios.
Memoria de datos
• El microcontrolador PI18F4550
dispone de una memoria de de
datos de 2048 bytes.
• Está distribuida en 8 bancos de
256 byte (PIC18F4550).
• La memoria de datos tiene dos
grupos de registros.
• Registros de función especial
(SFR) y registros de propósito
general (GPR).
• Los SFR (Special Funtion
Register) se usan para control y
monitoreo del funcionamiento
del microcontrolador y
periféricos.
• Los GPR(General Funtion
Register) se usan para guardar
datos temporales del programa
que ese este ejecutando.
• La mitad del banco “0” y del
banco “15” (Banco “8” en el
PIC18f4550) pueden ser
accesados directamente sin
especificar banco.
• Todos los bancos tienen las
mismas direcciones solo hay
que indicar de que banco se
necesita el dato en el registro
BSR.
•Cada registro es direccionado por una dirección de 12
bits.
• Los 4 bit mas significativos están contenidos en un
llamado apuntador de banco (Stack Pointer) y contenido
en el registro BSR (Bank Poniter register).
•Los 8 bit menos significativos esta contenidos en el código de
operación de la instrucción.
•Para acceder a un byte de memoria RAM de datos primero
debe seleccionarse el banco al que pertenece mediante el
registro de selección de banco BSR (Bank Select Registrer) y a
continuación direccionar el byte dentro del banco.
• Para lograr un acceso a memoria de datos eficientemente de
aquellos registros que tienen uso frecuente, la memoria de
datos esta configurada con dos bancos (Bank Access) de
acceso directo (Access RAM), que permite el acceso a esta
memoria sin el BSR.
• El Banco de acceso (Access bank) esta formado por los
primeros 96 bytes de memoria del banco “0” (00h-5Fh) y por
los últimos 160 bytes de memoria en el banco 15 (Banco 8 en
PIC18F4550).
• Para accesar a esta memoria las instrucciones del PIC18
incluyen un bit de acceso a esta parte de la memoria.
• Si el bit es “1” la instrucción usa el contenido del BSR (4) y los
8 bit que vienen especificados en el código de operación de la
instrucción.
• Si el bit es “0” la instrucción es obligada a usar la Access RAM
Pag. 67 índice de cada registro datasheet
Memoria EEPROM
(Ellectrically Ereasable Programable Read Only Memory)

• La memoria de datos EEPROM del PIC18F4550 tiene un


tamaño de 256 bytes.
• Es una memoria no volátil y los datos contenidos en ella
permanecen aún en ausencia de alimentación.
• El acceso a la memoria se lleva a cabo mediante los SRF´s:
EECON1, EECON2, EEDATA, EEADR.
• Se puede leer y escribir cualquiera de las 256 posiciones de
memoria.

Você também pode gostar