Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Microprocesador
Periférico Periférico
P P
E E
R R
I I
F Microcontrolador F
É É
R R
I I
C C
O O
S S
Todas las partes del computador están contenidas en su interior y sólo salen al exterior
las líneas que gobiernan los periféricos.
Si sólo se dispusiese de 1 modelo debería tener potenciados todos sus recursos para
poder adaptarse a las exigencias de las múltiples aplicaciones. En lugar de eso, los
fabricantes ofrecen gran cantidad de modelos diferentes. Se puede seleccionar según
capacidad de memoria, número de líneas de E/S, cantidad y potencia de los elementos
auxiliares, velocidad, etc.
3. ARQUITECTURA INTERNA
1. Procesador
2. Memoria no volátil para contener el programa
3. Memoria de lectura/escritura para guardar los datos.
4. Líneas de E/S para los controladores de periféricos
5. Recursos auxiliares:
a) Circuito de reloj
b) Temporizadores
c) Watchdog (perro guardián)
d) Conversores A/D y D/A
e) Comparadores analógicos
f) Protección ante fallas de la alimentación
g) Estado de reposo o de bajo consumo
3.1. EL PROCESADOR
Esta arquitectura utiliza una memoria de programa y una memoria de datos, cada
una con sus respectivos buses de direcciones y datos / instrucciones, a diferencia de Von
Neumann que dispone de una única memoria para instrucciones y datos a la cual se
accede a través de un sistema de buses único (direcciones, datos y control).
Memoria de Memoria de
Programa datos
UCP
a) ROM
Los costos de diseño con este tipo de memoria y el instrumental necesario son
muy elevados.
b) EPROM
Esta memoria puede modificarse, ¿cómo? Borrando primero el contenido del chip
(mediante la acción de rayos ultravioletas) y luego grabando normalmente.
c) OTP o PROM
d) EEPROM
La grabación es similar a los dos tipos anteriores, pero el borrado es más sencillo
ya que se realiza eléctricamente (de la misma forma que la grabación).
Sobre el mismo zócalo del grabador puede ser borrada y programada tantas
veces como se desee. Esto lo hace ideal para la enseñanza y la creación de nuevos
proyectos.
e) FLASH
Por sus mejores prestaciones está sustituyendo a las EEPROM para contener las
instrucciones.
Los datos que manejan los programas varían continuamente, lo cual exige que la
memoria que los contiene sea de lectura / escritura. Por tal motivo la SRAM es la más
adecuada, pese a ser volátil.
Hay microcontroladores que disponen como memoria de datos una de lectura / escritura
no volátil del tipo EEPROM.
4. PIC 16C84
Pertenecen a la gama media de microcontroladores PIC (la PIC16CXX). Abarca
modelos con encapsulado desde 18 patitas hasta 68, cubriendo varias opciones que
integran abundantes periféricos.
El repertorio de instrucciones de la gama media es de 35 instrucciones de 14 bits
cada una y compatible con el de la gama baja. Sus distintos modelos contienen todos los
recursos necesarios en las aplicaciones de los microcontroladores de 8 bits.
Los impulsos de reloj entran por la patita OSC1 / CLKIN y se dividen internamente
por 4 dando lugar a las señales Q1, Q2, Q3 y Q4. Las cuatro señales constituyen un ciclo
de instrucción (1 ciclo de instrucción equivale a 4 ciclos de reloj).
Es uno de los pilares en los que se sustenta la organización de los PIC. Gracias a
ella se puede acceder de forma simultánea e independiente a la memoria de datos y a la
de instrucciones.
3. CAMINO DE DATOS con una ALU de 8 bits que recibe los operandos desde
un registro de trabajo W
4. RECURSOS CONECTADOS:
• Puertos de E/S
• Temporizador
• Etc.
Funcionamiento Básico
El PIC 16C84 tiene una zona de memoria de datos tipo RAM y otra tipo EEPROM.
La primera tiene una capacidad de 22 registros de propósito especial (SFR) y 36 de
Propósito General (GPR), todos ellos del tamaño de 1 byte. La segunda dispone de una
capacidad de 64 bytes (contiene información que no debe perderse al quitar la
alimentación).
Las operaciones de E/S con los periféricos se realizan a través de las Puertas A y B.
Existe un Temporizador TMR0 que se encarga de las funciones de control de tiempos.
También dispone de circuitos auxiliares que ofrecen posibilidades de seguridad, reducción
del consumo y reinicialización.
En las instrucciones GOTO y CALL los 11 bits de menor peso provienen del
Registro de Instrucción y los 2 bits de mayor peso provienen de los bits 3 y 4 del Registro
PCLATH
Un Reset pone a 0 todos los bits del PCL y del PCLATH, obligando a que la
dirección de reinicio sea 0000h.
4.3.1.2. La Pila
Es una zona aislada de las memorias de instrucciones y datos. Tiene una estructura
LIFO, en la que el último valor que ingresa es el primero que sale y se utiliza para anidar
subrutinas.
La memoria RAM de datos está dividida en 2 bancos de 128 bytes cada uno. En
PIC16C84 están implementadas las 48 primeras posiciones de cada banco.
En ellos, las 12 primeras posiciones de cada banco están reservadas a los SFR que
son los encargados de controlar el procesador y sus recursos.
Hay registros repetidos en ambos bancos: INDF, ESTADO, FSR, PCLATH, INTCON.
Los 36 registros restantes de cada banco se destinan a los GPR, aunque en realidad
sólo son operativos los 36 del banco 0 (los del banco 1 se mapean sobre el banco 0).
Es uno de los registros más usados. Ocupa la dirección 3 de ambos bancos. Sus bits
tienen 3 misiones distintas:
Direccionamiento Directo
El bit RP0 del Registro de ESTADO determina el banco a acceder y los 7 bits de menos
peso del Código OP de la instrucción proporcionan la dirección dentro del banco.
Direccionamiento Indirecto
STACK 2
13 0
STACK 3
0000h Vector de Reset
STACK 4
0001h
STACK 5
0002h
STACK 6
0003h
STACK 7
0004h Vector de Interrupción
STACK 8
12 0
PC
03FFh
0001
0002
0003
0005 START
- Atender la interrupción
2. Cuando se detecta una interrupción debe colocarse GIE a 0 para evitar que
interfiera una nueva interrupción cuando se está atendiendo la interrupción en
curso.
6. Analizar el registro INTCON para saber cuál de las banderas está en "1" a
efectos de determinar el origen de la interrupción. Si todos los flags de este
registro están en 0 habrá que evaluar el bit 4 del registro EECON1. Una vez
determinado el origen de la interrupción, la secuencia del programa se
desviará a atender la tarea que se programó para tal circunstancia.
Habilitar interrupciones
GIE = 1 GIE = 0 Rutina de interrupción
según origen de int.
PC = 0004h
Continúa programa
Restauración de
registros resguardados
SI Salto a rutina de
servicio de la
Ocurre interrupción
interrupción Borrar bandera que
provocó la interrupción
NO Resguardo de registros
( W - ESTADO - FSR Retorno (retfie)
Continúa programa como mínimo)
Transferir STACK a PC
GIE = 1
Formato de las Instrucciones
13 10 9 7 6 0
OPCODE d f (file)
13 8 7 6 0
d = 0 el registro destino es w
d = 1 el registro destino es f
Ejemplo:
OPCODE k
13 8 7 0
addlw k ;W=W+k
sublw k ;W=k-W
andlw k ; W = W and k
iorlw k : W = W or k
xorlw k ;
movlw k ;W=k
Las operaciones de control son aquellas que permiten realizar saltos a subrutinas
(CALL) , saltos incondicionales (GO TO), retornar de una subrutina, retornar de
una interrupción, entre las más utilizadas.
Ejemplos
00 INDF INDF 80
01 TMR0 OPTION 81
02 PCL PCL 82
03 STATUS STATUS 83
04 FSR FSR 84
05 PUERTA TRISA 85
06 PUERTB TRISB 86
07 87
08 EEDATA EECON1 88
09 EEADR EECON2 89
0A PCLATH PCLATH 8A
0B INTCON INTCON 8B
0C 8C
36 36
REGISTROS DE REGISTROS DE
DATOS DATOS
2F AF
30 No No B0
implementada implementada
7F FF
Registro Contador de Programa
12 11 10 9 8 7 6 5 4 3 2 1 0
PCLATCH PCL
Salto Relativo
Consiste en modificar el contenido del PC mediante una operación orientada al
byte, por ejemplo addwf PC,1 ; PC = PC + W
Esta instrucción modificará el contenido del PC y el mismo se conformará con los
8 bits de W (en las posiciones 0 a 7) y los 5 bits menos significactivos del
PCLATH
Bit C o Carry
82h + 81h = 103h . El resultado será 03h y C = 1
Bit Z o Zero
Indica si la operación arirmética o lógica da como resultado 0 (en tal caso Z = 1)
IRP
Se utiliza para direccionamiento indirecto.