2. ING. ADRIAN DÍAZ
EL MICROCONTROLADOR
Un Microcontrolador es un circuito integrado programable que contiene todos
los componentes necesarios para controlar el funcionamiento de una tarea
determinada, como el control del teclado de un ordenador, una impresora un
sistema de alarma, etc.
Los PIC (Peripheral Interface Controller) son una familia de microcontroladores
que han tenido gran aceptación y desarrollo, por sus buenas características,
bajo precio, reducido consumo, pequeño tamaño, gran calidad, fiabilidad y
abundancia de información.
4. ING. ADRIAN DÍAZ
EL MICROCONTROLADOR PIC 16F87X
Procesador de arquitectura RISC avanzada
· Juego de solo 35 instrucciones con 14 bits de longitud. Todas ellas se ejecutan en un
ciclo de instrucción, menos las de salto que tardan dos.
· Hasta 8K palabras de 14 bits para la Memoria de Programa, tipo FLASH
en los modelos 16F876 y 16F877 y 4KB de memoria para los PIC 16F873 y 16F874.
· Hasta 368 Bytes de memoria de Datos RAM.
· Hasta 256 Bytes de memoria de Datos EEPROM.
· Pines de salida compatibles para el PIC 16C73/74/76/77.
· Hasta 14 fuentes de interrupción internas y externas.
· Pila de 8 niveles.
· Modos de direccionamiento directo e indirecto.
· Power-on Reset (POP).
· Temporizador Power-on (POP) y Oscilador Temporizador Start-Up.
· Perro Guardián (WDT).
· Código de protección programable.
· Modo SLEEP de bajo consumo.
· Programación serie en circuito con dos pines, solo necesita 5V para programarlo en
este modo.
· Voltaje de alimentación comprendido entre 2 y 5,5 V.
· Bajo consumo: < 2 mA valor para 5 V y 4 MHz 20 uA para 3V y 32 M < 1 uA en standby.
8. ING. ADRIAN DÍAZ
• Tres bloques de memoria
– RAM: Dividida en dos bloques:
– GPR. Registros de propósito general
– SFR Registros de propósito especial
– EEPROM: Grabable dinámicamente desde
programa.
– Sólo puede contener datos.
– Sólo permite acceso indirecto.
– FLASH: Memoria de programa
– Dado que el PC tiene un tamaño de 13 bits:
máximo 8Kx14
– En PIC16F87X: 4-8K disponible
ORGANIZACIÓN DE LA MEMORIA
10. ING. ADRIAN DÍAZ
ORGANIZACIÓN DE LA MEMORIA DEL PROGRAMA
Reset vector: 0000h
(tras un reset, la primera instrucción a
ejecutar es la que está en 0000h)
Interrupt vector: 0004h
(Una única entrada de interrupción. A
continuación se ha de verificar cual de
las líneas la ha generado)
11. ING. ADRIAN DÍAZ
• Para configurar al PIC, debemos modificar algunos registros
especiales: STATUS, OPTION_REG, INTCON, TRISA, TRISB
• Para manejar el I/O están los registros PORTA, PORTB
• Todo registro es de 8 bits (1 Byte)
REGISTROS
Son un espacio de memoria muy reducido pero necesario
para cualquier microprocesador, de aquí se toman los datos
para varias operaciones que debe realizar el resto de los
circuitos del procesador. Los registros sirven para almacenar
los resultados de la ejecución de instrucciones, cargar datos
desde la memoria externa o almacenarlos en ella.
12. ING. ADRIAN DÍAZ
Distribución de REGISTROS en Memoria
Se organiza en bancos.
En PIC16F8x: 2 bancos.
Cada banco admite hasta 128 bytes.
En PIC16F8x: 79 bytes.
Selección del banco:
Bit RP0 del registro STATUS
RP0 = 0 -> Banco 0
RP0 = 1 -> Banco 1
Registros:
SFR
Banco 0: RP0=0 0x00 -> 0x0B
Banco 1: RP0=1 0x80 -> 0x8B
GPR
Banco 0: 0x0C -> 0x4F (68 bytes)
Banco 1: Mapeado completamente en el banco 0
14. ING. ADRIAN DÍAZ
El Registro STATUS está definido por los siguientes 8 bits :
Según las hojas de especificaciones, la memoria de datos se divide en múltiples bancos,
que contienen los GPRs (Registros de Propósito General) y los SFRs (Registros de
Función Especial). Los Bits RP0 y RP1 son los bits de selección de banco, el PIC16FF8A
tiene los bancos 0 y 1(Paginación de la Memoria), se direccionan con un sólo bit (RP0),
ya que solo tiene 2 bancos mientras que los microcontroladores que tienen 4 bancos, se
direccionan con los dos bits RP0 y RP1 .
EL REGISTRO DE ESTADO
16. ING. ADRIAN DÍAZ
• El registro W funciona a modo
de acumulador.
• La RAM es vista como un
‘archivo de registros’.
• Modos de direccionamiento:
– Directo(dirección contenida en
la instrucción)
– Indirecto (dirección en FSR)
• Uso de la pila para anidamiento
de llamadas a rutinas. No para
datos.
• Permite datos inmediatos.
• Almacenamiento directo de
resultados en memoria.
• EEPROM grabable
dinámicamente.
ARQUITECTURA DEL MICROCONTROLADOR
17. ING. ADRIAN DÍAZ
• Sólo se utiliza para anidar llamadas a rutinas: CALL, interrupciones.
• Tiene una amplitud de 13 bits
– No hay que tener en cuenta la diferenciación PCL-PCLATH.
• La recuperación de la pila se realiza exclusivamente a través de RETURN, RETLW y
RETFIE.
COMENTARIO:
La pila solo tiene 8 niveles. Almacenar un noveno dato implica sustituir el primer dato
almacenado por el nuevo.
9 1; 10 2...
LA PILA (Stack)