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