Tema 4 Tema 4
Tema 4
Tema 4
LA MEMORI A DE
LA MEMORI A DE
PROGRAMAS
PROGRAMAS I ntroducci I ntroducci
ó ó n n
digo de
n, 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 c
nico c
ó
ó
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
secuencial comenzando desde la direcci
ó
n, y ser diferentes en tama
ó
(1) (1)
til, estando
Como es habitual en todos los
Como es habitual en todos los µ
µ procesadores y procesadores y
µ µ controladores el programa que se ejecutar controladores el programa que se ejecutar
á
á
, se
, se
encuentra grabado en una memoria no vol
encuentra grabado en una memoria no vol
á
á
til, estando
este programa formado por diferentes instrucciones del
de operaci
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 c
n se puede componer de varios c
ó
ó
digos
digos
de operaci
ó n mas baja. n mas baja. 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
(
( opcode opcode ) . ) . n de la pr
direccionar
xima
instrucci
instrucci
ó
ó
n a ejecutar es el
n a ejecutar es el
CONTADOR 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
ó
4 p
4 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,
xima
ó
ó
n de la pr
(3) (3)
De
De
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 primera
implementada es de 1Kx14bits. Siendo 0000h la primera
direcci
direcci
ó
I ntroducci I ntroducci
n y 03FFh la
n y 03FFh la
ú
ú
ltima direcci
ltima direcci
ó
ó n disponible. n disponible.
El elemento que almacena la direcci
El elemento que almacena la direcci
ó
ó
ó ó n n
CONTADOR DE PROGRAMAS
El contador de Programas (1) El contador de Programas (1)
El contador de programas se forma por la uni El 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 PCL PCH 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 direcci PCL 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
PCLATCH PCLATCH , implementado en la direcci
, implementado en la direcci ó
ó n n
0Ah de RAM y duplicado en la direcci 0Ah de RAM y duplicado en la direcci ó ó n 8AH. n 8AH.
El contador de Programas (2) El contador de Programas (2)
¾ ¾
En las instrucciones de ruptura de secuencia En las instrucciones de ruptura de secuencia
GOTO GOTO y y
CALL CALL , los 11
, los 11 bits de menor peso corresponden al c bits de menor peso corresponden al c
ó ó digo de operaci digo 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 lo
s s bits 4 y 3 del PCLATCH, que est bits 4 y 3 del PCLATCH, que está á n n direccionando direccionando 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
RESET RESET 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 instrucci la instrucci
ó
ó
n que haya en esta direcci n que haya en esta direcció ó n la n la primera que se ejecute. 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
1FFFh
1FFFh .
.
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.
0000h. La Memoria de Programas (2) La Memoria de Programas (2)
VECTORES DE I NTERRUPCI
n de salto hasta la direcci
ó
n 0h deberemos incluir una
n 0h deberemos incluir una
instrucci
instrucci
ó
ó
n de salto hasta la direcci
Debido a esto, en la direcci
ó
ó
n 05h, que es
n 05h, que es
donde deber
donde deber
á
ó
Debido a esto, en la direcci
VECTORES DE I NTERRUPCI
que tiene reservada la direcci
Ó
Ó
N
N
Un detalle importante de la memoria de programas, es
Un detalle importante de la memoria de programas, es
que tiene reservada la direcci
ó
nico, y sirve para atender a todas la interrupciones. atender a todas la interrupciones.
ó
n 04h para el vector de
n 04h para el vector de
interrupciones. Este vector es
interrupciones. Este vector es
ú
ú
nico, y sirve para
á comenzar el programa de usuario. comenzar el programa de usuario. La Memoria de Programas (3) La Memoria de Programas (3)
PALABRAS DE I DENTI FI CACI PALABRAS DE I DENTI FI CACI Ó Ó N N
digo del dispositivo, el
ndose 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
á
n
n
ú
ú
mero de serie, la versi
mero de serie, la versi
ó
ó
n del programa etc
ndose s
á
Los
ó
Los
pic
pic
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, emple
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, emple
n del programa etc La Memoria de Programas (4) La Memoria de Programas (4)
PALABRA DE CONFI GURACI
ó
durante el proceso de grabaci
durante el proceso de grabaci
ó
ó n. n.
La informaci
La informaci
ó
á
n est
n est
á
á
contenida tal y como muestra la
contenida tal y como muestra la figura. figura.
á
PALABRA DE CONFI GURACI
Ó
ó
Ó
N
N
Los PI C de la gama media tienen una posici
Los PI C de la gama media tienen una posici
ó
n de
n se escribir La Memoria de Programas (5) La Memoria de Programas (5)
n de
memoria de programa reservada ( 2007h), dicha
memoria de programa reservada ( 2007h), dicha
posici
posici
ó
ó
n se escribir
LA PALABRA DE CONFI GURACI LA PALABRA DE CONFI GURACI Ó Ó N N
3 PWRTE, Activaci
leido
leido
ni sobrescrito,
ni sobrescrito,
cualquier intento de cambio de este
cualquier intento de cambio de este
bit
bit
provoca que se
provoca que se borre la memoria de programa. borre la memoria de programa.
Bit
Bit
ó
el microcontrolador no puede ser
ó
n del temporizador
n del temporizador
“
“
Power
Power
Up
Up
”
”
1= desactivado
1= desactivado 0= activado. 0= activado.
el microcontrolador no puede ser
activado,
Bits 13:4 CP Protecci
ó
Bits 13:4 CP Protecci
ó
ó
n de C
n de C
ó
ó
digo
digo
1= Protecci
1= Protecci
ó
n desactivada
activado,
n desactivada
0= Protecci
0= Protecci
ó
ó
n activada, cuando este
n activada, cuando este
bit
bit
est
est
á
á
3 PWRTE, Activaci
200Hz) 200Hz)
11 Oscilador RC
00 Oscilador LP (bajo consumo 32Hz
00 Oscilador LP (bajo consumo 32Hz
4MHz)
4MHz)
01 Oscilador XT (100KHz
01 Oscilador XT (100KHz
20MHz)
20MHz)
10 Oscilador HS (8MHz
10 Oscilador HS (8MHz
11 Oscilador RC
La Memoria de Programas (6) La Memoria de Programas (6)
N DE N DE OSCI LADOR OSCI LADOR
Ó Ó
Bits 1 y 0 FOSC1 Y FOSC0 BI TS DE SELECCI Bits 1 y 0 FOSC1 Y FOSC0 BI TS DE SELECCI
á á n desactivado n desactivado
0= Perro guardi 0= Perro guardi
á á n activado n activado
1= Perro guardi 1= Perro guardi
Watchdog Watchdog
ó n del
n del
Bits 2 WDTE Habilitaci ó
LA PALABRA DE CONFI GURACI LA PALABRA DE CONFI GURACI Ó Ó N N Bits 2 WDTE Habilitaci
–
–