Tema 4
Tema 4
LA MEMORI A DE
LA MEMORI A DE
DPE DESARROLLO DE PROYECTOS 2
I ntroducci
I ntroducci
ó
ó
n
n
(1)
(1)
Como es habitual en todos los
Como es habitual en todos los
µ
µ
procesadores y procesadores yµ
µ
controladores el programa que se ejecutarcontroladores el programa que se ejecutaráá, se , se encuentra grabado en una memoria no volencuentra grabado en una memoria no voláátil, estando til, estando este programa formado por diferentes instrucciones del
este programa formado por diferentes instrucciones del
repertorio del micro.
repertorio del micro.
A diferencia de otros microcontroladores en los cuales
A diferencia de otros microcontroladores en los cuales
una instrucci
una instruccióón se puede componer de varios cn se puede componer de varios cóódigos digos de operaci
de operacióón, y ser diferentes en taman, y ser diferentes en tamañño, en los PI C o, en los PI C las instrucciones solo poseen un
las instrucciones solo poseen un úúnico cnico cóódigo de digo de operaci
operacióón (CO), siendo el ancho de las mismas n (CO), siendo el ancho de las mismas úúnico.nico.
El orden en que se ejecutan las instrucciones es
El orden en que se ejecutan las instrucciones es
secuencial comenzando desde la direcci
I ntroducci
I ntroducci
ó
ó
n
n
(2)
(2)
¾
¾ El formato de las El formato de las instrucciones del PI C
instrucciones del PI C
16f84 es el mostrado
16f84 es el mostrado
en la figura de la
en la figura de la
izquierda.
izquierda.
¾
¾ Como se puede Como se puede comprobar
comprobar
independientemente
independientemente
del tipo de instrucci
del tipo de instruccióón n todas tienen un tama
todas tienen un tamañño o de 14 bits.
de 14 bits.
¾
¾ Todas las instrucciones Todas las instrucciones solo poseen un C.O
solo poseen un C.O
(
[image:3.842.39.699.34.519.2]I ntroducci
I ntroducci
ó
ó
n
n
(3)
(3)
DeDe lo expuesto anteriormente se deduce que la lo expuesto anteriormente se deduce que la memoria en el PI C 16f84 tiene una anchura de 14 bits.memoria en el PI C 16f84 tiene una anchura de 14 bits.
En este dispositivo, la memoria de programa En este dispositivo, la memoria de programa implementada es de 1Kx14bits. Siendo 0000h la primeraimplementada es de 1Kx14bits. Siendo 0000h la primera
direcci
direccióón y 03FFh la n y 03FFh la úúltima direcciltima direccióón disponible.n disponible.
•
• El elemento que almacena la direcciEl elemento que almacena la direccióón de la prn de la próóxima xima instrucci
instruccióón a ejecutar es el n a ejecutar es el CONTADOR DE PROGRAMASCONTADOR DE PROGRAMAS
•
• Todos los microcontroladores PI C de la gama media Todos los microcontroladores PI C de la gama media poseen un contador de programas de 13 bits, pudiendo
poseen un contador de programas de 13 bits, pudiendo
direccionar
direccionar 4 p4 pááginas de 2Kx14 bits cada una. Ya que el ginas de 2Kx14 bits cada una. Ya que el 16F84 solo posee 1Kx14 bits, los 3 bits de mayor peso
16F84 solo posee 1Kx14 bits, los 3 bits de mayor peso
del PC no se tienen en cuenta, por lo cual a todos los
del PC no se tienen en cuenta, por lo cual a todos los
efectos las direcciones 0000h, 0400h, 0800h, 0C00h,
efectos las direcciones 0000h, 0400h, 0800h, 0C00h,
1000h, 1400h, 1800h, 1C00h son la misma.
El contador de Programas (1)
El contador de Programas (1)
El contador de programas se forma por la uniEl contador de programas se forma por la unióón de 2 registros n de 2 registros de 8 bits cada uno llamados
de 8 bits cada uno llamados PCH y PCLPCH y PCL. Ambos registros est. Ambos registros estáán n implementados en la memoria RAM del microcontrolador
implementados en la memoria RAM del microcontrolador
PCL se encuentra en la direcciPCL se encuentra en la direccióón 02h y duplicado en la 82h.n 02h y duplicado en la 82h.
Los cinco bits de mayor peso del PC se corresponden con los 5 Los cinco bits de mayor peso del PC se corresponden con los 5 bits de menor peso del
bits de menor peso del PCLATCHPCLATCH, implementado en la direcci, implementado en la direccióón n 0Ah de RAM y duplicado en la direcci
DPE DESARROLLO DE PROYECTOS 6
El contador de Programas (2)
El contador de Programas (2)
¾
¾ En las instrucciones de ruptura de secuencia En las instrucciones de ruptura de secuencia GOTOGOTO y y CALLCALL, los 11 , los 11 bits de menor peso corresponden al c
bits de menor peso corresponden al cóódigo de operacidigo de operacióón, mientras n, mientras que los 2 bits de mayor peso, los suministran respectivamente lo
que los 2 bits de mayor peso, los suministran respectivamente los s bits 4 y 3 del PCLATCH, que est
bits 4 y 3 del PCLATCH, que estáán n direccionandodireccionando una de las 4 una de las 4 posibles p
posibles pááginas de la memoria de programas.ginas de la memoria de programas.
¾
¾ Un Un RESETRESET del microcontrolador hace que el valor del PC pase a del microcontrolador hace que el valor del PC pase a valer 0000h, y ser
valer 0000h, y seráá la instruccila instruccióón que haya en esta direccin que haya en esta direccióón la n la primera que se ejecute.
La Memoria de Programas (1)
La Memoria de Programas (1)
MEMORI A DI SPONI BLE
MEMORI A DI SPONI BLE
Como se puede apreciar la memoria del
Como se puede apreciar la memoria del
PI C 16f84 comienza en la direcci
PI C 16f84 comienza en la direccióón 0000h n 0000h y hasta la
y hasta la 1FFFh1FFFh..
EL VECTOR DE RESET
EL VECTOR DE RESET
La primera instrucci
La primera instruccióón que se ejecuta tras n que se ejecuta tras un reset es la que ocupa la direcci
un reset es la que ocupa la direccióón 0h.n 0h. Ya que como hab
Ya que como habííamos indicado amos indicado anteriormente tras el reset el PC queda a
anteriormente tras el reset el PC queda a
0000h.
DPE DESARROLLO DE PROYECTOS 8
La Memoria de Programas (2)
La Memoria de Programas (2)
VECTORES DE I NTERRUPCI
VECTORES DE I NTERRUPCIÓÓNN
Un detalle importante de la memoria de programas, es
Un detalle importante de la memoria de programas, es
que tiene reservada la direcci
que tiene reservada la direccióón 04h para el vector de n 04h para el vector de interrupciones. Este vector es
interrupciones. Este vector es úúnico, y sirve para nico, y sirve para atender a todas la interrupciones.
atender a todas la interrupciones.
Debido a esto, en la direcci
Debido a esto, en la direccióón 0h deberemos incluir una n 0h deberemos incluir una instrucci
instruccióón de salto hasta la direccin de salto hasta la direccióón 05h, que es n 05h, que es donde deber
La Memoria de Programas (3)
La Memoria de Programas (3)
PALABRAS DE I DENTI FI CACI
PALABRAS DE I DENTI FI CACI
Ó
Ó
N
N
Los
Los picpic de la gama media disponen de 4 posiciones de de la gama media disponen de 4 posiciones de memoria situadas en las posiciones 2000h a 2003h,
memoria situadas en las posiciones 2000h a 2003h,
reservadas para las palabras de identificaci
reservadas para las palabras de identificacióón n
I D.
I D.
Estas palabras se graban durante el proceso de
Estas palabras se graban durante el proceso de
grabaci
grabacióón, emplen, empleáándose sndose sóólo los 4 bits de menor peso, y lo los 4 bits de menor peso, y se utilizan para indicar el c
se utilizan para indicar el cóódigo del dispositivo, el digo del dispositivo, el n
DPE DESARROLLO DE PROYECTOS 10
La Memoria de Programas (4)
La Memoria de Programas (4)
PALABRA DE CONFI GURACI
PALABRA DE CONFI GURACIÓÓNN
Los PI C de la gama media tienen una posici
Los PI C de la gama media tienen una posicióón de n de memoria de programa reservada ( 2007h), dicha
memoria de programa reservada ( 2007h), dicha
posici
posicióón se escribirn se escribiráá durante el proceso de grabacidurante el proceso de grabacióón. n. La informaci
[image:10.842.46.703.43.519.2]La informacióón estn estáá contenida tal y como muestra la contenida tal y como muestra la figura.
La Memoria de Programas (5)
La Memoria de Programas (5)
LA PALABRA DE CONFI GURACI
LA PALABRA DE CONFI GURACI
Ó
Ó
N
N
Bits 13:4 CP Protecci
Bits 13:4 CP Proteccióón de Cn de Cóódigodigo 1= Protecci
1= Proteccióón desactivada n desactivada 0= Protecci
0= Proteccióón activada, cuando este n activada, cuando este bitbit estestáá activado, activado, el microcontrolador no puede ser
el microcontrolador no puede ser leidoleido ni sobrescrito, ni sobrescrito, cualquier intento de cambio de este
cualquier intento de cambio de este bitbit provoca que se provoca que se borre la memoria de programa.
borre la memoria de programa.
Bit
Bit 3 PWRTE, Activaci3 PWRTE, Activacióón del temporizador n del temporizador ““PowerPower UpUp”” 1= desactivado
1= desactivado
0= activado.
DPE DESARROLLO DE PROYECTOS 12
La Memoria de Programas (6)
La Memoria de Programas (6)
LA PALABRA DE CONFI GURACI
LA PALABRA DE CONFI GURACI ÓÓNN
Bits 2 WDTE Habilitaci
Bits 2 WDTE Habilitacióón del n del WatchdogWatchdog 1= Perro guardi
1= Perro guardiáán activadon activado 0= Perro guardi
0= Perro guardiáán desactivadon desactivado
Bits 1 y 0 FOSC1 Y FOSC0 BI TS DE SELECCI
Bits 1 y 0 FOSC1 Y FOSC0 BI TS DE SELECCIÓN DE ÓN DE OSCI LADOR
OSCI LADOR
11 Oscilador RC
11 Oscilador RC
10 Oscilador HS (8MHz
10 Oscilador HS (8MHz--20MHz)20MHz) 01 Oscilador XT (100KHz
01 Oscilador XT (100KHz –– 4MHz)4MHz) 00 Oscilador LP (bajo consumo 32Hz