11/13/2007 UNIVERSIDAD TECNOLÓGICA DE LA MIXTECA Ingeniería en Electrónica EL MICROCONTROLADOR “PIC16F84” PRESENTA: M. C. Felipe Santiago Espinosa Noviembre de 2007 Objetivos 2 Que los participantes adquieran el conocimiento relacionado con los dispositivos electrónicos conocidos como Microcontroladores. Que comprendan la arquitectura del microcontrolador PIC16F84, desarrollado por Microchip. Que puedan desarrollar aplicaciones basadas en el PIC16F84. Introducción 13/11/2007 1 11/13/2007 Temas del curso 3 Introducción El interior del procesador Repertorio de Instrucciones Recursos Fundamentales Recursos Auxiliares 13/11/2007 Introducción UNIVERSIDAD TECNOLÓGICA DE LA MIXTECA Ingeniería en Electrónica 1. INTRODUCCIÓN En esta sección se pretende cubrir : Los elementos que integran una computadora Un bosquejo general de microcontroladores y microprocesadores Las características de los microcontroladores de “Microchip” Ubicar a nuestro caso de estudio: El microcontrolador PIC16F84 Noviembre de 2007 2 11/13/2007 ¿Qué es una computadora? 5 Es un sistema que procesa información, recibe datos de entrada, los procesa y produce resultados en la salida. Capaz de efectuar complejas tareas aritméticas y lógicas. Está construida por Hardware y Software. 13/11/2007 Introducción Introducción 6 La presencia de las computadoras pasa desapercibida en una gran cantidad de productos comerciales. Encontramos computadoras dentro de cajas registradoras, hornos de microondas, video juegos, video cámaras, instrumentos musicales, máquinas de escribir, equipos de sonido, fotocopiadoras, etc. En estas aplicaciones las computadoras están desempeñando funciones de “control” interactuando con el “mundo real” para encender o apagar dispositivos y monitorear condiciones. Los microcontroladores son frecuentemente encontrados en tales aplicaciones. Los microcontroladores se desarrollaron posteriormente a los microprocesadores, y muchos sistemas electrónicos actuales no hubieran sido posibles sin la presencia de estos dispositivos. Introducción 13/11/2007 3 11/13/2007 ¿Qué es una computadora? 7 • Sistema capaz de operar sobre datos sin intervención humana (siguiendo un programa). • Que puede almacenar y recuperar datos. • Incluye dispositivos I/O para la interacción con los humanos. 13/11/2007 Introducción ¿Qué es un microcontrolador? 8 Un microcontrolador es un Circuito Integrado con tecnología VLSI que contiene una Unidad Central de Procesos (CPU), memoria para código, memoria para datos, además de otros recursos necesarios para el desarrollo de aplicaciones, por lo general con un propósito específico. Un microcontrolador puede considerarse una computadora en un CI. Introducción 13/11/2007 4 11/13/2007 Microprocesadores vs. Microcontroladores 9 Aunque los microprocesadores y microcontroladores son dispositivos con algunas similitudes, existen diferencias importantes entre ellos, las cuales revisaremos desde 3 perspectivas diferentes: Hardware Aplicaciones Características del repertorio de instrucciones. 13/11/2007 Introducción Hardware 10 Microcontroladores Microprocesadores Es una Unidad Central de Procesamiento en un circuito integrado. Además de la CPU, contiene: RAM, ROM, interfaz serial, interfaz paralela, manejo de interrupciones, temporizadores, etc. Todo en un circuito integrado. Las limitantes en el microcontrolador son: Introducción Velocidad de procesamiento Tamaño de los datos Espacio de direccionamiento de memoria 13/11/2007 5 11/13/2007 Aplicaciones 11 Microcontroladores Microprocesadores Los microprocesadores son Los microcontroladores son comúnmente usados como CPU en las computadoras. Aunque también existen tarjetas de evaluación y desarrollo con base en algún microprocesador (SBC, Single Board Computer), pero éstas cada vez son menos comunes. encontrados en sistemas mínimos desempeñando actividades orientadas a control. Son la base para sistemas con propósito específico. Son la base para la construcción de sistemas de propósito general. Introducción 13/11/2007 Características del repertorio de instrucciones 12 Microprocesadores Los microprocesadores deben incluir modos de direccionamiento capaces de manejar grandes cantidades de datos. Microcontroladores Un microcontrolador debe poder manjar bits directamente. Por ejemplo: para encender o apagar un motor basta con cambiar el estado de un bit. La mayoría de Se espera que sus instrucciones operen sobre palabras (32 bits) o palabras dobles (64 bits). Introducción microcontroladores incluyen un procesador booleano que permite hacer operaciones lógicas directamente sobre bits. 13/11/2007 6 11/13/2007 Hardware de una computadora 13 13/11/2007 Introducción Hardware de un microcontrolador 14 Timer CPU Watchdog Timer Program Memory UART (Serial Port) RAM Vcc Gnd Oscillator 8-bit DATA Bus Analog I/O Port Introducción Digital I/O Port 13/11/2007 7 11/13/2007 La Unidad Central de Procesos 15 Administra todas las actividades en el sistema y ejecuta todas las operaciones sobre los datos. Su tarea puede reducirse a las siguientes operaciones: – – – Atrapar una instrucción. Decodificarla. Ejecutarla. Cada instrucción contiene un código de operación (opcode) y uno o más operandos sobre los que se realizará la operación. Estas instrucciones usualmente incluyen: – – – – Aritméticas: suma, resta, producto, división, etc. Lógicas: AND, OR, NOT, etc. Transferencia de datos. Bifurcaciones (condicionales o incondicionales) 13/11/2007 Introducción La Unidad Central de Procesos (Visión simplificada) 16 IR (Instruction Register) PC (Program Counter) Contiene la instrucción que actualmente se está ejecutando. Contiene la dirección de la instrucción a ejecutar. Unidad de decodificación y control REGISTROS De función específica ALU (Unidad Aritmético Lógica) Introducción Y De propósito general 13/11/2007 8 11/13/2007 Tareas de la CPU 17 1) Atrapar la instrucción: es una etapa fundamental que involucra los siguientes pasos: a) El contenido del PC es colocado en el bus de direcciones. b) Una señal de control (READ) es activada. c) Un dato (la instrucción) es leído de la RAM y puesto en el bus de datos. d) El dato es colocado en el registro de instrucción (IR). e) El PC es preparado para la siguiente instrucción. 13/11/2007 Introducción Tareas de la CPU (2) 18 CPU Addres Bus N Program Counter Data Bus OPCODE Instruction Register Control Bus Clock OPCODE Read N+2 N+1 N N-1 Memoria Introducción 13/11/2007 9 11/13/2007 Tareas de la CPU (3) 19 2) Decodificación: consiste en descifrar el opcode para generar las señales de control necesarias, dependiendo del tipo de instrucción. 3) Ejecución: consiste en la habilitación de la ALU para obtener algún resultado, cargar datos desde memoria, almacenar datos en memoria, modificar el valor del PC, etcétera (según las señales generadas por el control). Una serie de instrucciones combinada para realizar alguna tarea significativa es llamado programa. El grado en el cual las tareas son realizadas eficiente y correctamente depende en mucho del software, no de qué tan sofisticado sea el CPU. 13/11/2007 Introducción Tipos de CPUs 20 CISC : Complex Instruction Set Computers RISC : Reduced Instruction Set Computers Una arquitectura RISC tiene pocas instrucciones y generalmente del mismo tamaño y muchas veces corresponde con el tamaño de los datos. En la CISC hay demasiadas instrucciones con diferentes tamaños y formatos, que pueden ocupar varios bytes, uno para el opcode y el resto para los operandos. Una instrucción CISC puede corresponder a varias instrucciones RISC. Un procesador RISC típico tiene una capacidad de procesamiento de dos a cuatro veces mayor que un CISC y su estructura de hardware es tan simple, que se puede realizar en una fracción de la superficie ocupada por el circuito integrado de un procesador CISC. Introducción 13/11/2007 10 11/13/2007 Sistema de Memoria 21 Una computadora (y por lo tanto, también un microcontrolador) debe contar con memoria de código y memoria para datos. Existen 2 modelos o Arquitecturas, de acuerdo con la organización de la memoria: Bus de Direcciones Arquitectura Von Neumann Memoria de Código y Datos CPU Bus de Datos e Instrucciones Arquitectura Harvard Memoria de Código Bus de Direcciones Bus de Direcciones CPU Bus de Instrucciones Memoria de Datos Bus de Datos 13/11/2007 Introducción Sistema de Memoria 22 La mayoría de Microcontroladores utilizan una Arquitectura Harvard. La memoria de código (o de instrucciones o de programa) almacena las instrucciones que forman al programa. Para acomodar programas grandes, la memoria de código se puede particionar como memoria interna y memoria externa, en algunos microcontroladores. Usualmente la memoria de programa es no volátil y puede ser del tipo EPROM, EEPROM, Flash, ROM enmascarable o OTP (one-time programmable). Para la memoria de datos, los microcontroladores pueden contener RAM o EEPROM, para el uso de variables o de una pila. Todos los microcontroladores tienen memoria interna de datos, en diferentes magnitudes, algunos además cuentan con la capacidad de expansión usando una memoria externa. Introducción 13/11/2007 11 11/13/2007 Microcontroladores 23 Los microcontroladores son la base de muchos sistemas actuales. 13/11/2007 Introducción Aplicaciones de los microcontroladores 24 Industria 10% Computadoras 15% Automóviles 18% Comunicaciones 30% Introducción Consumo 27% 13/11/2007 12 11/13/2007 Microcontroladores comunes 25 Familia MCS-51 de Intel 8031 8051 8751 Microcontroladores de Dallas Semiconductor DS5000T DS80C400 Microcontroladores PIC de Microchip PIC16F84 Microcontroladores AVR de ATMEL ATINY461 ATMega8 ATMega16 13/11/2007 Introducción Técnicas en las que se basan los Microcontroladores PIC 26 Los microcontroladores PIC combinan tres técnicas en su construcción: Arquitectura Harvard Son RISC Utilizan segmentación (pipeline) Con ellas se consigue alto rendimiento y elevada velocidad de operación. Introducción 13/11/2007 13 11/13/2007 Microcontroladores PIC de 8 bits 27 Sencillez de manejo Información accesible Precio Diseño rápido Elevada velocidad de funcionamiento. Juego reducido de instrucciones 35 en promedio. Bajo consumo y varios voltajes de alimentación. Herramientas gratuitas www.microchip.com Gran variedad de modelos. 13/11/2007 Introducción Escalabilidad en los dispositivos de Microchip 28 Introducción 13/11/2007 14 11/13/2007 El PIC16X8X 29 MEMORIA DE PROGRAMA: 512 o 1K de palabras de 14 bits MEMORIA DE DATOS RAM: 36 o 68 bytes MEMORIA DE DATOS EEPROM: 64 bytes PILA (Stack): de 8 niveles INTERRUPCIONES: 4 fuentes JUEGO DE INSTRUCCIONES: 35 ENCAPSULADO: Plástico DIP de 18 terminales FRECUENCIA DE TRABAJO: Hasta 10 MHz TEMPORIZADORES: 1 de 8 bits + WDT (Perro Guardián) 13/11/2007 Introducción Variantes en la familia PIC16X8X 30 Introducción 13/11/2007 15 11/13/2007 Aspecto externo 31 13/11/2007 Introducción Características Eléctricas 32 Lineas de E/S digitales: 13 (5 Puerto A y 8 Puerto B) Corriente máxima absorbida: 80 mA, Puerto A y 150 mA Puerto B Corriente máxima suministrada: 50 mA Puerto A y 100 mA Puerto B Corriente máxima absorbida por línea: 25 mA Corriente máxima suministrada por línea: 20 mA Voltaje de alimentación (VDD): De 2 a 6 Voltios de CD Voltaje de grabación (Vpp): De 12 a 14 voltios de CD Introducción 13/11/2007 16