1
Curso de Microcontroladores Profr. Felipe Santiago 1
INTERIOR DEL PROCESADOR
En esta sección se pretende:
Conocer la arquitectura y funcionamiento de los microcontroladores de la familia PIC16X8X
La organización de su memoria, y Sus registros de funciones especiales.
Curso de Microcontroladores Profr. Felipe Santiago 2
Aspecto externo
2
Curso de Microcontroladores Profr. Felipe Santiago 3
Organización interna
Registro W El registro W es el registro de trabajo para los
microcontroladores PIC.
Este registro es muy importante para este tipo de arquitecturas, por que siempre será el segundo operando para la ALU. Además de que puede ser registro destino para el resultado.
Si se quieren sumar dos localidades de memoria, deberá primeramente pasarse una al registro W, luego se suma la segunda con W.
A = A + B
W <- B
A <- A + WCurso de Microcontroladores
Profr. Felipe Santiago 4
3
Curso de Microcontroladores Profr. Felipe Santiago 5
Memoria
de código
y
muestra
de la
pila
Curso de Microcontroladores Profr. Felipe Santiago 6
Memoria de
datos,
incluye los
registros de
funciones
especiales
4
Curso de Microcontroladores Profr. Felipe Santiago 7
Registros de funciones especiales
Curso de Microcontroladores Profr. Felipe Santiago 8
Registro de ESTADO (03h)
Bit 7 : IRP : Bit selector de Banco de registros (utilizado para direccionamiento indirecto)
0 : Banco 0, 1 (00h - FFh)
1 : Banco 2, 3 (100h - 1FFh)
IRP debe mantenerse en 0 en el PIC16X8X, ya que sólo tiene dos bancos
Bits 6 - 5 : RP1: RP0: Bits selectores de banco (utilizado para direccionamiento directo)
00 : Banco 0 (00h - 7Fh)
01 : Banco 1 (80h - FFh)
10 : Banco 2 (100h - 17Fh)
11 : Banco 3 (180h - 1FFh)
Cada banco es de 128 bytes. Para el PIC16X8X, RP1 debe mantenerse en 0 y RP0 define el
banco de trabajo
5
Curso de Microcontroladores Profr. Felipe Santiago 9
Bit 4 : TO’: Bit de desbordamiento (Time Out)
0 : Si ocurre un desbordamiento del WDT
1 : Después de un RESET o con las instrucciones SLEEP y CLRWDT
Bit 3 : PD’: Bits de activación de bajo consumo de potencia
0 :Con la instrucción SLEEP
1 :Después de un RESET o al ejecutar la instrucción CLRWDT
Bit 2 : Z : Bandera de indicación de 0
1 :El resultado de una operación aritmética o lógica es cero
0 : El resultado de una operación aritmética o lógica no es cero
Bit 1 : DC : Bit de acarreo/llevada’ decimal(para sumas o restas)
1 :Si ha ocurrido un acarreo en el nibble menos significativo
0 : Si se produce una llevada en el nibble menos significativo
Bit 0 : C : Bit de acarreo/llevada’ de todo el byte (para sumas o restas)
1 :Si ha ocurrido un acarreo después de una suma
0 : Si se produce una llevada después de una resta
TIPOS DE OSCILADORES
El PIC16F84 puede ser operado en uno de cuatro diferentes modos de oscilación. El usuario puede programar dos bits de configuración (FOSC1 y FOSC0) para seleccionar uno de estos cuatro modos:
• LP Cristal del baja potencia
• XT Cristal resonador
• HS Cristal Resonador de alta velocidad
• RC Resistor/Capacitor
10Curso de Microcontroladores
Profr. Felipe Santiago
6
CRISTALES Y RESONADORES CERÁMICOS
En los modos XT, LP o HS, un cristal o resonador cerámico debe conectarse en las terminales OSC1/CLKIN y OSC2/CLKIN para establecer la oscilación:
Resonadores Cerámicos
Cristales
Selección de Capacitores
11Curso de Microcontroladores
Profr. Felipe Santiago
OSCILADOR RC
Es una alternativa de bajo costo, si la temporización no es un factor importante.
La frecuencia es una función del voltaje, el valor de un resistor (Rext), de un capacitor (Cext) y la temperatura de operación.
La frecuencia puede variar entre dispositivos por variaciones en los procesos de fabricación.
El tipo de capacitor afecta la oscilación.
Los componente R y C tienen tolerancias externas en sus valores.
Fosc Rext Cext
625 kHz 10 k 20 pF
80 kHz 10 k 220 pf
80 Hz 10 k 0.1 uF
Valores aproximados
12Curso de Microcontroladores
Profr. Felipe Santiago
7
RELOJ EXTERNO
Se debe usar la configuración HS, XT o LP.
13Curso de Microcontroladores
Profr. Felipe Santiago
El reloj de entrada (desde OSC1) es internamente dividido por
cuatro para generar cuatro señales cuadradas que no se
traslapan, nominalmente :
Q1, Q2, Q3 y Q4.
El program counter (PC) es incrementado cada Q1, la
instrucción es capturada desde la memoria de programa y
atrapada en el registro de instrucción en Q4.
La instrucción es decodificada y ejecutada durante los
siguientes Q1 a Q4.
Captura y Ejecución de instrucciones
14Curso de Microcontroladores
Profr. Felipe Santiago
8
Flujo de Captura y Ejecución de instrucciones
15Curso de Microcontroladores
Profr. Felipe Santiago
Un “Ciclo de instrucción” consiste de cuatro ciclos de reloj (Q1, Q2, Q3 and
Q4).
La captura y ejecución de instrucciones se segmentan de manera que la
captura toma lugar en un ciclo y la ejecución en otro ciclo.
Por la segementación aparenta que cada instrucción solo requiere de un
ciclo de instrucción.
Si una instrucción porduce un cambio en el program counter (e.g., GOTO), se
necesitarán los dos ciclos para completar la instrucción.
Un ciclo de captura inicia cuando el PC es incrementado en 1 en Q1.
Y termina cuando la instrucción capturada es atrapada en el “Registro de
Instrucción” (IR) en el ciclo Q4.
Esta instrucción es decodificada y ejecutada durante los ciclos Q2 y Q3,
del siguiente ciclo de máquina.
Segmentación de instrucciones
16Curso de Microcontroladores
Profr. Felipe Santiago
9
Segmentación de instrucciones
17Curso de Microcontroladores
Profr. Felipe Santiago
Un PIC16X84 que trabaja con un cristal de 4 MHz ejecuta un programa de
1000 instrucciones, de las cuales el 25 % son saltos.
¿Qué tiempo tarda el microcontrolador en ejecutar el este programa?
Ejemplo :
18Curso de Microcontroladores
Profr. Felipe Santiago