Programacin y Aplicaciones de los Microcontroladores PIC16FXXX (Nivel
Bsico)
ING. EULER DEZA FIGUEROA
ESTRUCTURA Y CONTENIDO:
SESIONES DE CLASE
CONTENIDOS
PRACTICA
PRIMERA (5 horas )
Introduccin, Aspectos generales de
los uCs PIC, Caractersticas
Bsicas del PIC16F84A,
Organizacin de la Memoria
Parpadeo de un Diodo
Led
Juego de Luces de 4
canales
SEGUNDA
(5 horas )
Juego de Instrucciones, El Registro
de trabajo, El Registro de Estado,
Manejo de Puertos de Entrada -
Salida
Juego de Luces de 8
Canales
Lectura de Interruptores
(Ejemplos de Aplicacin)
TERCERA
(5 horas )
Retardos, Subrutinas de Retardo,
Programacin del Timer0, El Timer0
como Temporizador
Semforo de Luces
Programables
Luces Programables
CUARTA
(5 horas )
Aspectos Generales de MPLAB,
Desarrollo de Aplicaciones y
Simulacin en el entorno de MPLAB
Manejo de Display
(nodo comn y Ctodo
Comn)
Contador de Display
QUINTA
(4 horas )
Aspectos Generales de PROTEUS,
Simulacin y Depuracin de un
Proyecto en Proteus
Manejo de Motores DC
Manejo de Motores PAP
Microcontroladores PIC16FXXX (Nivel Bsico) Ing. Euler Deza
un microcontrolador es un circuito integrado que incorpora todos los bloques funcionales de un sistema Microprocesador en un nico encapsulado, el cual ejecuta de manera continua una secuencia de instrucciones (programa) que permita controlar un sistema o subsistema electrnico.
Un microcontrolador (abreviado C, UC o MCU) es un circuito integrado programable, capaz de ejecutar las rdenes grabadas en su memoria. Est compuesto de varios bloques funcionales, los cuales cumplen una tarea especfica. Un microcontrolador incluye en su interior las tres principales unidades funcionales de una computadora: unidad central de procesamiento, memoria y perifricos de entrada/salida.
MICROCONTROLADOR
Microcontroladores PIC16FXXX (Nivel Bsico) Ing. Euler Deza
MICROCONTROLADOR
Microcontroladores PIC16FXXX (Nivel Bsico) Ing. Euler Deza
Microcontroladores PIC16FXXX (Nivel Bsico) Ing. Euler Deza
Microcontroladores PIC16FXXX (Nivel Bsico) Ing. Euler Deza
Microcontroladores PIC16FXXX (Nivel Bsico) Ing. Euler Deza
Los PIC siguen la arquitectura Hardvard:
memoria de datos separada de la memoria de programas
dos tamaos de palabra:
Palabra de datos
Palabra de instruccin
Conjunto reducido de instrucciones (RISC)
ARQUITECTURA DE LOS MICROCONTROLADORES PIC
Microcontroladores PIC16FXXX (Nivel Bsico) Ing. Euler Deza
Microcontroladores PIC16FXXX (Nivel Bsico) Ing. Euler Deza
Palabra de instruccin larga: formato que permite incorporar en una nica
instruccin todos los campos necesarios (importante: suficiente espacio para los bits de direccin)
Una nica palabra por instruccin. Decodificacin ms sencilla. (un nico ciclo)
Pipeline de ejecucin.(2 etapas) Solapa la bsqueda de instruccin con la ejecucin Salvo en las instrucciones de salto.
Conjunto de instrucciones reducido. Arquitectura de registros. Conjunto de
instrucciones ortogonal.
Arquitectura Harvard
Microcontroladores PIC16FXXX (Nivel Bsico) Ing. Euler Deza
Microcontroladores PIC16FXXX (Nivel Bsico) Ing. Euler Deza
Microcontroladores PIC16FXXX (Nivel Bsico) Ing. Euler Deza
Internamente, el reloj de entrada es dividido por cuatro.
Un ciclo de instruccin equivale a cuatro periodos del reloj de entrada.
En Q1, se lee la siguiente instruccin y en Q4 es almacenada en el registro
En el siguiente ciclo es ejecutada.
Esquema de reloj/ciclo de instruccin
Microcontroladores PIC16FXXX (Nivel Bsico) Ing. Euler Deza
La importancia de conocer el ciclo de ejecucin de instrucciones en un microcontrolador estriba en que en ocasiones es necesario calcular de forma precisa el tiempo de ejecucin de los bucles para actuar en tiempo real
Ejecucin
Microcontroladores PIC16FXXX (Nivel Bsico) Ing. Euler Deza
Entre los productos que ofrece Microchip est la familia de microcontroladores de 8 bits Se refiere al tamao de la palabra de datos que
maneja Esta familia est subcategorizada por el tamao de
palabra de instruccin, que se corresponde con las capacidades ofrecidas por el microcontrolador correspondiente. Gama Baja: palabra de instruccin 12 bits Gama Media: Palabra de instruccin 14 bits Gama Alta: Palabra de instruccin 16 bits
Familia de microcontroladores de 8 bits
Microcontroladores PIC16FXXX (Nivel Bsico) Ing. Euler Deza
Microcontroladores PIC16FXXX (Nivel Bsico) Ing. Euler Deza
La componen los modelos de las familias
PIC10F (empaquetado de 6 pines)
Algunos elementos de las familias PIC12
(empaquetado de 8 pines)
Algunos elementos PIC16F5X
(empaquetados de 14, 18, 20 y 28 pines)
Palabra de instruccin de 12 bits
Reducido nmero de pines y pequea dimensin
Memoria flash programable
Reducido coste y facilidad de uso
Gama baja
Microcontroladores PIC16FXXX (Nivel Bsico) Ing. Euler Deza
Microcontroladores PIC16FXXX (Nivel Bsico) Ing. Euler Deza
Palabra de instruccin de 14 bits.
Familias PIC12
Familias PIC16
Mayor nmero de pines en los empaquetados.(8-64)
Mayor rango de voltajes operativos. 2.0-5.5v
Manejo de interrupciones
Pila de programas ms amplia
8 niveles
Canales conversores A/D y memoria EEPROM de datos
Gestin de diversos protocolos de comunicacin :
USB, SPI, I2C, USART.
Conexin inmediata a LCD.
Rendimiento en torno a los 5MIPS
Gama Media
Microcontroladores PIC16FXXX (Nivel Bsico) Ing. Euler Deza
Microcontroladores PIC16FXXX (Nivel Bsico) Ing. Euler Deza
Tamao de palabra de 16 bits
PIC18C
10MIPS
Multiplicador hardware
Aumento del tamao del stack
(32 niveles)
Aumento del nmero de fuentes de interrupcin
Empaquetado entre 18 y 80 pines.
Perifricos avanzados de comunicacin y protocolos
CAN, USB, ZigBee, TCP/IP
Gama Alta
Microcontroladores PIC16FXXX (Nivel Bsico) Ing. Euler Deza
Los avances en micro controladores se centran en la
reduccin de consumo
En este sentido se dota a los chip de la capacidad de
seleccionar la fuente del reloj (hasta 9 posibles opciones)
4 modos que usan un cristal oscilador
2 modos que usan un reloj externo
2 modos que usan un oscilador RC externo
Oscilador interno que proporciona mltiples
frecuencias (programables)
Tecnologa nanoWatt
Microcontroladores PIC16FXXX (Nivel Bsico) Ing. Euler Deza
nanoWatt
Microcontroladores PIC16FXXX (Nivel Bsico) Ing. Euler Deza
Posee 18 pines, de los cuales 13 son de I/O
Memoria para guardar programas
Timer/Contador interno
4 fuentes de interrupciones a la CPU
Memoria EEPROM
Conociendo al PIC16F84A
Microcontroladores PIC16FXXX (Nivel Bsico) Ing. Euler Deza
Diagrama del PIC16F84A
Microcontroladores PIC16FXXX (Nivel Bsico) Ing. Euler Deza
Memoria
Microcontroladores PIC16FXXX (Nivel Bsico) Ing. Euler Deza
Para configurar al PIC, debemos modificar algunos registros especiales: STATUS, OPTION_REG, INTCON, TRISA, TRISB
Para manejar el I/O estn los registros PORTA, PORTB
Todo registro es de 8 bits (1 Byte)
Registros
Microcontroladores PIC16FXXX (Nivel Bsico) Ing. Euler Deza
Un PIC nuevo viene vaco, no hace nada
Para decirle al microcontrolador lo que queremos que haga, necesitamos escribir un programa en el computador y grabrselo en la memoria
Se puede grabar y volver a grabar muchas veces distintos programas en el mismo PIC16F84A
Funcionamiento
Microcontroladores PIC16FXXX (Nivel Bsico) Ing. Euler Deza
Ahora que ya tenemos el programa en el PIC, podemos sacarlo y ponerlo en el circuito
Al alimentar con corriente al PIC, veremos cmo ejecuta las acciones que le dijimos que hiciera en el programa
Con esto se ahorra mucho trabajo
Funcionamiento
Microcontroladores PIC16FXXX (Nivel Bsico) Ing. Euler Deza
Ir a un PC y escribir el cdigo en ASSEMBLER
Compilar el archivo Y SIMULAR
Conectar el PIC a un programador de PICs que se conecta al PC
Grabar el archivo compilado al PIC
Pasos para grabar un programa
Microcontroladores PIC16FXXX (Nivel Bsico) Ing. Euler Deza
Primero hacemos el esquema en Proteus
Primer Programa: Parpadeo de un Diodo Led
Microcontroladores PIC16FXXX (Nivel Bsico) Ing. Euler Deza
Luego guardamos el archivo en una carpeta en el HD, y le asignamos un nombre (Parpadeo