Guia de Microcontroladores

March 18, 2018 | Author: Danny Noboa | Category: Read Only Memory, Microcontroller, Usb, Computer Memory, Central Processing Unit


Comments



Description

Universidad del AzuayFacultad de Ciencias de la Administración Escuela de Ingeniería de Sistemas y Telemática Guía de Microcontroladores Autores: Danny Noboa Darío Espinoza Revisión: Ing. Ítalo Mogrovejo Febrero/2014 Contenido 1. Elementos Generales de Arquitectura Interna de la IBM PC.....................................3 Guía de Microcontroladores Sumario 2. 3. 4. 5. 6. 1.1. Introducción a los Sistemas Microprocesados....................................................3 1.2. Descripción de la Arquitectura IBM PC/AT..........................................................4 1.3. Evolución de la Arquitectura AT.........................................................................6 1.4. Inside the MainBoard.........................................................................................6 1.5. Discusión sobre Partes Componentes................................................................7 1.5.1. Procesadores (Microcontroladores)................................................................7 1.5.2. Bus de Sistema.............................................................................................. 8 1.5.3. Chipset.......................................................................................................... 8 1.5.4. Memorias....................................................................................................... 9 Interrupciones en la IBM PC Generalidades............................................................11 2.1. Tratamiento de interrupciones en la PC...........................................................11 2.2. Interrupciones por hardware en la Pc..............................................................15 2.3. Controladores de interrupción 8259A..............................................................17 2.4. Evolución en el manejo de interrupciones.......................................................20 2.5. Registros y transferencias para el manejo de interrupciones..........................23 Puerto Paralelo....................................................................................................... 27 3.1. Tipos de Puertos.............................................................................................. 27 3.2. Pines y Registros............................................................................................. 29 Puerto Serial........................................................................................................... 32 4.1. Conectores y pines.......................................................................................... 32 4.2. Protocolo de comunicación..............................................................................33 Puerto USB............................................................................................................. 35 5.1. Especificaciones generales..............................................................................35 5.2. Historia............................................................................................................ 35 5.3. Evolución de los estándares USB.....................................................................36 5.3.1. USB 2.0........................................................................................................ 40 5.3.2. USB 2.X vs Firewire......................................................................................43 5.3.3. Interface USB en la IBM Pc...........................................................................44 5.3.4. Cables y Conectores....................................................................................44 5.4. Especificaciones Eléctricas..............................................................................45 5.5. Administración de la energía en el bus............................................................45 Microcontroladores................................................................................................. 47 6.1. Definición........................................................................................................ 47 6.2. Diferencia entre microprocesadores y microcontroladores..............................47 6.3. Arquitectura de un microcontrolador...............................................................48 Ing. Ítalo Mogrovejo Universidad del Azuay 1 Guía de Microcontroladores Sumario 6.4. 7. Microcontroladores de 8 bits...........................................................................49 PIC.......................................................................................................................... 50 7.1. Definición........................................................................................................ 50 7.2. Pic 16X84........................................................................................................ 50 7.3. PIC 16X (F) XX................................................................................................. 50 7.4. PIC 16F87X...................................................................................................... 52 7.5. 17CXXX........................................................................................................... 57 7.6. PIC 18C(F)XXX................................................................................................. 61 8. Programación de PIC.............................................................................................. 70 8.1. Instalación del software necesario..................................................................70 8.2. PIC 16F877A.................................................................................................... 70 8.3. Diagrama de pines y funciones.......................................................................72 9. El lenguaje de programación MIKROC....................................................................75 9.1. Ventajas e inconvenientes...............................................................................75 9.2. Los lenguajes usados para microcontroladores...............................................76 9.3. Repertorio de instrucciones MikroC.................................................................77 10. Prácticas............................................................................................................. 79 10.1. Manejo de LEDS.............................................................................................. 79 10.2. Manejo de Repeticiones...................................................................................80 10.3. Manejo de Pulsadores......................................................................................82 10.4. Manejo de Displays......................................................................................... 84 10.5. Manejo de LCD................................................................................................ 86 10.6. Manejo de Sonido............................................................................................ 89 10.7. Manejo de Teclados......................................................................................... 91 10.8. Manejo de Interrupciones................................................................................91 Referencias................................................................................................................. 102 Anexos........................................................................................................................ 103 Índice de Tablas y Figuras........................................................................................... 103 Biografías.................................................................................................................... 106 Ing. Ítalo Mogrovejo Universidad del Azuay 2 es decir cálculos. Memoria de Programa: Es la que se encarga de guardar las instrucciones del programa a realizarse. Introducción a los Sistemas Microprocesados Figura 1 Diagrama de Bloques de (Mogrovejo. Buses: Son los encargados de la comunicación de todos los componentes del sistema.Guía de Microcontroladores Elementos Generales de Arquitectura de la IBM PC 1. de Programa: Se encarga de ver la siguiente línea a Reset: Vuelve a 0 en micro.1. Ing. Bus de Direcciones: Es el que se encarga de llevar la dirección o ubicación de un componente o de un dato guardado en memoria. valores etc. Ítalo Mogrovejo Universidad del Azuay 3 . controla la habilitación de los dispositivos. Bus de Control: Es el encargado de controlar los procesos de lectura o escritura. Decodificador de Instrucciones: Decodifica las instrucciones que se guardan en la memoria de programa a lenguaje ensamblador que es el lenguaje de máquina. Memoria de Periféricos: Son memorias para controlar periféricos. 2013) un Sistema Microprocesado Partes del Sistema Micropocesado CPU: Unidad Central de Proceso ALU: Unidad aritmética Lógica Contador ejecutar. Elementos Generales de Arquitectura Interna de la IBM PC 1. Circuito de Reloj: Generador de reloj Memoria de Datos: Es la que se encarga de guardar datos que usa el programa de manera volátil. comprando todo el trabajo que le llevaban de ventaja sus competidores. destacar que IBM no era consciente del éxito que iba a tener su producto. seleccionando los mejores componentes y software de las mejores empresas. seguramente el IBM-PC sería un ordenador personal más. Ítalo Mogrovejo Universidad del Azuay 4 . Si no lo hubieran decidido así. (Ibáñez) Recuerde el lector que la primera microcomputadora de la historia la fabricó Micro Instrumentation Telemetry Systems en 1975 con el nombre de Altair 8800. (Alonso130. Es por ello la decisión de fabricar su PC a golpe de talonario. Esta política fue la clave del éxito del IBM PC y lo que más tarde haría que se convirtiera en un estándar. Esto era un lujo que una empresa de la envergadura de IBM se podía permitir.2. ya que estos le llevaban una ventaja muy considerable. añadidos a la lista de los ya comercializados Apple II. direcciones y control Periférico de Sistemas Microprocesados: Es todo aquello que puede ser controlado por un microprocesador 1.Guía de Microcontroladores Elementos Generales de Arquitectura de la IBM PC Figura 2 Buses de datos. No obstante. Descripción de la Arquitectura IBM PC/AT En julio de 1980 IBM decide empezar a desarrollar su primera computadora personal pretendiendo así irrumpir en todos nuestros hogares. IBM era consciente de que si quería que su trabajo tuviera éxito debería aportar algo más que sus competidores en ordenadores personales. 2010) MEMORI A EXTERNA AÑO PC UP ISA DISCO DURO 1981 PC 8088 8 bits - - 1983 PC/XT 8088/86 8/16 bits 10M 5 ¼´ Ing. La primera y más importante decisión que adoptó la comisión de este proyecto fue que su PC debería basarse en una arquitectura abierta. Commodore PET. etc. y parece ser que lo seguirá siendo durante muchos años. Pero no fue hasta 1911 cuando Charles R. 2011) Desde los tiempos de Watson hasta nuestros días. Todo ello llevó al alemán a crear su propia empresa que llamó "Tabulating Machine" y durante más de 10 años se dedicó a fabricar máquinas perforadoras con mucho éxito. Este invento fue un gran éxito e hizo que Hollerith ganara el concurso.3. cronómetros y hasta cortadores de carne o queso. En plena revolución industrial EEUU recibía a diario miles y miles de inmigrantes que buscaban fortuna en el nuevo continente. IBM ha sido lider de su sector. IBM irrumpe en el mercado español con grán exito. El resultado fue Computing-Recording Company (C-T-R). Entonces tomo sus riendas. además de extenderla por todo el mundo. Dos años después. Thomas J.Guía de Microcontroladores Elementos Generales de Arquitectura de la IBM PC 1984 PC/AT 80286 16 bits 1987 EISA 386 – 486 32 bits 20M - 5 ¼’ - Tabla 1 Aparición Computadoras IBM (Mogrovejo. A los pocos años la economía de esta empresa empezo a tambalearse. Precisamente un inmigrante alemán llamado Herman Hollerith. y en 1924 le cambió el nombre a International Bussines Machines (IBM). Watson consiguió elevar C-T-R a la cumbre. 2013) Todo empezó a finales del Siglo XIX. 1. (Innovador. Esto provoco semejante caos en las oficinas del censo que las autoridades no tuvieron más remedio que convocar un concurso público para mejorar el sistema existente. desarrollo una máquina perforadora que bautizó como "Punch Card Tabulating Machine". una empresa de unos 1300 empleados que se dedicaba a fabricar todo tipo de maquinaria: balanzas industriales. Flint gestionó la fusión de esta empresa con dos más del sector (Computing Scale e International Time Recording). que era empleado del censo en Nueva York. Watson (para algunos el auténtico fundador de IBM). Ítalo Mogrovejo Universidad del Azuay 5 . Evolución de la Arquitectura AT AÑO HECHOS HISTORICOS 1944 Primer computador electromecánico 1952 Primer computador con tubos de vacio 1969 IBM está en la NASA (viaje a la luna) Ing. Guía de Microcontroladores Elementos Generales de Arquitectura de la IBM PC 1970 Concepto de base de datos relacional 1971 Disco Flexible 1981 Aparición del primer PC comercial basado en el primer procesador 1983 Intel 8088 PC/XT con procesador 8086 que permite trabjar de 8 a 16 bits 1984 PC/AT con microprocesador 80286. La Mainboard o tarjeta madre no es más que una placa cuya función es conectar todos los dispositivos tanto externos como internos. A continuación vemos algunos de los componentes que utiliza la Mainboard: Ing. trabaja a 16 bits 1987 IBM crea EISA(interfaz de periféricos y memorias) a 32 bits 1987 IBM + Microsoft crean OS/2 como sistema operativo 1990 Primera hoja de cálculo LOTUS123 1992 Primer portátil IBM 1995 Primera hoja de calculo Tabla 2 Hechos importantes en línea de tiempo para los PC's (Mogrovejo. Ítalo Mogrovejo Universidad del Azuay 6 . Inside the MainBoard Definición de Mainboard.4. que necesite un computador. 2013) 1. Aproximadamente. el 40% de las aplicaciones de los microcontroladores son para la Ing. Discusión sobre Partes Componentes 1.1.5. puertos de entrada/salida (E/S) de serie y paralelo. Microcontroladores: Los microcontroladores son computadoras en un solo chip que poseen una Unidad Central de Procesamiento (CPU. memoria de programa y de datos. Ítalo Mogrovejo Universidad del Azuay 7 . temporizadores e interrupciones internas y externas. Central processing unit). Procesadores (Microcontroladores) ¿Qué es un Microprocesador? Es un conjunto de dispositivos electrónicos que interactúan entre sí para realizar una tarea determinada.Guía de Microcontroladores Elementos Generales de Arquitectura de la IBM PC Figura 3 Mainboard (Rojas) 1. los microcontroladores se usan en muchos equipos comerciales e industriales.5. Los microcontroladores son dispositivos electrónicos inteligentes que se emplean para aplicaciones de control y monitoreo. Actualmente. gestiona la mayor parte de la información que entra y sale por el bus principal del procesador. la memoria RAM.2. diseñados como parte integral de esa arquitectura). Chipset Definición de un chipset Un chipset es el conjunto de circuitos integrados diseñados con base a la arquitectura de un procesador (en algunos casos. Sirven de puente de comunicación con el resto de componentes de la placa. como por ejemplo.5. el puerto gráfico AGP o el PCI-Express de gráficos. (compPC. teclado. anteriormente el puerto paralelo actualmente ya no viene en las maquinas actuales.3. y las comunicaciones con el puente sur. direcciones y datos. 1. Multiplexado: Uso de la misma línea para transmitir direcciones y datos. las tarjetas de expansión.Guía de Microcontroladores Elementos Generales de Arquitectura de la IBM PC automatización de oficinas. teclado. denominados puente norte y puente sur. usado con procesador Pentium 4 en encapsulado de pines. del sistema de vídeo y muchas veces de la memoria RAM. Es uno de los pocos elementos que tiene conexión directa con el procesador. 1. Las placas base modernas suelen incluir dos integrados. dando soporte a varios componentes e interconectándolos de forma que se comuniquen entre ellos haciendo uso de diversos buses. ratón. como son la memoria. etc. los ordenadores personales. Funcionamiento: Chipset 875 de Intel. las máquinas de facsímil y los teléfonos inteligentes. Puente norte: Se conecta con el procesador y con la memoria. Bus de Sistema Tipos de Buses: Simples: Uso de líneas separadas. El Chipset es el que hace posible que la placa base funcione como eje del sistema. 2014) Ing.5. las impresoras láser. Ítalo Mogrovejo Universidad del Azuay 8 . Controla las funciones de acceso hacia y entre el microprocesador. permitiendo que ese tipo de procesadores funcionen en una placa base. Puente sur: Tiene comunicación con todos los periféricos como mouse. los puertos USB. EPROM: significa Erasable Programmable Read Only Memory (Memoria de sólo lectura programable y borrable). valores máximos y mínimos. Silicon Integrated Systems y VIA Technologies. Este tipo de memoria almacena el programa del microcontrolador y los datos que son constantes. muy lentas. PROM: Las memorias PROM o ROM programables son básicamente iguales a las memorias ROM. Ítalo Mogrovejo Universidad del Azuay 9 . por lo que no se precisa el desarrollo de máscaras especiales para cada contenido determinado de la memoria (como ocurría en la memoria ROM clásica). 1. NVIDIA. Intel.Guía de Microcontroladores Elementos Generales de Arquitectura de la IBM PC En la actualidad los principales fabricantes de chipsets son AMD. datos de identificación. Las memorias ROM se programan durante el proceso de fabricación por lo que no se puede alterar su contenido. si se ha desarrollado una versión final del programa y se desean fabricar varios miles de copias de estas. RMM: Memoria principalmente de lectura.4. normalmente. pero la EPROM puede programarse con un dispositivo programador adecuado. EEPROM: significa Electrically Erasable Programmable Read Only Memory (memoria de sólo lectura. programable y borrable eléctricamente). Estas memorias se borran y se reprograman hasta que el usuario quede satisfecho con el programa final. Memoria de Datos: Ing. ATI Technologies (comprada en 2006 por AMD). EAPROM: Eléctricamente alterable programable Read-Only tipo PROM cuyo contenido puede ser alterado. Las EEPROMs se usan para guardar información de configuración. Las memorias EPROM tienen una pequeña ventana de vidrio transparente colocada encima del chip para que sus datos puedan borrarse al aplicar luz ultravioleta (UV).5. solamente. Se trata de una memoria no volátil por lo que se puede borrar y programar bajo el control del programa. etc. reduciendo considerablemente los gastos del proceso. Las memorias EEPROM son. pero presentan la particularidad de que la primera y única grabación posible no se realiza durante el proceso de fabricación necesariamente. Esta memoria es muy similar a la memoria ROM. Las memorias ROM son útiles. Memorias Memoria de Programa: ROM: equivale a Read Only Memory (memoria de sólo lectura). DRAM: memoria RAM dinámica. Ing. El principal inconveniente de este diseño es que el condensador básico no almacena la información indefinidamente. por lo que es posible alcanzar altos niveles de integración. estas memorias presentan una celda elemental de almacenamiento basada en un condensador. debido a su limitada capacidad de integración y al elevado precio que suelen presentar. NRAM: Considerada una memoria RAM no volátil. Su principal característica son sus pequeños tiempos de acceso. es decir con el cambio de energía esta no pierde sus datos. La memoria RAM es volátil. La mayoría de los microcontroladores poseen una cierta cantidad de memoria RAM interna. SRAM: memoria RAM estática. sus datos se pierden al desconectar la alimentación. por lo que es necesario actualizarla o refrescarla periódicamente.Guía de Microcontroladores Elementos Generales de Arquitectura de la IBM PC RAM: significa Random Access Memory (memoria de acceso aleatorio). con unos tiempos de acceso bastante aceptables. siendo muy utilizadas en aquellas aplicaciones que precisen de esta peculiaridad. sin embargo. estas memorias tienen una celda de almacenamiento básica constituida por un biestable. es decir. Esta memoria es de propósito general y normalmente se usa para almacenar los datos usados por los programas. Esta sencillez implica una gran facilidad de integración. no suelen ofrecer grandes capacidades. Ítalo Mogrovejo Universidad del Azuay 10 . En un principio para atenderlas se usaba pooling. esto es porque las velocidades de los procesadores son muy superiores a las que manejan los periféricos como el ratón. Interrupciones en la IBM PC Generalidades 2. este método resultó ser muy ineficiente puesto que el procesador desperdiciaba tiempo valioso en el sondeo. por ejemplo. Las interrupciones son provocadas mayoritariamente por hardware de Entrada/Salida. una vez terminada la ejecución de la subrutina se retoma la ejecución anterior. en el caso de las interrupciones hablamos del tiempo que le tomará al procesador para atender una interrupción desde que esta fue provocada hasta que se finalice la ejecución del código asociado a esta. A continuación se puede ver la línea de tiempos de procesamiento normal y procesamiento de interrupciones: Figura 4 Línea de tiempos en la que se representa las latencias de interrupciones durante el procesamiento normal (Mogrovejo. 2014) El procesamiento y la atención de las interrupciones se pueden representar de la siguiente forma: Ing. Ítalo Mogrovejo Universidad del Azuay 11 . Las Tratamiento de interrupciones en la PC interrupciones son señales recibidas por el procesador de un sistema microprocesado.Guía de Microcontroladores Interrupciones en la IBM PC Generalidades 2. que consistía en que el procesador se encargue de sondear los periféricos cada cierto tiempo establecido.1. Cuando hablamos de latencia nos referimos al tiempo que tome en realizar una tarea. indicando que se debe dejar por un momento el curso de ejecución actual para ejecutar cierto código especificado en ese momento (subrutinas). Las interrupciones fueron creadas para manejar periféricos de Entrada/Salida de velocidades relativamente bajas. A continuación una representación de los tipos de interrupciones: Figura 6 Representación figurativa de los tipos de interrupciones (Mogrovejo. 2014) Tipos de Interrupciones Enmascarables (INT): Las interrupciones enmascarables pueden ser “enmascaradas”.Guía de Microcontroladores Interrupciones en la IBM PC Generalidades Figura 5 Representación del procesamiento del programa principal y el de una interrupción (Mogrovejo. Ítalo Mogrovejo Universidad del Azuay 12 . es decir estas interrupciones pueden ser atendidas si es que se lo permite. 2014) Ejercicios en clase Diseñar un circuito para atender 3 interrupciones. las no enmascarables tienen la particularidad de que su ejecución se dará en cualquier circunstancia. 2 enmascarables (Tx y Px) y 1 no enmascarable (pulsante). No Enmascarables (NMI): A diferencia de las interrupciones enmascarables. El permiso para la ejecución de estas interrupciones puede ser gestionado por software. Ing. por ejemplo un circuito con un 74LS14.8 mA 35K Figura 9 Resolución del Ejercicio 2 Ing. Ítalo Mogrovejo Universidad del Azuay 13 . Se deben usar mecanismos para evitarlos. se pueden producir rebotes mecánicos. Figura 8 Comparación de una salida ideal y de una con rebotes Diseñar un circuito que permita con un switch o pulsante en estado ON la iluminación máxima de un LED. en estado OFF permitir iluminación variable. D2 BAT1 LED-RED 5V R2 233 RV1 +88.Guía de Microcontroladores Interrupciones en la IBM PC Generalidades Figura 7 Circuito para manejar 3 interrupciones En circuitos como el presentado anteriormente. 5 v =233. Partimos de: I= V R La resistencia para obtener menor luminosidad en el LED será: I min= Vcc−Vl R R= Vcc−Vl I min R= 5 v −1.0001 A La resistencia para obtener mayor luminosidad en el LED será: I max= Vcc−Vl R R= Vcc−Vl I max R= 5 v −1.33 …Ω ≈ 220 Ω( valor comercial ) 0.Guía de Microcontroladores Interrupciones en la IBM PC Generalidades Para el cálculo de las resistencias usadas se tienen como datos iniciales el voltaje de la fuente (Vcc = 5v) el voltaje con el que trabaja un LED (Vl = 1.015 A Ing.5v) y su corriente mínima y máxima (0.5 v =35000Ω=35 KΩ≈ 50 KΩ( valor comercial) 0. Ítalo Mogrovejo Universidad del Azuay 14 .1mA y 10mA). A continuación un ejemplo para comprender una interrupción de hardware. 2014) Teniendo en cuenta el gráfico en la Figura 6. Un pulsante es asignado a cada LED para poder visualizar su iluminación.8 LED-GREEN mA R2 233 RV1 R1 35k 233 Figura 10 Resolución del Ejercicio 3 2. Se toman los valores de resistencias para generar corriente máxima y mínima del ejercicio anterior. Ing. la iluminación de los LEDs debe ser variable y complementaria entre sí mismos. Interrupciones por hardware en la Pc Este tipo de interrupciones son producidas por los dispositivos hardware del sistema. ejecutando su programa principal (main). asumiendo que el procesador se encuentra.Guía de Microcontroladores Interrupciones en la IBM PC Generalidades Diseñar un circuito con 2 pulsantes y 2 leds. ejemplificamos una interrupción hardware. de igual manera las interrupciones producirán un abandono momentáneo del procesamiento normal del procesador para atender la interrupción. en un principio. Ítalo Mogrovejo Universidad del Azuay 15 . Figura 11 Ejemplificación de una Interrupción de hardware (Mogrovejo.8 LED-RED BAT1 mA D1 5V +88. D2 +88.2. En el vector de interrupciones se ubica también el Vector de Reset. para averiguar la dirección asociada a dicha interrupción. El microprocesador atenderá a la interrupción y acudirá al Vector de Interrupciones. donde se encuentran las direcciones de atención para las interrupciones. Seguramente encontraremos en ST1 una interrupción en lenguaje ensamblador como go to AI1 que llevaría a donde se encuentra el Código de las Interrupciones. impresora. El procesador volverá a su procesamiento normal. Controladores de interrupción 8259A Combina múltiples entradas de interrupción en una simple salida de interrupción hacia el microprocesador. Por ejemplo ST1. Ítalo Mogrovejo Universidad del Azuay 16 . teclado. El IBM AT añadió un segundo 8259A. El 8259A fue incluido en el PC original en 1981 y mantenido por el IBM XT cuando se introdujo en 1983. esto incluye el peligro de pérdida de información para esto hará uso de la pila o Stack. timer) realiza un pedido de interrupción por el canal NMI (Interrupción no enmascarable) o por INTR (Interrupción enmascarable) al microprocesador. Por último en ST1 se encontrará una instrucción IRET o IRETD con la que se finalizará la interrupción. sino que las mismas funcionalidades eran realizadas por una parte del puente sur (SouthBridge) del Chipset de la Placa Madre. Conocida la dirección (ST1). Para atender interrupciones el procesador deberá abandonar momentáneamente su procesamiento anterior. registros importantes (acumulador. que es un puntero predeterminado.3.Guía de Microcontroladores Interrupciones en la IBM PC Generalidades Un periférico hardware (ratón. esta indicará el código asociado a la interrupción. Ing. Después de un tiempo ya no fue incluido como un chip separado. Los vectores de interrupción son almacenados generalmente en los primeros 1024 bytes de la memoria de programa. etc) y ciertas variables de interés. donde el procesador debe comenzar tan pronto pueda ejecutar instrucciones. 2. de trabajo. El Stack es un espacio de memoria que está reservado para resguardar el PC (Contador de Programa). Guía de Microcontroladores Interrupciones en la IBM PC Generalidades Agrega 8 interrupciones con vector y propiedades codificadas al microprocesador. Estado. Se puede ampliar sin más circuitos adicionales para aceptar hasta 64 solicitudes de interrupción utilizando 1 8259A Maestro y 8 esclavos conectados en cascada. En 0 permite que el CPU escriba palabras de control sobre el micro. Fue diseñado para minimizar la sobrecarga y el software requerido en el manejo de la prioridad de interrupciones multinivel.D0 Tipo Entrada Entrada Entrada Nombre SUPPLY GROUND CHIP SELECT Entrada WRITE Entrada READ Entrada/Salid a BIDEIRECTIONAL DATA BUS Ing. Información del Vector de Interrupciones es transferida por medio de este bus. Control. En 0 permite al micro enviar el estado de los diferentes registros o el nivel de interrupción a través bus de datos. Figura 12 Diagrama de Pines Símbolo VCC GND D7 . Ítalo Mogrovejo Universidad del Azuay 17 Función +5V Tierra En 0 permite que se habilite la comunicación en Y entre el CPU y el 8259A. . Actúa junto con el Y . La CPU genera pulsos de reconocimiento que harán que el 8259A libere información del vector de interrupción sobre el bus de datos. Salida conectada con la terminal INTR del microprocesador. Es usado para descifrar varios comandos que el CPU escribe y estados que el CPU desea leer. Es un PIN de doble funcionalidad: En modo EN puede ser usado como salida para control de Buffer. Ítalo Mogrovejo Universidad del Azuay 18 . En el otro modo es usado como entrada para designar al micro como Maestro (SP=1) o como Esclavo (SP=0).Guía de Microcontroladores Interrupciones en la IBM PC Generalidades CAS0 CAS2 Entrada/Salid a CASCADE LINES / Entrada/Salid a SLAVE PROGRAM/ ENABLE BUFFER INT Salida INTERRUPT IR0 – IR7 Entrada INTERRUPT REQUEST Entrada INTERRUPT ACKNOWLEDGE Entrada AO ADDRESS LINE Ao – Forman un bus privado para controlar una estructura múltiple 8259A. Estos pines son salidas para un Maestro y entradas para un Esclavo. Esta salida se pone en 1 siempre que una solicitud de interrupción válida sea confirmada. Tabla 3 Descripción de pines del 8259A MODO CASCADA Ing. Entradas de Solicitud de Interrupción: Se emplean para solicitar una interrupción que puede ser ejecutada por una transición de 0 a 1 en la entrada o simplemente por un uno en la entrada. ya que esta suponía cambios demasiado drásticos en la arquitectura del PC. De la cuales la principal. Barry B. Control y Datos) en cascada. como solución a los inconvenientes que se presentaban a la hora de hacer modificaciones a la CPU. (Microprocesadores Intel. En la configuración en cascada. Ítalo Mogrovejo Universidad del Azuay 19 . PnP se basa en distintas premisas. Brey) El 8259A puede fácilmente ser conectado en un sistema de un Maestro con 8 Esclavos para manejar hasta 64 niveles de prioridad.Guía de Microcontroladores Interrupciones en la IBM PC Generalidades Figura 13 Modela Cascada 8259A. puesto que se debía desmontar los jumpers especiales para cada dispositivo y configurar manualmente el componente lógico. Evolución en el manejo de interrupciones PnP. 2. Plug and Play (Enchufar y usar): Surge en 1993.4. las salidas de interrupción de los esclavos están conectadas a las entradas de solicitud de interrupción del Maestro. es que todos los dispositivos fueran configurados por software mediante un programa especial de “SetUp”. El Maestro controla a los esclavos a través de las 3 líneas de buses (Dirección. Además tanto hardware como software que son controladores de los dispositivos Ing. programas cargadores. deberían ser reconfigurables dinámicamente para poder adaptarse a cambios de configuración. así como información de control y estado. Registros de Segmentación. algunas de las cuales tiene que ver con el usuario y otras con el sistema operativo. Ing. pero aun así existían muchos inconvenientes. 2012) Compartir IRQ’s (Interrupt ReQuest / Solicitud de interrupción): La tecnología PnP simplificó mucho algunas tareas. (Alvarez. el formato depende de la tabla de descriptores. el nivel de protección (de 0 a 3). El usuario nunca sabe en qué posición real de memoria está ejecutando o dónde se ubican los datos y siempre se mantiene dentro de ciertas fronteras. escritura o ejecución y el tipo de segmento. Por lo que al desarrollar la interfaz PCI. estos registros no apuntan directamente a memoria como lo hacían en el 8086. apuntan a tablas especiales llamadas tablas de descriptores. Intel incluyó la posibilidad de que estos dispositivos pudieran compartir la misma IRQ. principalmente líneas de interrupción. Funcionamiento: Los descriptores contienen atributos sobre una región de memoria (es decir. En su lugar.Guía de Microcontroladores Interrupciones en la IBM PC Generalidades cargados por el sistema. la longitud de 16 bits. Estos atributos incluyen la dirección base de 24 bits. permisos de lectura. o el sistema operativo. Los descriptores son creados por compiladores. pero nunca por los programas de aplicación. (Alvarez. Si bien el tamaño de esta estructura es siempre de ocho bytes. ya que no resolvía el problema de fondo. un segmento). Como protección adicional nunca se permite que el usuario escriba en el segmento de código. que era la escasez de ciertos recursos. 2012) DESCRIPTORES Definición: Estructura de ocho bytes que le indica al procesador el tamaño y ubicación de un segmento. PL (Privilege Level): Nivel 0 es el más privilegiado y el 3 el menos privilegiado. Ítalo Mogrovejo Universidad del Azuay 20 . lo que en modo real si es permitido. vectores de interrupción e interrupciones internas del microprocesador. TI: Bit indicado de tabla. Solo pueden contener descriptores de código. pila. Las entradas de esta tabla se referencian mediante instrucciones INT. datos. TABLA DE DESCRIPTORES DE INTERRUPCION (IDT) Contiene los descriptores que apunta a la ubicación de hasta 256 rutinas de servicio de interrupción. indica la tabla de descriptores a utilizar. Ítalo Mogrovejo Universidad del Azuay 21 . Contiene los segmentos de código y datos usados por el sistema operativo. TABLA DE DESCRIPTORES LOCALES (LDT) Contienen descriptores asociados con una terea particular. JERARQUÍA DE PROTECCION O DE PRIVILEGIO PL = 0: Kernel. PL = 3: Aplicaciones.Guía de Microcontroladores Interrupciones en la IBM PC Generalidades DPL (Descriptor Privilege Level): Este es el nivel menos privilegiado para el cual una tarea puede acceder a ese descriptor. SELECTOR: Dos bytes que apunta a un descriptor: Índice: Selecciona uno de los 8192 descriptores. Cada interrupción utilizada por el sistema debe tener una entrada propia en esta tabla. PL = 2: Extensiones del sistema operativo. Ing. El nivel de privilegio del descriptor se determina mediante los bits 5 y 6 en el byte de derechos de acceso del descriptor. PL = 1: Servicios del sistema (parte del SO). TIPOS DE TABLAS: TABLA DE DESCRIPTORES GLOBALES (GDT) Contiene descriptores comunes que están disponibles para todas las tareas del sistema. DERECHOS DE ACCESO: Permite sólo lectura o sólo escritura. TABLA DE DESCRIPTORES Son arrays de longitud variable que pueden mantener hasta 8192 descriptores. si vale cero se utiliza la tabla de descriptores globales y si vale 1 utiliza la de locales. compuertas de tarea y compuertas de llamada. P. Ítalo Mogrovejo Modo Protegido: uP Descriptores Ing.Guía de Microcontroladores Interrupciones en la IBM PC Generalidades FUNCIONAMIENTO: MODO REAL Y MODO PROTEGIDO Modo Real: uP MP (Memoria del Programa) 100H Figura 14 Diagrama de modo real. Ítalo Mogrovejo Universidad del Azuay 100H 22 M. Clase micro controladores. (Memoria del Programa) . Ing. Cada bit corresponde a una línea IRQ e indica si está permitida una interrupción de ese nivel en ese momento. Ing. el bit correspondiente del IRR es puesto a 1. Registros y transferencias para el manejo de interrupciones Existen 3 registros de 1 byte que en conjunto gobiernan las decisiones del dispositivo: Registro de Solicitud de Interrupción: IRR (Interrupt Request Register). overflow. controla el estado de una línea IRQ. cada bit indica si ya existe una interrupción activada en la línea correspondiente.Guía de Microcontroladores Interrupciones en la IBM PC Generalidades 800H 100H (No se toca) Figura 15 Diagrama Modo protegido. Tipo de Descripción Interrupción Tipo 0 Tipo 2 Tipo 3 Error de división. Ítalo Mogrovejo 2. INTO. 4 5 7 8 Ing.5. división por cero. No hay coprocesador. Doble falta. Interrupciones más comunes. Registro de Máscara de Interrupciones: IMR (Interrupt Mask Register). Interrupción no enmascarable. Modo paso a paso o de trampa. puntos de ruptura. Clase de Microcontroladores. Tipo Tipo Tipo Tipo obligatoriamente Depuración de programas. se producen 2 o más interrupciones. Registro de Interrupciones Activas: ISR (In Service Register). Ítalo Mogrovejo Universidad del Azuay 23 se genera interrupción . Cuando se detecta una petición en una de estas líneas. Si OF es = 1. Si OF = 0 entonces la instrucción INTO efectúa una NOP (No operación. INT3 e IRET Entre las cinco instrucciones de interrupción disponibles para el microprocesador. Ítalo Mogrovejo Universidad del Azuay 24 .Guía de Microcontroladores Interrupciones en la IBM PC Generalidades Tipo Tipo Tipo Tipo 9 12 13 16 Sobreflujo del coprocesador. Si AX es mayor que el contenido de DATA+2 y de DATA+3 ocurre una interrupción de tipo 5. Error de coprocesador. del programa. violación de modo protegido. Para determinar la dirección del vector se multiplica en número del vector (n) por 4. DATA se compara AX con el contenido de DATA y de DATA+1. INT. DATA+3. usado para sincronización) y la siguiente instrucción en secuencia. también con DATA+2. Protección general. BOUNT e INTO son condiciones e IRET es una instrucción especial para el retorno de interrupción. no ocurre interrupción. Con ello se tiene la dirección inicial del vector de interrupción de 4 bytes de longitud. Si AX es menor que el contenido de DATA y de DATA+1 ocurre una interrupción de tipo 5. INT Llama al procedimiento de servicio de interrupción que comienza en la dirección representada en el vector numero n. INTO Compara la bandera de sobreflujo (OF). compara un registro con dos palabras de datos de la memoria. la instrucción INTO llama al procedimiento cuya dirección esta almacenada en el vector interrupción tipo 4. BOUNT Tiene dos operandos. Por ejemplo si se ejecuta la instrucción BOUND AX. por ejemplo una INT 80H o una INT 128 llama al procedimiento de servicio de interrupciones cuya dirección esta almacenada en el vector 80H. INTO. son muy semejantes. INT e INT3. Ing. Desborde del segmento de pila. Tabla 4 Interrupciones más Comunes (Mogrovejo. Si AX está dentro de los límites de estas dos palabras de la memoria. 2014) Instrucciones para interrupción: BOUND. 2 para CS (control de software). INT3 Esta es de 1 byte la cual se utiliza como interrupción de punto de ruptura. Si esta presenta una o más de estas condiciones de interrupción ocurre lo siguiente: Salva el contenido del registro de banderas en la pila. Alguna instrucción en ejecución Trampa NMI Sobre flujo de segmento del coprocesador INTR La instrucción INT en el orden citado. y se utiliza para retornar de las interrupciones de hardware y software. el cual en 1er byte contiene el código y 2do el número de interrupción.Guía de Microcontroladores Interrupciones en la IBM PC Generalidades Cada instrucción INT se almacena en 2 bytes de memoria. Ing. Se salva el contenido del registro (CS) de segmento de código hacia la pila. Ítalo Mogrovejo Universidad del Azuay 25 . Los puntos de ruptura se utilizan a menudo para depurar programas. y 2 para las banderas. IRET Es una instrucción especial para retorno. Se desactiva las banderas de interrupción (IF) y de trampa (TF). Funcionamiento de una interrupción Cuando el microprocesador concluye de ejecutar la instrucción en curso. entonces para determinar si una interrupción esta activa comprueba. porque recupera la dirección de retorno de la pila. 2 para ip (Puntero de Interrupción). Esto deshabilita la terminal INTR y también la característica de trampa. IRET extrae 6 bytes de la pila. Se salva el contenido del apuntador de instrucción (IP) en la pila. porque es fácil intercalar una instrucción de un byte en un programa. es como una instrucción RET normal lejana. desactiva IF y TF y brinca al procedimiento direccionado por el vector de la interrupción Bits de Bandera de Interrupción La Interrupción (IF) y la bandera de trampa TF se borran una vez que se salvan en la pila el contenido del registro de bandera durante una interrupción. Las instrucciones STI (permite la interrupciones del procesador) y CLI (inhibe las interrupciones del procesador) activan y desactivan respectivamente interrupciones. cuando se desactiva el bit IF impide que la terminal INTR produzca una interrupción. direccionado por el vector.Guía de Microcontroladores Interrupciones en la IBM PC Generalidades Se recupera el contenido del vector de la interrupción y se coloca en IP y CS. Cuando se activa el bit IF permite que la terminal INTR ocasione una interrupción. de modo que la siguiente instrucción se ejecute en el procedimiento de servicio de la interrupción. de CS e IP. Ítalo Mogrovejo Universidad del Azuay 26 . Ing. el microprocesador salva en la pila el contenido del registro de banderas. Siempre que acepta una interrupción. Guía de Microcontroladores Puerto Paralelo 3. habrá bits que recorrerán diferentes caminos. IBM SPP 1981 150 kb/s 1987 PS2 150 kb/s Bidireccional IBM EPP 1994 2 MB/s Bidireccional . Tipos de Puertos Definición Un puerto paralelo es una interfaz que posibilita el intercambio de información digital. Puerto Paralelo 3. Dichos puertos pueden ser físicos (con una entrada en el hardware de la computadora para permitir la conexión de un periférico) o virtuales (puertos lógicos gestionados a través del software). En el marco de dicho intercambio de información. en ambos sentidos.1. Guía de Microcontroladores Puerto Paralelo Intel ESP 1994 2 MB/s Bidireccional Soporta DMA Todos fueron diseñados a 8 bits Puesto que se utiliza el código ascii Standard 7 bits Extendidos 8 bits Comunicación en paralelo Máximo dos metros Ejemplo: VA = Vo –iR VA = 5 – 2.3 o 5 V.5 VA 2.5 DATOS Tensión de nivel alto: 3. . 6 mA.11. 15 Estado  Puerto de entrada / lectura 1. Registros . Intensidad de salida máxima: 2. Intensidad de entrada máxima: 24 mA Figura 16 Cable puerto Paralelo 3.17 Control  Puertos direccionales/escribir-leer 18 – 25 Tierra.14.12.16.2.13. Pines y Registros Figura 17 Composición del Puerto Paralelo 2-9 Datos  Puerto de salida / escritura 10.Guía de Microcontroladores Puerto Paralelo Tensión de nivel bajo: 0 V. Guía de Microcontroladores Puerto Paralelo 0 x 378  Datos / Salida 0 x 379  Estado / Entrada. 0x 37ª  Control / E/S. Ox378 D7 9 D6 8 N D5 7 N D4 6 N D3 5 N D2 4 N D1 3 N D0 2 N N BIT PIN NIVEL N BIT PIN NIVEL I BIT PIN NIVEL Tabla 5 Registro 0x378 del LPT 0X379 S7 11 S6 10 I S5 12 N S4 13 N S3 15 N S2 S1 N N S0 N Tabla 6 Registro 0x379 del LPT 0X37A C7 - C6 N C5 N C4 N C3 17 N C2 16 I C1 14 N C0 1 I Tabla 7 Registro 0x379A del LPT Leyenda N = Normal I = Invertido Pin E/S Polaridad activa Descripción 1 Salida 0 Strobe 2~9 Salida - Líneas de datos 10 Entrada 0 Línea acknowledge 11 Entrada 0 Línea busy 12 Entrada 1 Línea Falta de papel ( 13 Entrada 1 Línea Select 14 Salida 0 Línea Autofeed 15 Entrada 0 Línea Error 16 Salida 0 Línea Init 17 Salida 0 Línea Select input 18 ~ 25 - - Tierra eléctrica . Guía de Microcontroladores Puerto Paralelo Tabla 8 Pines del Puerto Paralelo . Puerto Serial 4. etc. otro para la recepción de información y un tercero para las referencias de voltajes o tierra.Guía de Microcontroladores Puerto Serial 4. peticiones de información. Sus restantes 5 pines son utilizados para control de datos. se lo denomino DB-9 por poseer 9 pines Figura 18 Conector DB9 . Conectores y pines El puerto serial se encuentra conformado por 9 pines de los cuales solo 3 de ellos son empleados para una comunicación. El conector DB-9 es el utilizado para este tipo de comunicación serial.1. uno para él envió de información. utilizan una sola fuente de alimentación de ¬5v. que posteriormente fue sustituido por el puerto PS2. Pin Pin 1 Función Deteccíon de señal recibida en la línea (Data Carrier Detect) Pin 2 Received Data Pin 3 Transmit Data Pin 4 Data Terminal Ready Pin 5 Signal Ground Figura 19 Pines del conector DB9 Pin 6 Data Set Ready Pin 7 Request To Send Pin 8 Clear to Send Pin 9 Ring Indicator Voltajes Utilizados En RS232 se emplea niveles lógicos incompatibles con TTL. Se suele utilizar con mayor frecuencia MAX232 o MAX233 que son los manejadores de línea más utilizados sus características son sus dos canales. tener en cuenta que los dispositivos a conectar tendrán que ser conector hembra en equipos de computación por una época el puerto serial fue utilizado para la conexión del mouse. y en el MAX233 no se requiere de capacitores externos.Guía de Microcontroladores Puerto Serial Pines a Detalle Sus nueve pines y sus funciones pertinentes en el caso del conectado macho se detalla el conector macho puesto que es el implementado en los equipos de computación para la comunicación serial. . esto deriva en la necesidad de la implementación de un convertidor de niveles lógicos. Protocolo de comunicación Para el envío de información es necesario que tanto el emisor como el receptor estén configurados para trabajar a la misma tasa de transferencia. del orden de 110 a 1200 baudios. ya que la comunicación es asíncrona y la señal de reloj no es enviada con la información. En las comunicaciones asíncronas el estado de reposo (cuando no se transmite nada) se identifica con un "1" (marca). Para lograr la sincronización el puerto utiliza un protocolo el cual envía un bit de partida. Los primeros dispositivos serie operaban a velocidades muy bajas.2. Los parámetros que caracterizan estas comunicaciones son: Velocidad. En la literatura sobre el tema es frecuente expresar estos datos en forma resumida. el cual no es configurable. La configuración más utilizada es la 8N1 (8 bits de información. la paridad y el número de bits. en las que se emplean módems era frecuente utilizar como medida de velocidad el Baudio ("Baud rate"). Cuando se recibe un bit de inicio. que si (como es frecuente) se trata de líneas telefónicas. bits de datos y bits de parada. depende a su vez de la distancia. Las comunicaciones telefónicas serie actuales están muy cerca del máximo teórico que pueden soportar los pares de cobre utilizados en la telefonía estándar.Baudio se define como el número de veces que cambia la portadora en un segundo. que es un "0" (espacio). el receptor toma nota que va a comenzar a recibir un dato. . Lo que sí es configurable es el bit de parada. sin paridad y 1 bit de parada). En las transmisiones serie a través de líneas telefónicas. Por ejemplo: 1200 8 N 1 para indicar una transmisión de 1200 baudios con 8 bits de datos sin paridad y un bit de Stop. Velocidad de transmisión ("Connection speed") es la cantidad de datos transmitidos en unidad de tiempo. Se expresa en bits por segundo (bps). La velocidad que puede emplearse depende en gran medida de la calidad del medio de transmisión (calidad de la línea).Guía de Microcontroladores Puerto Serial 4. paridad. Guía de Microcontroladores Puerto Serial Tabla 9 Conexión para transmisión entre 2 equipos . USB 0. en este es posible conectar hasta 127 dispositivos y protocolos que permiten detección automática de los dispositivos conectados. Una de las principales características de estos es la conexión muy sencilla.Guía de Microcontroladores Puerto USB 5. además todas sus versiones son PLUG and PLAY(Es decir se conecta el dispositivo y el Sistema Operativo lo detecta automáticamente al instante). cuando se publicó un borrador de un dispositivo de comunicación que no necesite el reinicio del sistema para su correcta detección ya que se buscaba la unificación de los conectores de periféricos creando unos más sencillo y de mayores presentaciones. Historia La creación del USB se remonta al el año 1994. la versión antes dicha no tuvo mucha aceptación hasta que vino la . En 1996. USB 0.9: Lanzado en abril de 1995.1. (Wikipedia) El estándar USB evolucionó a través de varias versiones antes de su lanzamiento oficial en 1996: USB 0. Las especificaciones del USB proporciona una serie de características que pueden ser divididas en categorías estas características van desde la serie 1. cuando un grupo de siete empresas entre ellas Intel. En él se definen todos los conectores y los cables. este dispositivo se llamó USB.2. en esta primera versión del puerto USB se la llamo 1. Especificaciones generales USB significa Universal Serial Bus") o su traducción al español es línea serial universal de transporte de datos.0.99: Lanzado en agosto de 1995.0. ya que utiliza un único conector para conectar a través de un bus serie todos los dispositivos. por ello es considerado puerto. 5. Es básicamente un conector rectangular de 4 terminales que permite la transmisión de datos entre una gran gama de dispositivos externos (periféricos) con la computadora.8: Lanzado en diciembre de 1994. Puerto USB 5.7: Lanzado en noviembre de 1994.0 hasta la 3. USB 0. IBM y Microsoft desarrollo un formato para mejorar la capacidad de interconexión de dispositivos periféricos y tecnológicos de distinto ámbito. Microsoft Corp. Aplicaciones: Ratón y Teclado.1 que corresponde a Windows 95..0 Este Puerto fue lanzado en Enero de 1996 por (Compaq.. 5. Digital Equipment Corp.1 Características relevantes velocidad baja: Velocidad de 12Mbps. Bajo Coste DES (Conexión en Caliente). NEC y Northern Telecom).3.8 Gbps lanzado en el 2012. Evolución de los estándares USB USB 1. al contrario en relación con Pcs de Microsoft recién lo incorporaban en el sistema operativo OSR2..0. Figura 20 UBS1.Guía de Microcontroladores Puerto USB aparición del USB 1.0 On the Go con similar característica que el 2. Su evolución fue USB 1. IBM. Intel Corp.0 con velocidad de 4. Múltiples Periféricos.0 de alta velocidad hasta 480Mbps lanzado en el 2009. en servidores se incursiono en desde el Windows server 2000. Esta es la primera versión oficial que salió al mercado.1 con velocidad de 12Mbps USB 2.1. periféricos de entretenimiento. de esta manera nación el USB (Universal Serial Bus) con algunas velocidades en sus diferentes versiones: USB 1. USB 3. USB 2. El primer ordenador que incluyo un puerto USB estándar (USB1. esta iMAc usaba el puerto para la conexión de su ratón y teclado.0) fue una iMac de Apple y fue presentada en 1998. Características relevantes velocidad baja: .0 con velocidad de 12Mbpg. 1 Esta versión no es posible enviar y recibir datos a la vez.1. Esta versión no es posible enviar y recibir datos a la vez. las características de esta son similares a la de su antecesor. Aplicaciones: Audio. Video Comprimido. Philips y Lucent).0 Esta versión salió al mercado a mediados del 2000 esta fue creada por 3 marcas que se unieron en el desarrollo (Hewlett Packard. periféricos de entretenimiento. USB 2. Bajo Coste DES (Conexión en Caliente). . USB 1. Aplicaciones: Ratón y Teclado. Audio. Velocidad de 500Kbps a 10Mbps. Esta versión salió en Septiembre de 1998 era una versión dedicada más para desarrolladores. Figura 1 USB1.0 Una de las principales novedades fue la velocidad que aumento en gran medida y la incursión de un dispositivo a velocidad media como se describirá en lo siguiente: Características relevantes velocidad baja: Velocidad de 10 a 100 Kbps.Guía de Microcontroladores Puerto USB Conexiones de: Teléfonos Móviles. Figura 21 USB 2. Garantiza el ancho de banda. Guía de Microcontroladores Puerto USB Múltiples Periféricos. Audio. Video Comprimido. Aplicaciones: Audio. USB 2. . Video Comprimido. Velocidad de 25 a 500Mbps.0 On The Go Características relevantes añadidas: Los dispositivos que eran periféricos ahora pueden ser host. esto conlleva a que los dispositivos se conecten entre si directamente (impresora con memoria USB). Características relevantes velocidad alta: Conexiones de: Audio. Unidades de almacenamiento (Discos duros y grabadoras). Características relevantes velocidad media: Conexiones de: Teléfonos Móviles.0) es decir que le permite a el puerto actuar como servidor sin la necesidad de una pc. Figura 22 USB 2. Se crearon los mini conectores. Esta versión no es posible enviar y recibir datos a la vez. Garantiza el ancho de banda. Gran ancho de banda.0 OTG USB OTG “USB on the go” es una variación de la especificación anterior (USB 2. Velocidad de 500Kbps a 10Mbps. Esto le permite comunicarse con cualquier dispositivo sin la necesidad de una pc. Guía de Microcontroladores Puerto USB El periférico puede ser host o periférico según la conveniencia. Esta versión no es posible enviar y recibir datos a la vez. Estas características nos permiten por ejemplo, una cámara y una impresora que son periféricos se pueden conectar la una a la otra sin necesidad de una pc de por medio, es decir la impresora se vuelve el host que alberga a la cámara para imprimir las fotos que se encuentran en ella, y así tenemos muchos ejemplos más como los celulares los reproductores mp3 con los equipos de audio, radios de automóviles etc. Figura 23 USB 2.0 On The Go (Diferentes Tipos de Conexiones) USB 3.0 El USB 3.0 permite grandes mejoras en su rendimiento, al contrario de su antecesor el USB anteriores contábamos con cuatro contactos, un par para recibir datos uno de corriente y otra de tierra, en el USB 3.0 se añaden cuatro contactos más. Es decir dos de ellos se utilizan para enviar y los otros dos para la recepción de archivos, con esto nos permite que el trafico sea bidireccional al mismo tiempo cosa que los anteriores no los permitía. (InformaticaModerna, 2014) Características más relevantes: Velocidad 10 veces más rápida (600Mbps). Compactible con versiones anteriores. Velocidad máxima de hasta 4,8Gbps. Guía de Microcontroladores Puerto USB Reduce el consumo energético. Color Azul para diferenciarlo. Esta tecnología permite o es capaz de enviar y recibir datos simultáneamente. Figura 24 USB 3.0 Super Speed 5.3.1. USB 2.0 Era necesaria una mejora por parte de los fabricantes para que USB fuera más universal de lo que ya era, y sobre todo para ganar en velocidad y variedad de dispositivos soportados. Así, en el año 2000, nace la tecnología USB 2.0 creada por Hewlett Packard, Philips y Lucent. La evolución de esta tecnología es totalmente compatible con versiones anteriores. Características: Facilidad de Uso para los usuarios: Tiene un modelo de cableado y conectores muy simples. Los usuarios no tienen que preocuparse por los detalles eléctricos y la detección y configuración de los periféricos la realiza el propio puerto automáticamente. Carga: Tiene la capacidad de cargar y transmitir energía desde el cable USB hasta un dispositivo. Esta fuente de energía tiene un máximo de 5 voltios, por lo que los puertos 2.0 no sirven para dispositivos que requieran un voltaje más alto. Sin embargo, permiten que los dispositivos tengan su propia fuente de energía. El cable para dispositivos que reciben energía mediante el USB está diseñado con un cable adicional interno, que provee energía al voltaje. Robustez: Permite insertar y expulsar los dispositivos de forma dinámica (percibida por el usuario en tiempo real). Velocidad: El cambio más significativo entre el USB 1.1 y el 2.0 está relacionado con la velocidad de transferencia de datos, que permitió el desarrollo de aparatos que necesitan transferencias más veloces, como grabadoras de DVD y discos externos. Guía de Microcontroladores Puerto USB Velocidad baja:  Velocidad de 10 a 100 Kbps.  Aplicaciones: Ratón y Teclado, periféricos de entretenimiento.  Bajo Coste  DES (Conexión en Caliente).  Múltiples Periféricos. Velocidad media:  Conexiones de: Teléfonos Móviles, Audio, Video Comprimido.  Velocidad de 500Kbps a 10Mbps.  Aplicaciones: Audio.  Garantiza el ancho de banda. Velocidad alta:  Conexiones de: Audio, Video Comprimido, Unidades de almacenamiento (Discos duros y grabadoras).  Velocidad de 25 a 500Mbps.  Gran ancho de banda. Bajo Costo de Implementación: Adecuado para desarrollo de sistemas con periféricos, cables y conectores de bajo costo, para poder optimizar e integrar los periféricos al “host”. PLUG & PLAY: El dispositivo es detectado automáticamente al conectarlo al equipo y el sistema operativo instala el driver adecuado. No es necesario apagar, ni siquiera reiniciar, el equipo para conectar o desconectar los dispositivos, cargándose y descargándose automáticamente de memoria el driver correspondiente. (Victoria, y otros, 2001) HOT PLUGGING (Conectar en Caliente): No se necesita apagar ni reiniciar el equipo para instalar o desinstalar un dispositivo USB. Esto permite conservar recursos de memoria, ya que cada dispositivo conectado requiere un driver residente, que de este modo solo se carga cuando se necesita y se descarga al dejar de necesitarlo. etc. ratón. Es la forma en la que los dispositivos USB están conectados con el host (comunicación). Utiliza la topología de bus “Estrella Estratificada Piramidalmente”. . teclado. Dispositivos USB. en donde un hub está en el centro de cada estrella y cada segmento de cable es una conexión punto a punto: Host / hub (o función) o Hub / hub (o función). en el segundo caso es para que así el sistema host pueda disponer de más puntos de acoplamiento para distintos periféricos.  Funciones: Periféricos que proporcionan prestaciones al sistema como por ejemplo: joystick. en el cual puede estar directamente conectado un dispositivo USB o un hub raíz. Host USB. parlantes. En todo sistema USB siempre existe un solo Host. Pueden ser de 2 tipos:  Hubs: Proporciona puntos de acoplamiento adicionales.Guía de Microcontroladores Puerto USB Arquitectura (dividido en 3 partes)  Interconexión USB. Módems .3. -Cámaras digitales -Ratones. Generalmente FireWire es más rápido y flexible que el USB pero es mucho más costoso de implementar. Sí No Conexión de periféricos interna.0) Velocidad de Transferencia datos.Escáneres. -Unidades ROM. -HDTV (TV de alta -Monitores. definición). de -Cámaras digitales de baja resolución. -Teclados. diseñada especialmente para dispositivos multimedia.2. .-Unidades CD-ROM de baja velocidad. Tipos de dispositivos conectables. Sí No -Videocámaras DV. -Impresoras. 62 128 Cambio en Caliente (Cambiar dispositivos sin Sí necesidad de reiniciar). 200Mbps 12Mbps Dispositivos Compactibles (Máximo). DVD. -Joysticks. Tabla 10 Características Fireware vs USB .Guía de Microcontroladores Puerto USB 5. -Discos duros. de alta resolución. Sí Anchos de Banda. Características Firewire USB (2.X vs Firewire Firewire es el nombre que Apple asignó a la implementación de la interfaz IEEE-1394. -Cajas conexiones. Esta es una interfaz estándar de bus serial para comunicaciones de alta velocidad y trasferencia de datos isócrona en tiempo real. 400 Mbps 800 Ninguno Mbps 1 Gbps Implementación en Mac. USB 2. 0 definen dos tipos de conectores para conectar dispositivos al servidor: A y B. Tipo B (Derecha) .4. Sin embargo.1 y 2. para evitar el bloqueo de un puerto adyacente por el dispositivo en cuestión.0 en la parte posterior.Guía de Microcontroladores Puerto USB 5. a diferencia de otros estándares también define tamaños para el área alrededor del conector de un dispositivo. Cables y Conectores El estándar USB especifica tolerancias mecánicas relativamente amplias para sus conectores. Interface USB en la IBM Pc La IBM PC de la Serie 300 fue la primera máquina de IBM con USB.3.0. Las especificaciones USB 1. intentando maximizar la compatibilidad entre los conectores fabricados por la compañía. una meta a la que se ha conseguido llegar. la capa mecánica ha cambiado en algunos conectores. La PC 330 tenía 2 ranuras USB 1. El estándar USB. Figura 25 Conectores Tipo A (Izquierda).3. 1.3. 5.  Impedancia del cable (ZO) a máxima velocidad: 45 W ± 15%.4.  Intensidad (ICC): 500 mA ó 100 mA (según tipo/estado del dispositivo).  Capacitancia de patilla a masa (CIN): 20 pF máximo. Consumo: Administración de la energía en el bus .5. Tabla 12 Tipos de Especificaciones Eléctricas Alimentación:  Tensión nominal (Vbus): +5V.Guía de Microcontroladores Puerto USB Tabla 11 Descripción Física del Cable Conectores 5. 5. El Control de Consumo es realizado por el ordenado. quedándose la parte USB funcional. En reposo.Guía de Microcontroladores Puerto USB Cada sección puede proporcionar una determinada potencia máxima siendo el computador el encargado de suministrar la energía. teniendo la capacidad de poner en reposo (suspend) o en marcha a un periférico USB. Además el periférico puede estar autoalimentado (self powered). este reduce su consumo (si puede). Esta gestión está orientada especialmente a los equipos portátiles. Tabla 13 USB Especificaciones (Wikipedia) . además de dicha integración. se trata de un computador completo en un sólo circuito integrado. Definición “Un microcontrolador es un circuito integrado o chip que incluye en su interior las tres unidades funcionales de una computadora: CPU.Diferencia entre microprocesadores y microcontroladores Una de las diferencias más relevantes es que los microcontroladores se utilizan para controlar solamente una cosa o realizar una función específica como controlar una puerta automática. su característica principal es su alto nivel de integración. Aunque sus prestaciones son limitadas. El microcontrolador: tiene embebido un sistema microprocesado con limitaciones en velocidad.2. una alarma controla. Memoria y Unidades de E/S. Microcontrolador     Maneja sistemas embebidos Bajo costo Velocidad limitada Arquitectura Control (Proceso) o uP o memoria de programa o memoria de datos o buses o periféricos TCY= Ciclo de Relog = 4TOSC =Tiempo de Oscilacion  Microprocesador    Maneja multiples procesos Costo alto Velocidad alta 6. Microcontroladores 6.Guía de Microcontroladores Microcontroladores 6.” (Rodolfo Reyes Serrano) Dispositivo electrónico que posee un sistema microprocesado embebido 6. Arquitectura de un microcontrolador Arquitectura . es decir.3. mientras que los microprocesadores son más complejos ya que pueden llevar acabo diferentes tareas a la vez como el procesamiento masivo de datos matemáticos. memoria de datos y programa. cosas muy puntuales.1. Guía de Microcontroladores Microcontroladores - - - - - Microprocesador o Cpu o Alu o Decodificador de instrucciones o Reset o Reloj o Pc->controlador de programa o Registros -> W -> registro de trabajo Memoria de programa -> flash de 8 kword x 14 bits o Las instrucciones son de 14 bits con una capacidad de 2^n donde el número de bits de PC o Cap =2^13 =8192 espacios de memoria Memoria de dato o Sfr -> registro de control y configuración o Gpr -> 368 bytes de usuario -> registros de propósito general o Eeprom de datos Buses o De datos o De direcciones o De control Periféricos o Timer 0. 2013) .2 o Mssp o Adc o Puertos I/O o Usart 6. numero de puertos y funciones.5 V y 5. la complejidad interna y de programación.2.4. (Mogrovejo. las instrucciones son 12 o 14 bits y el número de instrucciones que puede manejar es de 33 0 35 instrucciones.5 V consumen menos de 2mA cuando trabajan a 5V y 4MHz.3 o Ccp 1.el voltaje que soportan es de corriente continua entre 2.Microcontroladores de 8 bits Entre los diferentes microcontroladores las principales diferencias están en el número de instrucciones y su longitud. Lo primero que notamos en estos microcontroladores es su tamaño reducido ya que solamente disponen de 8 pines de los cuales se pueden destinar 6 de ellos como E/S de periféricos tienen un oscilador interno R-C . Oscilador interno de 4Mhz. Las Instrucciones se ejecutan en un ciclo de maquina menos los saltos (goto y  call) que se ejecutan en 2 ciclos.) de 10 bits. un USART. Un ciclo de maquina se lleva 4 ciclos de reloj.1. industriales y aplicaciones de consumo. especialmente a las cargas inerciales tales como motores.  cada instrucción se ejecutara en 1uS (microsegundo). PIC 16X (F) XX 16F28    Conjunto reducido de instrucciones (RISC). 16F48 El PIC16F648A cuenta con oscilador de 4 MHz interna. Definición El nombre completo es PICmicro Peripheral Interface Controller (controlador de interfaz periférico) se trata de un diseño RISC que ejecuta una instrucción cada 4 ciclos del oscilador.Guía de Microcontroladores Programación de PIC 7. es decir a una frecuencia de 1Mhz. PWM (permitir el control de la potencia suministrada a los dispositivos eléctricos. 35 instrucciones para utilizar. PIC 7. una captura / comparación / PWM. 7.2. Con la estructura segmentada se realizan simultáneamente la ejecución de la instrucción y la búsqueda de la siguiente. Están basados en una arquitectura tipo Harvard que posee buses y espacios de memoria por separado para el programa y los datos. lo que hace que sean más rápidos que los microcontroladores basados en la arquitectura tradicional de Von Neuman. 256 bytes de memoria de datos EEPROM. El modo de reloj de baja velocidad. Pic 16X84 Las altas prestaciones de los microcontroladores PIC derivan de las características de su arquitectura.   La programación de la baja tensión.3. 7. . 2 comparadores y una referencia de voltaje programable que lo hacen ideal para aplicaciones analógicas / nivel integrado en los aparatos de automoción. On-chip de referencia de tensión.000. 16F59 16F84 Todas las instrucciones se ejecutan en un solo ciclo excepto las de salto que necesitan dos. Frecuencia de trabajo máxima de 10MHZ para PIC16F84 y de 20MHZ para PIC16F84A. Las instrucciones de ancho de 12 bits son altamente simétricas lo que resulta en una compresión de 2:1 en código a través de otros microcontroladores de 8 bits de su clase. alto rendimiento.000 de ciclos de borrado/escritura de la memoria EEPROM. microcontroladores Flash basados en tecnología CMOS. El PIC16F5X ofrece un rendimiento un orden de magnitud superior a sus competidores en la misma categoría de precios. 256 bytes de memoria EEPROM de datos.Guía de Microcontroladores Programación de PIC     BOR programmable. completamente estático. Tabla 14 PIC 16F54. Memoria de datos EEPROM de 64 bytes. aunque el 16F84 solo dispone de 1KB de memoria implementada). El conjunto de instrucciones fáciles de usar y de recordar “easy to” reduce el tiempo de desarrollo significativamente. Pila con 8 niveles de profundidad. . 1. 16F57. de 8 bits. Contador de programa de 13 bit (lo que en teoría permitiría direccionar 4 KB de memoria. 4 MHz oscilador interno. 16F54 El PIC16F54 de Microchip Technology es un micro de bajo costo. 5 a 5.Guía de Microcontroladores Programación de PIC 40 años de retención de la memoria EEPROM.0V a 5. Rango de alimentación:    16LF84A: De 2 a 5. Frecuencia de reloj de hasta 20MHz (ciclo de instrucción de 200ns). PIC 16F87X CPU de arquitectura RISC (Reduced Instruction Set Computer).5 V en configuración de oscilador XT. XT. LP y externo). Conversor Analógico/Digital de 10 bits multicanal. Tipo de oscilador seleccionable (RC. Modo de bajo consumo (Sleep). 16F84A: De 4 a 5. excepto las de salto. Rango de voltaje de operación desde 2. Módulos de captura/comparación/PWM. Todas las instrucciones se ejecutan en un único ciclo de instrucción. Hasta 256 x 8 bytes de Memoria de Datos tipo EEPROM (ver tabla a continuación). Watchdog Timer o Perro Guardián. Hasta 8K x 14 palabras de Memoria de Programa FLASH (ver tabla a continuación). Hasta 15 fuentes de Interrupción posibles.5 v en configuración de oscilador HS. HS. . Comunicaciones por interfaz USART (Universal Synchronous Asynchronous Receiver Transmitter). 13 pines de E/S con control individual de dirección. 7.4. Hasta 368 x 8 bytes de Memoria de Datos tipo RAM (ver tabla a continuación). De 4. 8 niveles de profundidad en la Pila hardware. RC y LP. Set de 35 instrucciones.5V.5 v en configuración de oscilador XT. RC y LP. 3 Temporizadores. 16F877 16F 871 . 16F874. Puerto Serie Síncrono (SSP) con SPI e I²C.Guía de Microcontroladores Programación de PIC Puerto Paralelo Esclavo de 8 bits (PSP). Tabla 15 PIC 16F873. 16F876. Guía de Microcontroladores Programación de PIC Tabla 16 Características 16F871 16F 873 Tabla 17 Características 16F873 16F 876 . Posibilidad de programación in-situ. que llevan doble velocidad de trabajo de 20 Mhz. vía serie. Timer2: Temporizador-Contador de 8 bits con registro de período de la mismalongitud. Tecnología de alta velocidad y bajo consumo en la memoria CMOSEEPROM/FLASH. que puede trabajar conreloj externo en el modo reposo (sleep). Características periféricos: Timer0: Temporizador-Contador de 8 bits. Acceso para lectura o escritura a la memoria de programa.-Hasta 14 fuentes de interrupción. Patillaje compatible con PIC16C73B/74B/76/77.-Código de protección programable. Timer1: Temporizador-Contador de 16 bits con Predivisor.Guía de Microcontroladores Programación de PIC CPU tipo RISCC de altas prestaciones.-Temporización de conexión y temporización de inicio de oscilación.5 ns. Memoria de programa tipo flash de 8 Kpalabras. Bajo consumo: Menor de 2 mA a 5V y 4 Mhz. Todas las instrucciones son de un único ciclo.-Modos de direccionamiento directo. Menor de 1µ A en reposo. mediante tensión simple de 5 voltios. La comparación es de 16 bits.5 voltios. con Predivisor y Postdivisor. 20µ A a 3V y 32 Khz.-Memoria EEPROM de datos de 256 bytes. Repertorio de 35 instrucciones de una palabra. Memoria de datos de 368 bytes. indirecto y relativo. Circuito supervisor (watchdog). Gran margen de alimentación entre 2 y 5. . excepto las de salto. con un ciclo de instrucción de 200ns. Pila por hardware de 8 niveles.-Corriente de salida de 25 mA. con resolución máxima de 200 ns. Dos módulos de Captura y Comparación y uno PWM (modulación por ancho de impulso: La captura es de 16 bits. con Predivisor también de 8 bits. con resolución máxima de 12. Reset de conexión (POR). Programación in-situ vía serie con dos patillas. C.-Convertidor multicanal analógico digital de 10 bits. 16F 877 CARACTERÍSTICAS 16F877 Frecuencia máxima DX-20MHz Memoria de programa flash palabra de 14 bits 8KB Posiciones RAM de datos 368 Posiciones EEPROM de datos 256 Puertos E/S A. Transmisor Receptor Universal Síncrono Asíncrono (USART/SCI) con detecciónde 9 bits y de dirección. con modo Maestro (SPI) e I2C (maestro/servidor).5.D.E Número de pines 40 Interrupciones 14 Timers 3 Módulos CCP 2 Comunicaciones Serie MSSP.B. Circuito de detección de BROWN-OUT (bajada de tensión).Guía de Microcontroladores Programación de PIC El bloque PWM tiene una resolución máxima de 10 bits. USART Comunicaciones paralelo PSP Líneas de entrada de CAD de 10 bits 8 Juego de instrucciones 35 Instrucciones Longitud de la instrucción 14 bits Arquitectura Harvard CPU Risc Canales Pwm 2 Pila Harware - Ejecución En 1 Ciclo Máquina - Tabla 18 Características 16F877 7. Puerto serie síncrono (SSP). 17CXXX . Esta familia de microcontroladores tiene una arquitectura Harvard. Puede direccionar directa o indirectamente sus registros o memoria de datos. Posee además una ALU de 8 bits que puede trabajar con WREG (también de 8 bits) o cualquier otro registro. TLWT. es decir con memoria de datos y de programa separadas.Guía de Microcontroladores Programación de PIC Un PIC17CXXX posee un alto rendimiento que se le puede atribuir a varias características de la arquitectura RISC. respecto a la familia PIC16CXXX. Pueden ser utilizadas para auto programar la memoria EPROM. permitiendo ejecuciones en un ciclo con velocidades de 121 ns a 33MHz. Esta separación de memoria permite operar con instrucciones simples de 16 bits. TABLRD. contrario a la arquitectura tradicional Von Neumann. A diferencia de la familia PIC16CXXX. Añaden cuatro nuevas instrucciones (TLRD. dando una programación eficiente y simple. Los PIC17CXXX tienen un set ortogonal (simétrico) set de instrucciones que hace posible realizar cualquier operación en cualquier registro usando cualquier direccionamiento. para la transferencia de datos entre los datos la memoria y la memoria de programa. . permiten el uso de 2 registros de archivos en algunas operaciones de 2 operandos. esto permite mover datos entre estos 2 registros sin pasar por el WREG (Registro de Trabajo) lo que incrementa el rendimiento y reduce el uso de memoria de programa. TABLWT). los registros especiales PC y WREG están mapeados en la memoria de datos. usando un bus de comunicación para cada una. .Guía de Microcontroladores Programación de PIC Figura 26 Diagrama de Bloques del PIC17CXXX Clasificación. direcciones y control. los pines sacan al exterior las líneas de los buses de datos. a las que se conectan dispositivos de memoria o controladores de periféricos. Esta facultad obliga a estos componentes a tener un elevado número de pines partiendo desde los 40 y 44. ROM u OTP. La memoria de datos puede llegar a tener hasta 1k (1024) registros de 8 bits. La memoria de programa de los PIC17CXXX es EPROM. que consiste en la posibilidad de ampliación del microcontrolador con elementos externos.Guía de Microcontroladores Programación de PIC A continuación se muestra la familia de Microcontroladores PIC17CXXX: Figura 27 Familia de Microcontroladores PIC17CXXX Características Los PIC17CXXX tienen un repertorio de 58 instrucciones de 16 bits cada una. Su sistema de interrupciones incluye el tratamiento de prioridades. Estos microcontroladores pueden trabajar en cuatro modos diferentes como: . Una característica interesante de los PIC17 es su arquitectura abierta. Para esto. Figura 28 Características PIC17CXXX Aplicaciones La familia PIC17CXXX es ideal para aplicaciones que requieren una ejecución extremadamente rápida de software complejo. que sólo se utilizan en aplicaciones muy especiales con grandes requerimientos. En la siguiente tabla se muestran las características más relevantes de los modelos de esta gama. En los modos microcontrolador ampliado y microprocesador. es posible acceder a ampliaciones externas de la memoria de programa. Estos incluyen aplicaciones que van desde el control preciso de un motor hasta el control de la transformación industrial para la automoción. Estos microcontroladores disponen de una amplia gama de dispositivos de entradasalida y cuentan con un sistema de gestión de interrupciones vectorizadas muy potente. .Guía de Microcontroladores Programación de PIC     Microcontrolador Microcontrolador protegido Microcontrolador ampliado Microprocesador En los modos microcontrolador y microcontrolador protegido solo se tiene acceso a la memoria de programa interna del microcontrolador. que sólo se utilizan en aplicaciones muy especiales con grandes requerimientos. En la siguiente tabla se muestran las características más relevantes de los modelos de esta gama. instrumentación y telecomunicaciones. Pero el gran salto final lo produce la compañía al responder a una necesidad de mercado.Guía de Microcontroladores Programación de PIC 7. HISTORIA Y EVOLUCION DE LOS PIC 18. resultado de la convergencia de las tecnologías usadas en las familias PIC16 y PIC17. Una de las memorias contiene solamente las instrucciones del programa (Memoria de Programa). El PIC16f84 revolucionó el campo de los microcontroladores y la familia PIC16F87X potenció la evolución de los sistemas de control embebido. PIC 18C(F)XXX ARQUITECTURA DE LOS MICROCONTROLADORES PIC 18 Figura 29 Diagrama PIC 18 Arquitectura Harvard: Utilizada por los Microcontroladores PIC. .6. y los otros almacenos datos (Memoria de Datos). Esta familia. los PIC18. tiene la unidad central de proceso (CPU) conectada a dos memorias (una con las instrucciones y otra con los datos) por medio de dos buses diferentes. Hacia finales del siglo XX (1999) Microchip se encamina a transformarse en el líder indiscutible de los microcontroladores de 8 bits. provocó la segunda revolución tecnológica iniciada con el PIC 16F84. La familia PIC18C fue la evolución de la primera familia fabricada y presenta por Microchip en junio de 1999.Guía de Microcontroladores Programación de PIC Dentro de la familia de los PIC18 contamos con micros de propósito general. así como microcontroladores específicos para conectividad USB y Ethernet. En el año 2004 Microchip presenta al mercado su nueva renovación con los PIC18F2525/2620/4524/4620. La serie original estuvo formada por 4 dispositivos básicos:     PIC18C242 PIC18C252 PIC18C442 PIC18C452 Los cuales rápidamente fueron transformados a versiones FLASH en el 2002 pasando a llamarse PIC18FXX2 (PIC18F242/252/442/452). CLASIFICACIÓN          PIC18F242 PIC18F252 PIC18F442 PIC18F452 PIC18F2550 PIC18F4550 PIC18K PIC18FK PIC18J . Guía de Microcontroladores Programación de PIC CARACTERÍSTICAS PIC18F242 Tabla 19 Características PIC18F242 . Guía de Microcontroladores Programación de PIC PIC18F252 Tabla 20 Características PIC18f252 PIC18F442 . Guía de Microcontroladores Programación de PIC Tabla 21 Características PIC18F452 PIC18F452 . Guía de Microcontroladores Programación de PIC Tabla 22 Características PIC18F2550 PIC18F2550 . Guía de Microcontroladores Programación de PIC Tabla 23 Características PIC18F4550 PIC18F4550 . Guía de Microcontroladores Programación de PIC Tabla 24 Características PIC18F4550 APLICACIONES La familia PIC18 permite una amplia variedad de aplicaciones incluyendo: . Sistemas de Alarma. Control interior. Dispositivos:    Energía Inteligente Lavadoras Refrigeradoras Medicina:   Dispositivos de Diagnóstico Medidores Portables Automotores:     Accesos automáticos. . Iluminación. Control puerta Garaje.Guía de Microcontroladores Programación de PIC Industrial:    Cerraduras de Puertas Electrónicas. Control de Tablero. Este PIC puede encontrarse en presentaciones de 40 pines (presentación PDIP) y de 44 pines (presentación PLCC y TQFP). 8. puesto que para la comunicación entre la CPU y las Memorias de Datos (MD) y Programas (MP) se realizan por buses independientes. al contrario de la arquitectura Von Newman. es indispensable contar con un “grabador” de PIC. del fabricante Microchip.RISC. (Instrucciones y Software Anexos). ambiente para programación en C. 3. Arquitectura Von Neumann CPU Memoria de Programa (MP) Arquitectura Harvard Memoria de Programa (MP) CPU Memoria de Datos (MD) Figura 30 Comparativa de Arquitecturas Harvard y Von Neumann. ambiente para grabación de PIC.2. MPLAB. RISC (Reduced Instruction Set Computing) maneja el concepto de. Cuenta con un repertorio de 35 instrucciones. Esto deriva en una mejora sustancial en el rendimiento del microcontrolador. Harvard.1. que son normalmente ejecutadas en un Tcy (Ciclo de instrucción).PIC 16F877A Este PIC pertenece a la familia 16. para poder transferir los programas desarrollados al PIC físicamente. PROTEUS. Es un microcontrolador de 8 bits y posee una arquitectura Harvard . .Guía de Microcontroladores Programación de PIC 8. MIKROC. simpleza frente a complejidad. en las instrucciones que manejará el CPU para sus operaciones. como PicKit2 o PicKit3. Programación de PIC 8.Instalación del software necesario Para realizar las prácticas con microcontroladores necesitaremos los siguientes programas (Software): 1. (Instrucciones y Software Anexos). siendo la presentación PDIP la usada para nuestras prácticas. (Instrucciones y Software Anexos). En cuanto a Hardware. software para simulación de circuitos. de gama media. 2. y WDT (Watch Dog Timer). Para configuración de los puertos  I/O. TRISD.  TRISA. 1A/E/USART. TRISC. Para configuración de los bancos de memoria. OPTION. TRISDE.Guía de Microcontroladores Programación de PIC Tcy ( Ciclo de Instrucció n )=4∗TOsc (Tiempos de Oscilaci ó n o Ciclo de Reloj) Entre sus características principales podemos destacar: Característica Memoria de Programa (Tipo) Memoria de Programa (KB) Velocidad del CPU (MIPS) Memoria de Datos.  prescaler del TMR0. . 1-SPI. estado aritmético  de la ALU. STATUS. TRISB. 1I2C1-MSSP(SPI/I2C) 2 CCP 2 x 8-bits. para las prácticas de capítulos siguientes. entre otras configuraciones. que serán usados en las del PIC.Digital) Comparadores Rango de Temperaturas (°C) Rango de Operación (V) Pines Valor Flash 14 5 368 256 1-UART. Para configuración de TMR0. entre otras configuraciones. Así también. Contiene bits para habilitar y bits banderas de fuentes de interrupciones. RAM (Bytes) EEPROM de Datos (Bytes) Puertos de Comunicación Puertos de Captura/Comparación/PW M Timers ADC (Conversor Analógico . mencionamos algunos registros de configuración. estado de reset.5 40 Tabla 25 Características relevantes del PIC16F877 (Microchip. 1 x 16bits 8 canales de 10-bits 2 -40 to 125 2 to 5. INTCON. 2014). Contienen bits de habilitación de ciertas fuentes de interrupcion. 2014). También la tabla de descripción de Pines: Nombre del Pin Pin Tipo OSC1/CLKIN 13 I OSC2/CLKOUT MCLR/Vpp/THV 14 1 O I/P Tipo de Buffer ST/MO S ST RA0/AN0 RA1/AN1 RA2/AN2/ VrefRA3/AN3/Vref+ RA4/T0CKI 2 3 4 5 6 I/O I/O I/O I/O I/O TTL TTL TTL TTL ST Descripción Entrada del oscilador de cristal / Entrada de señal de reloj externa. PIE1.3. Entrada del Master Clear (Reset) o entrada de voltaje de programación o modo de control high voltaje test. Salida del oscilador de cristal.Diagrama de pines y funciones A continuación presentamos el diagrama de pines del PIC16F877A en su presentación PDIP: Figura 31 Pines del PIC16F877A (Microchip. que se encuentra distribuido de forma gratuita en el sitio web de Microchip (Microchip. 2014).Guía de Microcontroladores Programación de PIC  PIR1. 8. Contienen bits banderas de interrupciones de ciertas fuentes  de interrupción. PIE2. Para más detalles acerca de este microcontrolador anexamos el Datasheet del mismo. PIR2. PORTA es un puerto I/O bidireccional RAO: puede ser salida analógica 0 RA1: puede ser salida analógica 1 RA2: puede ser salida analógica 2 o . Reloj de programación serial PORTC es un puerto I/O bidireccional RCO puede ser la salida del oscilador timer1 o la entrada de reloj del timer1 RC1 puede ser la entrada del oscilador timer1 o salida PMW 2 RC2 puede ser una entrada de captura y comparación o salida PWN RC3 puede ser la entrada o salida serial de reloj síncrono para modos SPI e I2C RC4 puede ser la entrada de datos SPI y modo I2C RC5 puede ser la salida de datos SPI RC6 puede ser el transmisor asíncrono USART o el reloj síncrono. PORTB es un puerto I/O bidireccional.Guía de Microcontroladores Programación de PIC RA5/SS/AN4 7 I/O TTL RBO/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD 33 34 35 36 37 38 39 40 I/O I/O I/O I/O I/O I/O I/O I/O TTL/ST TTL TTL TTL TTL TTL TTL/ST TTL/ST RCO/T1OSO/T1CKI RC1/T1OS1/CCP2 RC2/CCP1 RC3/SCK/SCL RC4/SD1/SDA RC5/SD0 RC6/Tx/CK RC7/RX/DT 15 16 17 I/O I/O I/O ST ST ST 18 I/O ST 23 24 25 26 I/O I/O I/O I/O ST ST ST ST RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 19 20 21 22 27 28 29 30 I/O I/O I/O I/O I/O I/O I/O I/O ST/TTL ST/TTL ST/TTL ST/TTL ST/TTL ST/TTL ST/TTL ST/TTL referencia negativa de voltaje RA3: puede ser salida analógica 3 o referencia positiva de voltaje RA4: puede ser entrada de reloj el timer0. RA5: puede ser salida analógica 4 o el esclavo seleccionado por el puerto serial síncrono. RB3: puede ser la entada de programación de bajo voltaje Pin de interrupción Pin de interrupción Pin de interrupción. . RC7 puede ser el receptor asíncrono USART o datos síncronos El PORTD es un puerto bidireccional paralelo. Puede ser programado todo como entradas RB0 pude ser pin de interrupción externo. P = power (Vcc o GND). RE1/WR/AN 9 I/O ST/TTL RE2/CS/AN7 10 I/O ST/TTL Vss 12. de igual manera. . 2014). — = Sin usar o implementar.3 1 P - REO: puede ser control de lectura para el puerto esclavo paralelo o entrada analógica 5. I/O = input/output (entrada/salida). ST = Entrada Schmitt Trigger. RE1: puede ser escritura de control para el puerto paralelo esclavo o entrada analógica 6 RE2: puede ser el selector de control para el puerto paralelo esclavo o la entrada analógica 7. Referencia de GND para los pines lógicos y de I/O. Vdd 11.Guía de Microcontroladores Programación de PIC REO/RD/AN5 8 I/O ST/TTL PORTE es un puerto I/O bidireccional. O = output (salida). Leyenda I = input (entrada). TTL = Entrada Transistor–Transistor Logic. La información se puede encontrar. en el Datasheet del PIC16F877A que se encuentra como anexo.3 2 P - Fuente positiva para los pines lógicos y de I/O. NC - - - Sin conectar internamente. Tabla 26 Descripción de Pines del PIC16F877A (Microchip. generado. por eso se adopta la programación en alto nivel con lenguajes como C. El código dependerá de ensamblador. por lo que se adopta la programación en lenguaje ensamblador (ASM). No permite conocer a detalle involucra muchas líneas las operaciones. presentamos la siguiente comparativa de C frente al leguaje ensamblador. este permite saber con detalle cual es capaz de  optimizar el código. Trabajar en lenguaje binario resulta una tarea bastante complicada por lo que en un inicio se usó la notación hexadecimal para facilitarlo. (MikroElektronika. El código de código generado puede ser usado en otros microcontroladores sin muchas modificaciones. Transforma el código a  lenguaje máquina. permite un  mejor manejo del código. Aun así el lenguaje ensamblador tiene sus desventajas. Es un lenguaje y exactitud las operaciones Posee un compilador. incluso  fuera de los microcontroladores. como en de código. 2014) Lenguaje Ensamblador Lenguaje C (Alto nivel) Ventajas  Frente Ventajas al codificar en  hexadecimal.Guía de Microcontroladores Lenguaje de Programación MIKRO C 9. Sin embargo programar con notación hexadecimal (HEX) sigue siendo bastante arduo. . el ampliamente que realizara el código. El lenguaje de programación MIKROC 9.Ventajas e inconvenientes El programa cargado en la memoria Flash del microcontrolador está compuesto por cadenas de unos y ceros los cuales representan las operaciones que realizará. Desventajas   Una Desventajas sola operación 8. la cantidad  usado.1. Para un mejor entendimiento. Frente a C. Reduce notablemente. MikroC. 2014) Es importante decir que el entorno que usaremos. Como se puede observar. . o PCW C (PCW). (MikroElektronika. C. 2014) Figura 32 Proceso que se sigue desde C hasta el lenguaje máquina (MikroElektronika. usado por programas como: o CSS C (CCS). el lenguaje C es de hecho el más conocido y usado en cuanto a programación para microcontroladores debido a sus ventajas. C30.2. 9. o MikroC (MikroElektronika). usado por programas como: o PicBasic. C32 (Microchip). Ensamblador vs C.Los lenguajes usados para microcontroladores Existe una gran variedad de lenguajes usados para trabajar con microcontroladores desde el mismo lenguaje ensamblador a otros de alto nivel como:   Basic. o C18. El programador debe conocer profundamente al microcontrolador.Guía de Microcontroladores Lenguaje de Programación MIKRO C la  arquitectura del microcontrolador. o IAR C (IAR). o MicroBasic. o Byte Craft C (Byte Craft). Como ya mencionamos anteriormente el usado para las prácticas será MikroC. pone a disposición el código hexadecimal y en lenguaje ensamblador del programa que se compile. Tabla 27 Cuadro comparativo.  Instrucciones de Selección. case 1: proceso1(). permiten ejecutar código repetitivamente en base a condiciones. default: break. las instrucciones dentro del bloque se repiten mientras que se cumpla una condición. break. do { proceso1(). break. } o Instrucción SWITCH. .Repertorio de instrucciones MikroC Las instrucciones especifican el flujo que tendrá el programa.3. valor++.Guía de Microcontroladores Lenguaje de Programación MIKRO C 9. las instrucciones se ejecutarán de manera repetitiva. seleccionan una opción disponible luego de evaluar valores. if (valor == 1) { proceso1(). las instrucciones dentro del bloque se repetirán hasta que se cumpla una condición. switch (valor) { case 0: proceso0(). evaluación para distintas posibles condiciones. o Instrucción IF. } o Instrucción DO. } while ( valor < n ). while (valor < n) { proceso1(). Se usa una variable de conteo para controlar las repeticiones. estado condicional. o Instrucción FOR. }  Instrucciones de bucle. a diferencia de WHILE las instrucciones se ejecutarán al menos una vez. }else{ procesoOtro(). valor++. ante la ausencia de estas la ejecución sería secuencial. o Instrucción WHILE. for (. (MikroElektronika. } Error: /* código de manejo para el error */ o Instrucción RETURN. 2014) . o Instrucción BREAK. . Para más detalles acerca de otras instrucciones usadas en mikroC. i < 10. la instrucción BREAK se usa para evitar o que se evalúen solo las condiciones necesarias. }  Instrucciones de Salto... se utiliza para salir de la función actual de vuelta a la rutina de llamada.Guía de Microcontroladores Lenguaje de Programación MIKRO C for ( i = 0. se usa para dar un salto a otra sección de código. if (desastre) goto Error. detienen la ejecución de un bloque incondicionalmente. i++ ){ proceso1(). opcionalmente devolviendo un valor. detiene la ejecución de un bucle.. En la instrucción SWITCH. por ejemplo.) { . i = 0... de forma incondicional.. Instrucción GOTO. anexamos el documento “Guía de Referencia Rápida a mikroC” disponible para su descarga en el sitio web de MikroElektronika. 2014) 10.Prácticas En las siguientes prácticas se usarán los paquetes de software instalados previamente en capítulos anteriores. Manejo de LEDS Para el manejo de LEDS se armará un circuito con el microcontrolador PIC16F877A. . imágenes de los circuitos y fragmentos de diagramas de flujo para el funcionamiento de cada práctica. Como se podrá observar. Recomendamos también el uso de la plantilla de programación que se podrá encontrar adjunta a este documento. los cuales representan los bits que encenderán a los LEDS. Esta guía proporcionará fragmentos de código.Guía de Microcontroladores Practicas 10.1. se envían valores decimales al PORTC. como se muestra en la siguiente figura: Figura 33 Circuito para el manejo de LEDS Para su funcionamiento el circuito obedecerá al siguiente flujograma. (Mogrovejo. etc. tendremos que el código generado a partir de los flujogramas. prescalers. while(1){ PORTC = 255. PORTC=0.2. Delay_ms(1000). interrupciones. se hace uso de la misma subrutina iConfigPeripherals y el mismo circuito indicados anteriormente. puerto al que están conectados los LEDS.Guía de Microcontroladores Practicas Figura 34 Flujograma para el manejo de LEDS Recomendamos crear la subrutina o procedimiento iConfigPeripherals. Para el manejo de repeticiones usamos las instrucciones de repetición o bucle. } } 10. registros. Delay_ms(1000). WHILE y DO para encender los LEDS conectados al PORTC de nuestro PIC. Figura 35 Flujograma para la subrutina de configuración. En el lenguaje C. PORTC = 0. en el siguiente flujograma mostramos el uso de los bucles FOR. PORTC = 15. . Delay_ms(1000). similar a la anterior. { //PuertoC como salidas digitales //Encerar el puerto C //Enciende todos los LEDs //Pausa de 1 segundo //Enciende los LEDs en RC4 a RC7 //Pausa de 1 segundo //Enciende los LEDs en RC0 a RC3 //Pausa de 1 segundo //Apaga todos los LEDs //Pausa de 1 segundo Manejo de Repeticiones En esta práctica. donde se configuren los puertos a usar.1. } void main() { iConfigPeripherals(). será: void iConfigPeripherals() TRISC=0. PORTC = 240. En esta práctica la subrutina se usa para configurar el PORTC como salida digital. Delay_ms(1000). Manejo de LEDS 10. //Apaga todos los LEDs Delay_ms(500). i < 3. . //Pausa medio segundo } i = 0.Guía de Microcontroladores Practicas Figura 36 Flujograma para el manejo de Repeticiones El código que se produce del flujograma es el siguiente: void main() { unsigned char i. //Enciende todos los LEDs Delay_ms(500). i++){ PORTC = 255. while(1){ for (i = 0. iConfigPeripherals(). //Pausa medio segundo PORTC = 0. //Enciende los LEDs en RC0 a RC3 Delay_ms(500). //Enciende los LEDs en RC4 a RC7 Delay_ms(500). //Pausa medio segundo PORTC = 240. //Pausa medio segundo PORTC = 15. PORTC = 7. Delay_ms(500). .3. Figura 37 Circuito para manejo de Pulsadores El flujograma que se usará incluye la operación de los pulsadores. Delay_ms(500). i++. Cada pulsador activará una instrucción IF. //Enciende el //Pausa medio //Enciende el //Pausa medio //Enciende el //Pausa medio //Enciende el //Pausa medio //Apaga todos //Pausa medio LED en RB0 segundo LED en RB1 segundo LED en RB2 segundo LED en RB3 segundo LEDs segundo } } 10. Delay_ms(500). PORTC = 3. se agregarán 4 pulsadores que estarán conectados al PORTB. Manejo de Pulsadores Para el manejo de pulsadores se modificará el circuito inicial.Guía de Microcontroladores Practicas do{ PORTC = 1. siendo cada uno de ellos los que active cierto funcionamiento de los LEDS. PORTC = 15. }while(i < 3). PORTC = 0. Nótese el uso de una resistencia de PULL-UP para cada pulsador. Delay_ms(500). Delay_ms(500). Guía de Microcontroladores Practicas Figura 38 Flujograma para el manejo de Pulsadores Se modifica también ligeramente la subrutina iConfigPeripherals para configurar el PORTB como entrada digital donde se colocarán los pulsadores. Figura 39 Flujograma para la subrutina de configuración El código en C que se genera a partir de los flujogramas es el siguiente: . Delay_ms(500). Delay_ms(500). PORTC = 66. Delay_ms(500). PORTC = 24. Delay_ms(500). Delay_ms(500).Guía de Microcontroladores Practicas void iConfigPeripherals() { TRISC = 0. } if (RB3_bit == 0){ PORTC = 129. Delay_ms(500). PORTC = 0. PORTC = 12. Delay_ms(500). } PORTC = 0. //Puerto C como salidas digitales TRISB = 255. Delay_ms(500). Delay_ms(500). PORTC = 36.4. //El pulsador en RB0 es activado //Enciende todos los LEDs //Pausa de medio segundo //Apaga todos los LEDs //Pausa de medio segundo //El pulsador en RB1 es activado //Enciende los leds en RB7 y RB6 //Pausa de medio segundo //Enciende los leds en RB5 y RB4 //Pausa de medio segundo //Enciende los leds en RB3 y RB2 //Pausa de medio segundo //Enciende los leds en RB1 y RB0 //Pausa de medio segundo //El pulsador en RB2 es activado //Enciende los leds en RB4 a RB7 //Pausa de medio segundo //Enciende los leds en RB0 a RB3 //Pausa de medio segundo //El pulsador en RB3 es activado //Enciende los leds en RB7 y RB0 //Pausa de medio segundo //Enciende los leds en RB6 y RB1 //Pausa de medio segundo //Enciende los leds en RB5 y RB2 //Pausa de medio segundo //Enciende los leds en RB4 y RB3 //Pausa de medio segundo //Apaga todos los LEDS Manejo de Displays El manejo de displays es muy similar al manejo de LEDS. //Encerar el puerto B } void main() { iConfigPeripherals(). PORTC = 48. Delay_ms(500). PORTC = 3. //Encerar el puerto C PORTB = 0. //Puerto B como entradas digitales PORTC = 0. } if (RB2_bit == 0){ PORTC = 240. Delay_ms(500). while(1){ if (RB0_bit == 0){ PORTC = 255. Para esta práctica usaremos un display de ánodo común conectado al PORTC y 2 pulsadores conectados al PORTB. PORTC = 15. El circuito que a usarse es: . } 10. teniendo en cuenta que un display común de 7 segmentos en realidad es un empaquetado de 7 u 8 LEDS. Delay_ms(500). } if (RB1_bit == 0){ PORTC = 192. La subrutina de configuración iConfigPeripherals sigue siendo la misma que para el manejo de pulsadores. El flujograma para esta práctica es el siguiente: Figura 41 Flujograma para el manejo de Display Ánodo Común. .Guía de Microcontroladores Practicas Figura 40 Circuito para el manejo de un Display de ánodo común. El código generado a partir del flujograma es el siguiente: void main() { iConfigPeripherals(). ya que usamos de igual manera los puertos PORTB y PORTC. Delay_ms(1000).Guía de Microcontroladores Practicas while(1){ if (RB0_bit == 0){ PORTC = 192. Manejo de LCD En esta práctica usaremos un Display LCD de 2x16 el cual tiene 32 segmentos divididos en 2 líneas. cuenta de 9 a 0 //Numero 9 en el Display //Pausa de 1 segundo //Numero 8 en el Display //Pausa de 1 segundo //Numero 7 en el Display //Pausa de 1 segundo //Numero 6 en el Display //Pausa de 1 segundo //Numero 5 en el Display //Pausa de 1 segundo //Numero 4 en el Display //Pausa de 1 segundo //Numero 3 en el Display //Pausa de 1 segundo //Numero 2 en el Display //Pausa de 1 segundo //Numero 1 en el Display //Pausa de 1 segundo //Numero 0 en el Display //Pausa de 1 segundo //Apaga todo el Display } 10. PORTC = 176. PORTC = 144. El LCD es un sistema microprocesado. PORTC = 153. PORTC = 248. Delay_ms(1000). Delay_ms(1000). Delay_ms(1000). . PORTC = 130. cuenta de 0 a 9 //Numero 0 en el Display //Pausa de 1 segundo //Numero 1 en el Display //Pausa de 1 segundo //Numero 2 en el Display //Pausa de 1 segundo //Numero 3 en el Display //Pausa de 1 segundo //Numero 4 en el Display //Pausa de 1 segundo //Numero 5 en el Display //Pausa de 1 segundo //Numero 6 en el Display //Pausa de 1 segundo //Numero 7 en el Display //Pausa de 1 segundo //Numero 8 en el Display //Pausa de 1 segundo //Numero 9 en el Display //Pausa de 1 segundo //El pulsador en RB1 es activado. PORTC = 249. PORTC = 248. Delay_ms(1000). para representar caracteres. Delay_ms(1000). PORTC = 176. PORTC = 164. Delay_ms(1000). } if (RB1_bit == 0){ PORTC = 144. PORTC = 164. de ahí su denominación. Delay_ms(1000). PORTC = 192. PORTC = 249. Delay_ms(1000). Delay_ms(1000). Delay_ms(1000). PORTC = 128. } //El pulsador en RB0 es activado. } PORTC = 255. Delay_ms(1000). PORTC = 146. PORTC = 130. Delay_ms(1000). PORTC = 153. para trabajar conjuntamente con el microntrolador PIC MikroC provee una librería dedicada a su manejo. Delay_ms(1000). PORTC = 128. Delay_ms(1000).5. Delay_ms(1000). Delay_ms(1000). Delay_ms(1000). PORTC = 146. Delay_ms(1000). Delay_ms(1000). Figura 43 Flujograma de la subrutina de configuración Mientras que le flujograma será el siguiente. notar el uso de llamadas a métodos como Lcd_Out y Lcd_Cmd pues estas son subrutinas propias de la librería LCD provista por MikroC para el manejo del LCD. .Guía de Microcontroladores Practicas El circuito con el trabajaremos es el siguiente: Figura 42 Circuito para manejo de LCD La subrutina de configuración iConfigPeripherals configura el PORTD como salida digital y llama al procedimiento de inicialización del LCD. TRISD3_bit. //Configuracion de los bits que usara el LCD sbit LCD_RS at RD2_bit. TRISD4_bit. void iConfigPeripherals() { TRISD = 0. Nótese el uso de los bits de configuración necesarios para el manejo del LCD. sbit LCD_D6 at RD6_bit.Guía de Microcontroladores Practicas Figura 44 Flujograma para el manejo del LCD El programa en MikroC que se generará es el siguiente. //Puerto D como salidas digitales PORTD = 0. //Procedimiento para inicializar el LCD } void main() { . TRISD7_bit. sbit LCD_D4 at RD4_bit. sbit LCD_D5 at RD5_bit. sbit LCD_D7 at RD7_bit. TRISD5_bit. sbit sbit sbit sbit sbit sbit LCD_RS_Direction LCD_EN_Direction LCD_D4_Direction LCD_D5_Direction LCD_D6_Direction LCD_D7_Direction at at at at at at TRISD2_bit. TRISD6_bit. sbit LCD_EN at RD3_bit. //Encerar el Puerto D Lcd_Init(). 8. Delay_ms(1000). while(1){ Lcd_Out(1. La práctica de sonido requiere el siguiente circuito: Figura 45 Circuito para manejo de sonido."Hola Mundo"). Lcd_Cmd(_LCD_CLEAR).3."Microchip"). Lcd_Out(2. Delay_ms(1000). //Mostrar un mensaje mas //Mostrar otro mensaje mas //Pausa de 1 segundo //Limpiar el LCD } } 10. //Mostrar otro mensaje //Mostrar otro mensaje mas //Pausa de 1 segundo //Limpiar el LCD Lcd_Out(1. Lcd_Cmd(_LCD_CLEAR). Delay_ms(1000). Lcd_Out(2.6. La subrutina de configuración iConfigPeripherals. para manejar el sonido es: Figura 46 Flujograma para la subrutina de configuración ."PIC16F877A").3. librería que está disponible en dicho entorno de programación. Lcd_Cmd(_LCD_CLEAR). //Apaga el cursor del LCD //Mostrar un mensaje //Pausa de 1 segundo //Limpiar el LCD Lcd_Out(1.3.Guía de Microcontroladores Practicas iConfigPeripherals()."2X16"). Lcd_Cmd(_LCD_CURSOR_OFF)."Manejo de LCD").3. Manejo de Sonido El manejo de sonido con MikroC se realiza usando la librería Sound. // Frequencia = 784Hz. } if(RB2_bit == 0){ Sound_Play(784. // Frequencia = 698Hz. //Se configura el pin RD0 como salida del sonido } void main() { iConfigPeripherals(). // Frequencia = 659Hz. } } 250). while(1){ if(RB0_bit == 0){ Sound_Play(659. duracion = 250ms . } if(RB3_bit == 0){ Sound_Play(880. } if(RB1_bit == 0){ Sound_Play(698. //Puerto B como entradas digitales PORTB = 0. duracion = 250ms 250). 0). duracion = 250ms 250). // Frequencia = 880Hz. duracion = 250ms 250).Guía de Microcontroladores Practicas Mientras que el flujograma en el que se reproducirán los sonidos es el siguiente: Figura 47 Flujograma para el manejo de sonidos Así tenemos que el código en lenguaje C siguiendo los flujogramas es: void iConfigPeripherals() { TRISB = 255. //Encerar el Puerto B Sound_Init(&PORTD. Los teclados matriciales vienen en varias formas siendo la más conocida la presentación de 16 botones (4 filas x 4 columnas). Comúnmente el manejo de teclados matriciales se realiza por medio de interrupciones de cambio de estado.Guía de Microcontroladores Practicas } 10. 10. Por lo que pasaremos al siguiente tema que trata dichas interrupciones entre otras. Manejo de Teclados Un teclado matricial es en realidad un conjunto de pulsadores. el circuito que manejaremos dispone de un teclado matricial (4x4) y un display LCD 2x16.7. Esta configuración se llevará a cabo en la subrutina iConfigPeripherals.  Interrupciones Externas Como mencionamos anteriormente. para el manejo de teclados matriciales se usan las interrupciones externas por cambio de estado.8. Debemos poner a 1 el bit RBIE puesto que es el que activa las interrupciones por cambio de estado en los pines RB4 a RB7 del PORTB. Manejo de Interrupciones Un PIC16F877A puede manejar varias fuentes de interrupciones ya sean internas o externas. . Complementando al tema anterior. Figura 48 Circuito para el manejo de un teclado matricial y LCD Para el manejo de las interrupciones por cambio de estado deberemos configurar el registro INTCON. ya que es el método más eficiente en cuanto a hardware y software. Nótese el proceso de deshabilitar interrupciones. con este procedimiento se reduce al mínimo la posibilidad de que se den estos errores. pues en ambientes ruidosos (ruidos electromagnéticos) se pueden dar habilitaciones o interrupciones no deseadas. llamar al procedimiento de interrupción y habilitar interrupciones. para habilitar RBIE En la subrutina iConfigPeripherals también se configuran los parámetros necesarios para el manejo del LCD.Guía de Microcontroladores Practicas GIE PEIE 0 0 TMROI E 0 INTE RBIE 0 1 TMR0I F 0 INTF RBIF 0 0 Tabla 28 Configuración del registro INTCON. (Mogrovejo. y al final se habilita las interrupciones de forma global (GIE_bit). Figura 49 Flujograma para la subrutina de configuración A continuación presentamos el flujograma para el manejo de interrupciones. 2014) . Es recomendable el uso de este proceso. . estas identifican las filas y columnas del teclado matricial. la cual será tratada por el siguiente flujograma. Notar el uso de variables CX y FX.Guía de Microcontroladores Practicas Figura 50 Flujograma para el tratamiento de interrupciones La subrutina para atender a las interrupciones detectará una interrupción por cambio de estado. Guía de Microcontroladores Practicas Figura 51 Flujograma para el tratamiento de la interrupción por cambio de estado . Guía de Microcontroladores Practicas La condición de Mismatch y la variable iLeerPuertoB serán usadas para identificar la tecla presionada al producirse una nueva interrupción. El flujograma del programa principal, es el siguiente. Figura 52 Flujograma para el manejo de teclado matricial y LCD Para finalizar, el código C generado a partir de estos flujogramas será: // Configuracion de bits para el LCD sbit LCD_RS at RD2_bit; sbit LCD_EN at RD3_bit; sbit LCD_D4 at RD4_bit; sbit LCD_D5 at RD5_bit; sbit LCD_D6 at RD6_bit; sbit LCD_D7 at RD7_bit; sbit sbit sbit sbit sbit sbit LCD_RS_Direction LCD_EN_Direction LCD_D4_Direction LCD_D5_Direction LCD_D6_Direction LCD_D7_Direction // Pines del Puerto B //Columnas sbit C1 at RB3_bit; sbit C2 at RB2_bit; sbit C3 at RB1_bit; sbit C4 at RB0_bit; //Filas at at at at at at TRISD2_bit; TRISD3_bit; TRISD4_bit; TRISD5_bit; TRISD6_bit; TRISD7_bit; Guía de Microcontroladores Practicas sbit F1 at RB7_bit; sbit F2 at RB6_bit; sbit F3 at RB5_bit; sbit F4 at RB4_bit; void iScanTecla(void) { Delay_Ms(20); //Espera para evitar rebotes mecanicos del teclado C1=0; C2=1; C3=1; C4=1; if(!F1) iTecla=1; if(!F2) iTecla=4; if(!F3) iTecla=7; if(!F4) iTecla=14; C1=1; C2=0; C3=1; C4=1; if(!F1) iTecla=2; if(!F2) iTecla=5; if(!F3) iTecla=8; if(!F4) iTecla=0; C1=1; C2=1; C3=0; C4=1; if(!F1) iTecla=3; if(!F2) iTecla=6; if(!F3) iTecla=9; if(!F4) iTecla=15; C1=1; C2=1; C3=1; C4=0; if(!F1) iTecla=10; if(!F2) iTecla=11; if(!F3) iTecla=12; if(!F4) iTecla=13; Delay_Ms(20); //Espera para evitar rebotes mecanicos del teclado /* Mismatch Teclado*/ C1=0; C2=0; C3=0; C4=0; iLeePuertoB=PORTB; } void interrupt() { GIE_bit=0; if(RBIE_bit && RBIF_bit) { RBIE_bit=0; iScanTecla(); RBIF_bit=0; RBIE_bit=1; } GIE_bit=1; } void iConfigPeripherals() { TRISB = 240; //RB4:RB7 como ingresos y RB0:RB3 como salidas TRISD = 0; //puerto D como salidas digitales PORTB = 0; PORTD = 0; Lcd_Init(); Guía de Microcontroladores Practicas /* Configuracion de registros, para interrupcion por cambio de estado */ INTCON = 0x08; //bits = 1(RBIE) y bit0 = 0(RBIF) /* Mismatch Teclado */ C1=0; C2=0; C3=0; C4=0; iLeePuertoB=PORTB; GIE_bit = 1; //Habilitacion Global de Interrupciones } void main() { iConfigPeripherals(); Lcd_Out(1,6,"HOLA"); Lcd_Out(2,5,"MUNDO."); Delay_Ms(2000); Lcd_Cmd(_LCD_CLEAR); while(1) { if(iTecla>=10) iTecla+=55; else iTecla+=48; Lcd_Cmd(_LCD_CLEAR); Lcd_Out_Cp("La tecla presio"); Lcd_Out(2,1,"nada es: "); Lcd_Chr(2,16,iTecla); iTecla=0; Delay_Ms(250); } }  Interrupciones Internas Estas interrupciones son producidas internamente por el PIC, un ejemplo de estas son las producidas por el TMR0 al ocurrir un desbordamiento de su registro de operación. Para esta práctica usaremos el mismo circuito que para el manejo de LEDS. En el Subtema 10.1. La ventaja de trabajar con una interrupción del TMR0 es que trabaja en segundo plano, así el PIC puede ocuparse de otras tareas y el TMR0 es atendido solo cuando lo requiera. Para trabajar con el TMR0 deberemos configurar el registro OPTION, ya que aquí se encuentran los parámetros con los que trabajará, PRESCALER, MODO DE OPERACIÓN (temporizador o contador). Debemos habilitar también las interrupciones TMR0, esto se hace en el registro INTCON. Los cálculos necesarios para la operación del TMR0 se hacen en base al tiempo con el que esperamos una interrupción y la frecuencia del oscilador. Tiempo = 4* Tosc * (256 - valor cargado en TMR0)*(prescaler) Tocs = 1/Fosc (frecuencia del oscilador) (Tiempo* Fosc/4*prescaler)) Deseamos una precisión de 1 centésima de segundo y usamos un oscilador de 4MHz.Guía de Microcontroladores Practicas Carga inicial TMR0 = 256 . entonces los resultados de carga inicial para el TMR0 y su PRESCALER será: Elegimos un PRESCALER de 1:64 y una carga inicial de 100 (valor aproximado entero). y la carga inicial en la subrutina de configuración iConfigPeripherals. GIE PEIE 0 0 TMROI E 1 INTE RBIE 0 0 TMR0I F 0 INTF RBIF 0 0 Tabla 29 Habilitación de interrupciones TMR0 en el registro INTCON RBPU ’ 1 INTED G 0 T0CS T0SE PSA PS2 PS1 PS0 0 0 0 1 0 1 Tabla 30 Configuración de prescaler 1:64 para el TMR0 en el registro OPTION La subrutina iConfigPeripherals es: . La configuración del PRESCALER se coloca en el registro INTCON. se ejecutará cada segundo: .Guía de Microcontroladores Practicas Figura 53 Flujograma para la subrutina de configuración El flujograma para la atención las interrupciones es el siguiente: Figura 54 Flujograma para atención de interrupciones La subrutina para atender las interrupciones TMR0 es la siguiente. Guía de Microcontroladores Practicas Figura 55 Flujograma para atención a las interrupciones TMR0 El programa principal solo llamará a la subrutina iConfigPeripherals. puesto que un en segundo plano el TMR0 estará trabajando por si solo para encender y apagar los leds conectados al PORTC. Figura 56 Flujograma del programa principal El código C resultante de estas configuraciones y flujogramas es el siguiente: unsigned char CENTESIMAS = 0. //Se encenderan y apagaran los leds conectados al PORTC cada segundo if(CENTESIMAS == 100){ . void iSubTmr0(void){ //CONTADOR DE CENTESIMAS DE SEGUNDO CENTESIMAS++. iSubTmr0().Guía de Microcontroladores Practicas if(PORTC == 255){ PORTC = 0. //prescaler 1:64 al TMR0. //interrupciones TMR0 habilitadas /* Configuracion del Timer 0 */ OPTION_REG=0x85. }else{ PORTC = 255. } GIE_bit=1. //carga inicial para un tiempo de 1cs con FOSC=4MHz /* Habilitacion global de interrupciones */ GIE_bit=1. } void iConfigPeripherals() { TRISC = 0. } CENTESIMAS = 0. TMR0IF_bit=0. if(TMR0IE_bit && TMR0IF_bit) { TMR0IE_bit=0. TMR0IE_bit=1. } void main() { iConfigPeripherals(). } void interrupt() { GIE_bit=0. //Encerar el Puerto C /* Configuracion de interrupciones */ INTCON=0x20. } //Nuevamente asignamos la carga inicial para un tiempo de 1cs con FOSC=4Mhz TMR0=100. modo temporizador TMR0=100. //Puerto C como salidas digitales PORTC = 0. } . Actualmente realiza sus estudios superiores para Ingeniero de Sistemas y Telemática en la “Universidad del Azuay”.. Arquitectura y 2012.... Andrés. mientras que sus estudios de secundaria los realizó en el colegio “17 de Septiembre”............ nació el 16 de Mayo de 1979 en El Triunfo/Guayas .....es/l/lli/articuloIBM/index... Secundaria “Instituto Técnico Superior Salesiano”. Alvarez.....html. Slideshare.. cursó sus estudios en la ciudad de Cuenca: Primaria “Escuela Padre Carlos Crespi”. 2010....... Luis Lucas... nació el 12 de Agosto de 1990 en la ciudad Cuenca/Azuay – Ecuador..... Su principal experiencia radica en el Diseño e Implementación de Sistemas Embebidos para Control y Automatización de Procesos Domóticos e Industriales. cursó sus estudios primarios en la ciudad de Azogues en la “Escuela Emilio Abad” y en la “Escuela La Salle”. Programación de compPC. Se ha desarrollado en el ámbito docente desde el 2002 en los siguientes establecimientos: Colegio Daniel Córdova Toral 2002-2006..0 caraterísticas y funciones.. Innovador...... en las áreas de conocimiento teórico-práctico en: Eléctrica ..... Universidad Politécnica Salesiana (UPS) 2011-Presente. Danny Noboa.... 2009-2011. [En línea] http://www... Los chipsets compPC. 2012. se destaca por hitos como Soporte para Servidores.Guía de Microcontroladores Referencias y AnexosTabla 30 Configuración de prescaler 1:64 para el TMR0 en el registro OPTION.com/2011/08/pc-de-ibm-30-anos-de-revolucionar-la. actualmente desarrollando su Tesis “Control Predictivo Generalizado para un Inversor Multinivel en Cascada Basado en Filtro Activo de Potencia”. Jorge Cortés... Universidad del Azuay (UDA) 2013-Presente. Actualmente cursa sus estudios en la superiores de Ingeniería en Sistemas y Telemática en la “Universidad del Azuay”. El Ibm Pc Y Componentes De Procesamiento..... Soporte técnico y Programación Web. 2010. Darío Espinoza... Ibáñez. http://el-innovador.html. http://www. 2010.. Experiencia laboral en diseño de páginas web y manejo de base de datos...... Referencias Alonso130..... ... http://informaticamoderna.. Sus estudios primarios los realizó en la escuela “Luis Cordero”.com/ensayos/El-Ibm-Pc-y-ComponentesDe/223839. 97 Biografías Italo Mogrovejo.slideshare.htm. Historia de IBM http://www..com/El_puerto_USB.. Ariel.buenastareas. 2014......net/cortesalvarez/interrupciones-sistemas-operativos. Superior “Universidad Politécnica Salesiana”.... 2014. [En línea] 2011....Electrónica y Ciencias Exactas.......Ecuador. atravéz de su PC.htm..... El puerto USB3. Soluciones de Cableado Estructurado.. sus estudios secundarios los realizó en el “ITS Luis Rogerio Gonzales” y en el “Colegio Militar Abdón Calderón”. 2011.. Su amplia experiencia laboral. [En línea] InformaticaModerna. en la ciudad de Milagro/Guayas – Ecuador... SECAP 2006-2008. nació el 01 de Enero de 1983. [En línea] Abril de 2010.blogspot. [En línea] 2014.. Bruno y Coria microcontroladores..alu... [En línea] 2014...ua. PC de IBM: a 30 años de revolucionar la historia. nació el 12 de Agosto de 1990 en la ciudad Cuenca/Azuay – Ecuador..Caracteristicas del PIC16F628A.. s.....Microcontroladores PIC Programación en C con ejemplos.. Darío Espinoza.........Ecuador.... [En línea] 2014... en las áreas de conocimiento teórico-práctico en: Eléctrica .. Angulo Martínez... Romero Yesa y I.. Universidad Politécnica Salesiana (UPS) 2011-Presente. 2014. Actualmente cursa sus estudios en la superiores de Ingeniería en Sistemas y Telemática en la “Universidad del Azuay”.. Diseño práctico de aplicaciones. nació el 01 de Enero de 1983. Experiencia laboral en diseño de páginas web y manejo de base de datos.com/wwwproducts/Devices.com/downloads/get/945/es_c_syntax_v102... Soporte técnico y Programación Web.com/chapters/view/80/capitulo-2-programacion-de-losmicrocontroladores/.l. 2013... 97 Biografías Italo Mogrovejo. Baños.Guía de Microcontroladores Referencias y AnexosTabla 30 Configuración de prescaler 1:64 para el TMR0 en el registro OPTION. [En línea] [Citado el: ] Palacios Municio... sus estudios secundarios los realizó en el “ITS Luis Rogerio Gonzales” y en el “Colegio Militar Abdón Calderón”... Microchip. 2014.. Actualmente realiza sus estudios superiores para Ingeniero de Sistemas y Telemática en la “Universidad del Azuay”...... SECAP 2006-2008.. 2014.. Guía de Referencia Rápida a MikroC.Electrónica y Ciencias Exactas..microchip..........n. [Citado el: 31 de Enero de 2014. 2009-2011.....8 bit PIC Microcontrollers.. MikroElektronika.......... —. Cuenca. Danny Noboa. 2013. Microcontroladores PIC...... 2006.. Secundaria “Instituto Técnico Superior Salesiano”. [En línea] 01 de Febrero de 2014. .. mientras que sus estudios de secundaria los realizó en el colegio “17 de Septiembre”.. 2013. Mogrovejo. : McGraw-Hill... Italo... Microcontroladores de 8 bits...mikroe.. Sistemas Microprocesados. http://www.. 2014. José María. se destaca por hitos como Soporte para Servidores.. Se ha desarrollado en el ámbito docente desde el 2002 en los siguientes establecimientos: Colegio Daniel Córdova Toral 2002-2006.n.. cursó sus estudios en la ciudad de Cuenca: Primaria “Escuela Padre Carlos Crespi”...] http://www.... Su principal experiencia radica en el Diseño e Implementación de Sistemas Embebidos para Control y Automatización de Procesos Domóticos e Industriales.... 2006.... Cuenca : s. 2014. Programación de los microcontroladores . Soluciones de Cableado Estructurado.. cursó sus estudios primarios en la ciudad de Azogues en la “Escuela Emilio Abad” y en la “Escuela La Salle”. nació el 16 de Mayo de 1979 en El Triunfo/Guayas .pdf...aspx? dDocName=en010242. 2013. Su amplia experiencia laboral.. Otrebeh. actualmente desarrollando su Tesis “Control Predictivo Generalizado para un Inversor Multinivel en Cascada Basado en Filtro Activo de Potencia”. Scribd . Sus estudios primarios los realizó en la escuela “Luis Cordero”... [En línea] 2014..] http://www. —.. Superior “Universidad Politécnica Salesiana”.. 847897-691-4.. Manejo de Interrupciones... Universidad del Azuay (UDA) 2013-Presente. PIC16F877A . [Citado el: 01 de Febrero de 2014.. Azuay. en la ciudad de Milagro/Guayas – Ecuador.. —.. S. Ecuador : s..mikroe. . http://grupousb..... Galeon.... Universidad Politécnica Salesiana (UPS) 2011-Presente.wikipedia. —. http://programacionjj.org/wiki/PIC16F87X. Soluciones de Cableado Estructurado... Rojas. [En línea] Junio de 2001.. Yadav... [En línea] http://es. Actualmente realiza sus estudios superiores para Ingeniero de Sistemas y Telemática en la “Universidad del Azuay”.wikipedia......Electrónica y Ciencias Exactas.134/polilibros/portal/Polilibros/P_terminados. —.. Clara Berg......... 2001... Arun Kumar Singh... Polilibros./SisDig2Ses/UMD/Unidad%20V/Informacion/53.. Su principal experiencia radica en el Diseño e Implementación de Sistemas Embebidos para Control y Automatización de Procesos Domóticos e Industriales... se destaca por hitos como Soporte para Servidores....org/wiki/Universal_Serial_Bus.. .Guía de Microcontroladores Referencias y AnexosTabla 30 Configuración de prescaler 1:64 para el TMR0 en el registro OPTION.. en la ciudad de Milagro/Guayas – Ecuador.wikipedia...... y otros. Danny Noboa. nació el 12 de Agosto de 1990 en la ciudad Cuenca/Azuay – Ecuador. PIC16F87X... Wikipedia. sus estudios secundarios los realizó en el “ITS Luis Rogerio Gonzales” y en el “Colegio Militar Abdón Calderón”.edu..... Actualmente cursa sus estudios en la superiores de Ingeniería en Sistemas y Telemática en la “Universidad del Azuay”. 2009-2011..204. Micontroladores de 8 y 16 bits.l... [En línea] Victoria.. s.] http://en.. actualmente desarrollando su Tesis “Control Predictivo Generalizado para un Inversor Multinivel en Cascada Basado en Filtro Activo de Potencia”.org/wiki/PIC_microcontroller.html. nació el 01 de Enero de 1983.. : New Age International...uaeh.8m.211.. 97 Biografías Italo Mogrovejo... [En línea] http://repository.. cursó sus estudios en la ciudad de Cuenca: Primaria “Escuela Padre Carlos Crespi”... Universal Serial Bus. Universidad Autonoma del estado de Hidalgo.... Soporte técnico y Programación Web.... Se ha desarrollado en el ámbito docente desde el 2002 en los siguientes establecimientos: Colegio Daniel Córdova Toral 2002-2006.htm... nació el 16 de Mayo de 1979 en El Triunfo/Guayas ... Darío Espinoza. Dispositivos USB.com/Mainboard/Mainboard...] http://148.mx/bitstream/handle/123456789/11073.. SECAP 2006-2008.Ecuador. Experiencia laboral en diseño de páginas web y manejo de base de datos. 2004... Su amplia experiencia laboral. 2004. [En línea] [Citado el: 2013 de 12 de 25. Jefferson. Secundaria “Instituto Técnico Superior Salesiano”.. mientras que sus estudios de secundaria los realizó en el colegio “17 de Septiembre”. en las áreas de conocimiento teórico-práctico en: Eléctrica .. [En línea] [Citado el: ] http://es.htm. Sus estudios primarios los realizó en la escuela “Luis Cordero”. PIC microcontrolador............galeon. Superior “Universidad Politécnica Salesiana”.... Rodolfo Reyes Serrano.... cursó sus estudios primarios en la ciudad de Azogues en la “Escuela Emilio Abad” y en la “Escuela La Salle”. Microcontroller: Features and Applications... Universidad del Azuay (UDA) 2013-Presente.... [En línea] [Citado el: Noviembre de 30 de 2013.....com/trajabofinal..... .. actualmente desarrollando su Tesis “Control Predictivo Generalizado para un Inversor Multinivel en Cascada Basado en Filtro Activo de Potencia”...... ANEXO DATASHEETS ANEXO GUIAS ANEXO SOFTWARE Contiene los instaladores de los programas:    PROTEUS.... cursó sus estudios primarios en la ciudad de Azogues en la “Escuela Emilio Abad” y en la “Escuela La Salle”. SECAP 2006-2008......... Universidad Politécnica Salesiana (UPS) 2011-Presente.4 .. Anexos Anexo Descripción ANEXO CIRCUITOS Contiene simulaciones para usar en el software Proteus.... Darío Espinoza...........Electrónica y Ciencias Exactas.... Su principal experiencia radica en el Diseño e Implementación de Sistemas Embebidos para Control y Automatización de Procesos Domóticos e Industriales...... Actualmente realiza sus estudios superiores para Ingeniero de Sistemas y Telemática en la “Universidad del Azuay”................... Además........... Se ha desarrollado en el ámbito docente desde el 2002 en los siguientes establecimientos: Colegio Daniel Córdova Toral 2002-2006.... 97 Biografías Italo Mogrovejo.... Su amplia experiencia laboral... sus estudios secundarios los realizó en el “ITS Luis Rogerio Gonzales” y en el “Colegio Militar Abdón Calderón”. nació el 01 de Enero de 1983.... cursó sus estudios en la ciudad de Cuenca: Primaria “Escuela Padre Carlos Crespi”.. Sus estudios primarios los realizó en la escuela “Luis Cordero”. en la ciudad de Milagro/Guayas – Ecuador.. Libros y documentos de apoyo. direcciones y control....... nació el 16 de Mayo de 1979 en El Triunfo/Guayas .... mientras que sus estudios de secundaria los realizó en el colegio “17 de Septiembre”. nació el 12 de Agosto de 1990 en la ciudad Cuenca/Azuay – Ecuador... Universidad del Azuay (UDA) 2013-Presente..... Soluciones de Cableado Estructurado...........Ecuador.. MIKROC.... 2013). Danny Noboa............... Contiene varios datasheets de la familia PIC 16.. Experiencia laboral en diseño de páginas web y manejo de base de datos. 2009-2011.....Guía de Microcontroladores Referencias y AnexosTabla 30 Configuración de prescaler 1:64 para el TMR0 en el registro OPTION....... los circuitos para cada una de las prácticas del capítulo 10............. Actualmente cursa sus estudios en la superiores de Ingeniería en Sistemas y Telemática en la “Universidad del Azuay”.. MPLAB............. Superior “Universidad Politécnica Salesiana”.... se destaca por hitos como Soporte para Servidores... Índice de Tablas y Figuras Figura 1 Diagrama de Bloques de un Sistema Microprocesado (Mogrovejo.... 17 y 18......3 Figura 2 Buses de datos.. en las áreas de conocimiento teórico-práctico en: Eléctrica .... Soporte técnico y Programación Web.. Secundaria “Instituto Técnico Superior Salesiano”... ... sus estudios secundarios los realizó en el “ITS Luis Rogerio Gonzales” y en el “Colegio Militar Abdón Calderón”............ nació el 12 de Agosto de 1990 en la ciudad Cuenca/Azuay – Ecuador.... Danny Noboa...... Darío Espinoza..........15 Figura 11 Ejemplificación de una Interrupción de hardware...............15 Figura 12 Diagrama de Pines.....................17 Figura 13 Modela Cascada 8259A.................. en la ciudad de Milagro/Guayas – Ecuador................ actualmente desarrollando su Tesis “Control Predictivo Generalizado para un Inversor Multinivel en Cascada Basado en Filtro Activo de Potencia”............................................................. Su principal experiencia radica en el Diseño e Implementación de Sistemas Embebidos para Control y Automatización de Procesos Domóticos e Industriales................. Superior “Universidad Politécnica Salesiana”.......... 11 Figura 6 Representación figurativa de los tipos de interrupciones. cursó sus estudios en la ciudad de Cuenca: Primaria “Escuela Padre Carlos Crespi”.................... cursó sus estudios primarios en la ciudad de Azogues en la “Escuela Emilio Abad” y en la “Escuela La Salle”.................................. se destaca por hitos como Soporte para Servidores.................................7 Figura 4 Línea de tiempos en la que se representa las latencias de interrupciones durante el procesamiento normal............ 97 Biografías Italo Mogrovejo............................. nació el 01 de Enero de 1983.... Sus estudios primarios los realizó en la escuela “Luis Cordero”................ Experiencia laboral en diseño de páginas web y manejo de base de datos.... Ítalo Mogrovejo........Electrónica y Ciencias Exactas......................... Ing......13 Figura 9 Resolución del Ejercicio 2.... Barry B........... SECAP 2006-2008.......12 Figura 8 Comparación de una salida ideal y de una con rebotes.... Soporte técnico y Programación Web.................... Clase micro controladores................................ Secundaria “Instituto Técnico Superior Salesiano”.... Soluciones de Cableado Estructurado........ Actualmente realiza sus estudios superiores para Ingeniero de Sistemas y Telemática en la “Universidad del Azuay”......... Universidad Politécnica Salesiana (UPS) 2011-Presente.............................................................13 Figura 10 Resolución del Ejercicio 3.... Su amplia experiencia laboral.................... Brey)........... Actualmente cursa sus estudios en la superiores de Ingeniería en Sistemas y Telemática en la “Universidad del Azuay”...........................22 ........................ Se ha desarrollado en el ámbito docente desde el 2002 en los siguientes establecimientos: Colegio Daniel Córdova Toral 2002-2006... mientras que sus estudios de secundaria los realizó en el colegio “17 de Septiembre”.................................. Figura 3 Mainboard (Rojas)................................. 2009-2011...................Ecuador.................19 Figura 14 Diagrama de modo real........ Universidad del Azuay (UDA) 2013-Presente..... nació el 16 de Mayo de 1979 en El Triunfo/Guayas ..Guía de Microcontroladores Referencias y AnexosTabla 30 Configuración de prescaler 1:64 para el TMR0 en el registro OPTION................. en las áreas de conocimiento teórico-práctico en: Eléctrica ................................12 Figura 7 Circuito para manejar 3 interrupciones.....11 Figura 5 Representación del procesamiento del programa principal y el de una interrupción.............. (Microprocesadores Intel... ........... cursó sus estudios primarios en la ciudad de Azogues en la “Escuela Emilio Abad” y en la “Escuela La Salle”.........0 On The Go (Diferentes Tipos de Conexiones).......... 32 Figura 19 Pines del conector DB9.................... cursó sus estudios en la ciudad de Cuenca: Primaria “Escuela Padre Carlos Crespi”.............................................. SECAP 2006-2008.............................................39 Figura 24 USB 3............................ 37 Figura 22 USB 2........................................ en las áreas de conocimiento teórico-práctico en: Eléctrica .. Ítalo Mogrovejo.....................................38 Figura 23 USB 2.......0 Super Speed..57 Figura 27 Familia de Microcontroladores PIC17CXXX........................... Soporte técnico y Programación Web... Secundaria “Instituto Técnico Superior Salesiano”................. se destaca por hitos como Soporte para Servidores.........1. Se ha desarrollado en el ámbito docente desde el 2002 en los siguientes establecimientos: Colegio Daniel Córdova Toral 2002-2006................................... Universidad Politécnica Salesiana (UPS) 2011-Presente......32 Figura 20 UBS1.. Clase de Microcontroladores.................................Ecuador...... Soluciones de Cableado Estructurado..............Electrónica y Ciencias Exactas.......... Sus estudios primarios los realizó en la escuela “Luis Cordero”..... Universidad del Azuay (UDA) 2013-Presente.............................. Su amplia experiencia laboral...................................... Su principal experiencia radica en el Diseño e Implementación de Sistemas Embebidos para Control y Automatización de Procesos Domóticos e Industriales...................23 Figura 16 Cable puerto Paralelo........ nació el 16 de Mayo de 1979 en El Triunfo/Guayas ... mientras que sus estudios de secundaria los realizó en el colegio “17 de Septiembre”................................ nació el 12 de Agosto de 1990 en la ciudad Cuenca/Azuay – Ecuador......................... Actualmente cursa sus estudios en la superiores de Ingeniería en Sistemas y Telemática en la “Universidad del Azuay”.....................................................................44 Figura 26 Diagrama de Bloques del PIC17CXXX..........................0.............. nació el 01 de Enero de 1983..................... Ing............. Experiencia laboral en diseño de páginas web y manejo de base de datos.......................... 97 Biografías Italo Mogrovejo. en la ciudad de Milagro/Guayas – Ecuador............................... Tipo B (Derecha). Danny Noboa...................................29 Figura 18 Conector DB9....................................................................................0 On The Go............ 36 Figura 21 USB 2....40 Figura 25 Conectores Tipo A (Izquierda)....... 2009-2011...............................................................58 ............. Actualmente realiza sus estudios superiores para Ingeniero de Sistemas y Telemática en la “Universidad del Azuay”................................ Superior “Universidad Politécnica Salesiana”............................ Figura 15 Diagrama Modo protegido..............29 Figura 17 Composición del Puerto Paralelo.........Guía de Microcontroladores Referencias y AnexosTabla 30 Configuración de prescaler 1:64 para el TMR0 en el registro OPTION................ actualmente desarrollando su Tesis “Control Predictivo Generalizado para un Inversor Multinivel en Cascada Basado en Filtro Activo de Potencia”.. sus estudios secundarios los realizó en el “ITS Luis Rogerio Gonzales” y en el “Colegio Militar Abdón Calderón”....... Darío Espinoza................................ .......................... Sus estudios primarios los realizó en la escuela “Luis Cordero”.......................78 Figura 36 Flujograma para el manejo de Repeticiones.............................. Danny Noboa....... cursó sus estudios en la ciudad de Cuenca: Primaria “Escuela Padre Carlos Crespi”...................................................... sus estudios secundarios los realizó en el “ITS Luis Rogerio Gonzales” y en el “Colegio Militar Abdón Calderón”.............. cursó sus estudios primarios en la ciudad de Azogues en la “Escuela Emilio Abad” y en la “Escuela La Salle”.....69 Figura 31 Pines del PIC16F877A (Microchip.................................... 97 Biografías Italo Mogrovejo...............81 Figura 38 Flujograma para el manejo de Pulsadores........ nació el 12 de Agosto de 1990 en la ciudad Cuenca/Azuay – Ecuador..................................................................Ecuador................................ Su principal experiencia radica en el Diseño e Implementación de Sistemas Embebidos para Control y Automatización de Procesos Domóticos e Industriales................ se destaca por hitos como Soporte para Servidores...... Secundaria “Instituto Técnico Superior Salesiano”.............................................................................................................82 Figura 39 Flujograma para la subrutina de configuración.............. actualmente desarrollando su Tesis “Control Predictivo Generalizado para un Inversor Multinivel en Cascada Basado en Filtro Activo de Potencia”................................... en las áreas de conocimiento teórico-práctico en: Eléctrica .......Electrónica y Ciencias Exactas..... Darío Espinoza.................. 2014)...... 75 Figura 33 Circuito para el manejo de LEDS....... Superior “Universidad Politécnica Salesiana”............ en la ciudad de Milagro/Guayas – Ecuador..... nació el 16 de Mayo de 1979 en El Triunfo/Guayas ...........59 Figura 29 Diagrama PIC 18..................Guía de Microcontroladores Referencias y AnexosTabla 30 Configuración de prescaler 1:64 para el TMR0 en el registro OPTION.................... Soporte técnico y Programación Web...71 Figura 32 Proceso que se sigue desde C hasta el lenguaje máquina (MikroElektronika.....................82 Figura 40 Circuito para el manejo de un Display de ánodo común................. mientras que sus estudios de secundaria los realizó en el colegio “17 de Septiembre”.. nació el 01 de Enero de 1983.84 ....80 Figura 37 Circuito para manejo de Pulsadores........... SECAP 2006-2008................... Universidad Politécnica Salesiana (UPS) 2011-Presente......... Actualmente cursa sus estudios en la superiores de Ingeniería en Sistemas y Telemática en la “Universidad del Azuay”........78 Figura 34 Flujograma para el manejo de LEDS.... Su amplia experiencia laboral.. Actualmente realiza sus estudios superiores para Ingeniero de Sistemas y Telemática en la “Universidad del Azuay”............. Soluciones de Cableado Estructurado..........................60 Figura 30 Comparativa de Arquitecturas Harvard y Von Neumann...............78 Figura 35 Flujograma para la subrutina de configuración........................................ Experiencia laboral en diseño de páginas web y manejo de base de datos........... 2009-2011... Se ha desarrollado en el ámbito docente desde el 2002 en los siguientes establecimientos: Colegio Daniel Córdova Toral 2002-2006......... 2014)................... Universidad del Azuay (UDA) 2013-Presente......................... Figura 28 Características PIC17CXXX.................... ....... nació el 01 de Enero de 1983.................. nació el 16 de Mayo de 1979 en El Triunfo/Guayas .. Darío Espinoza.................. cursó sus estudios primarios en la ciudad de Azogues en la “Escuela Emilio Abad” y en la “Escuela La Salle”.............. Su principal experiencia radica en el Diseño e Implementación de Sistemas Embebidos para Control y Automatización de Procesos Domóticos e Industriales..................... en las áreas de conocimiento teórico-práctico en: Eléctrica ................................. Experiencia laboral en diseño de páginas web y manejo de base de datos..................................87 Figura 45 Circuito para manejo de sonido.............Ecuador......91 Figura 50 Flujograma para el tratamiento de interrupciones. Danny Noboa........... Soluciones de Cableado Estructurado..Electrónica y Ciencias Exactas....... sus estudios secundarios los realizó en el “ITS Luis Rogerio Gonzales” y en el “Colegio Militar Abdón Calderón”...90 Figura 49 Flujograma para la subrutina de configuración.. se destaca por hitos como Soporte para Servidores.84 Figura 42 Circuito para manejo de LCD.................................94 Figura 53 Flujograma para la subrutina de configuración.......................... Se ha desarrollado en el ámbito docente desde el 2002 en los siguientes establecimientos: Colegio Daniel Córdova Toral 2002-2006..............86 Figura 43 Flujograma de la subrutina de configuración....................... en la ciudad de Milagro/Guayas – Ecuador.... SECAP 2006-2008............................................ 97 Biografías Italo Mogrovejo.. Secundaria “Instituto Técnico Superior Salesiano”.................................92 Figura 51 Flujograma para el tratamiento de la interrupción por cambio de estado................... Universidad Politécnica Salesiana (UPS) 2011-Presente................................................. Universidad del Azuay (UDA) 2013-Presente.88 Figura 47 Flujograma para el manejo de sonidos............................Guía de Microcontroladores Referencias y AnexosTabla 30 Configuración de prescaler 1:64 para el TMR0 en el registro OPTION.. nació el 12 de Agosto de 1990 en la ciudad Cuenca/Azuay – Ecuador.................... Actualmente realiza sus estudios superiores para Ingeniero de Sistemas y Telemática en la “Universidad del Azuay”................................................................... Figura 41 Flujograma para el manejo de Display Ánodo Común..98 ...88 Figura 46 Flujograma para la subrutina de configuración.....................98 Figura 54 Flujograma para atención de interrupciones........ actualmente desarrollando su Tesis “Control Predictivo Generalizado para un Inversor Multinivel en Cascada Basado en Filtro Activo de Potencia”....... Sus estudios primarios los realizó en la escuela “Luis Cordero”..............89 Figura 48 Circuito para el manejo de un teclado matricial y LCD. cursó sus estudios en la ciudad de Cuenca: Primaria “Escuela Padre Carlos Crespi”.......93 Figura 52 Flujograma para el manejo de teclado matricial y LCD. 2009-2011.............. Su amplia experiencia laboral.86 Figura 44 Flujograma para el manejo del LCD...................... mientras que sus estudios de secundaria los realizó en el colegio “17 de Septiembre”.......................................... Actualmente cursa sus estudios en la superiores de Ingeniería en Sistemas y Telemática en la “Universidad del Azuay”................. Soporte técnico y Programación Web.... Superior “Universidad Politécnica Salesiana”............. ............................... se destaca por hitos como Soporte para Servidores............................ 97 Biografías Italo Mogrovejo.......................... Actualmente cursa sus estudios en la superiores de Ingeniería en Sistemas y Telemática en la “Universidad del Azuay”............................................... mientras que sus estudios de secundaria los realizó en el colegio “17 de Septiembre”.......................................... cursó sus estudios en la ciudad de Cuenca: Primaria “Escuela Padre Carlos Crespi”.............6 Tabla 3 Descripción de pines del 8259A..30 Tabla 7 Registro 0x379A del LPT.. Su amplia experiencia laboral...........30 Tabla 8 Pines del Puerto Paralelo........................31 Tabla 9 Conexión para transmisión entre 2 equipos........ en la ciudad de Milagro/Guayas – Ecuador... Secundaria “Instituto Técnico Superior Salesiano”................................ cursó sus estudios primarios en la ciudad de Azogues en la “Escuela Emilio Abad” y en la “Escuela La Salle”...................................... actualmente desarrollando su Tesis “Control Predictivo Generalizado para un Inversor Multinivel en Cascada Basado en Filtro Activo de Potencia”............... Darío Espinoza...................................................... sus estudios secundarios los realizó en el “ITS Luis Rogerio Gonzales” y en el “Colegio Militar Abdón Calderón”............................. Soluciones de Cableado Estructurado..34 Tabla 10 Características Fireware vs USB......................99 Tabla 1 Aparición Computadoras IBM...99 Figura 56 Flujograma del programa principal..Guía de Microcontroladores Referencias y AnexosTabla 30 Configuración de prescaler 1:64 para el TMR0 en el registro OPTION............ Soporte técnico y Programación Web................... Se ha desarrollado en el ámbito docente desde el 2002 en los siguientes establecimientos: Colegio Daniel Córdova Toral 2002-2006............. en las áreas de conocimiento teórico-práctico en: Eléctrica ......... 2009-2011............................................................................................Ecuador....................................................................30 Tabla 6 Registro 0x379 del LPT...... Experiencia laboral en diseño de páginas web y manejo de base de datos............... Superior “Universidad Politécnica Salesiana”...18 Tabla 4 Interrupciones más Comunes................43 ............................................................ Sus estudios primarios los realizó en la escuela “Luis Cordero”.............. Universidad Politécnica Salesiana (UPS) 2011-Presente............................. Danny Noboa........ nació el 16 de Mayo de 1979 en El Triunfo/Guayas ......................Electrónica y Ciencias Exactas... Universidad del Azuay (UDA) 2013-Presente........... SECAP 2006-2008..............5 Tabla 2 Hechos importantes en línea de tiempo para los PC's. Figura 55 Flujograma para atención a las interrupciones TMR0.. Su principal experiencia radica en el Diseño e Implementación de Sistemas Embebidos para Control y Automatización de Procesos Domóticos e Industriales................ nació el 12 de Agosto de 1990 en la ciudad Cuenca/Azuay – Ecuador....................24 Tabla 5 Registro 0x378 del LPT...... Actualmente realiza sus estudios superiores para Ingeniero de Sistemas y Telemática en la “Universidad del Azuay”. nació el 01 de Enero de 1983..................... ................................................ sus estudios secundarios los realizó en el “ITS Luis Rogerio Gonzales” y en el “Colegio Militar Abdón Calderón”................46 Tabla 14 PIC 16F54....... Danny Noboa............. cursó sus estudios primarios en la ciudad de Azogues en la “Escuela Emilio Abad” y en la “Escuela La Salle”......................................... 16F876........................................................................64 Tabla 22 Características PIC18F2550................................................ en las áreas de conocimiento teórico-práctico en: Eléctrica ..................... en la ciudad de Milagro/Guayas – Ecuador.......... SECAP 2006-2008............................. 16F874.63 Tabla 21 Características PIC18F452................................. Soporte técnico y Programación Web..............................53 Tabla 17 Características 16F873.................. 16F877......... Universidad del Azuay (UDA) 2013-Presente..........................66 Tabla 24 Características PIC18F4550.................... actualmente desarrollando su Tesis “Control Predictivo Generalizado para un Inversor Multinivel en Cascada Basado en Filtro Activo de Potencia”............. nació el 12 de Agosto de 1990 en la ciudad Cuenca/Azuay – Ecuador. Darío Espinoza.................. Se ha desarrollado en el ámbito docente desde el 2002 en los siguientes establecimientos: Colegio Daniel Córdova Toral 2002-2006................. Su amplia experiencia laboral........... Su principal experiencia radica en el Diseño e Implementación de Sistemas Embebidos para Control y Automatización de Procesos Domóticos e Industriales..................52 Tabla 16 Características 16F871..55 Tabla 19 Características PIC18F242.......45 Tabla 13 USB Especificaciones.........................Guía de Microcontroladores Referencias y AnexosTabla 30 Configuración de prescaler 1:64 para el TMR0 en el registro OPTION..... 2009-2011....................................... nació el 16 de Mayo de 1979 en El Triunfo/Guayas ........................... 16F59. 16F57.............................. 97 Biografías Italo Mogrovejo...............................................50 Tabla 15 PIC 16F873................................... se destaca por hitos como Soporte para Servidores......... Sus estudios primarios los realizó en la escuela “Luis Cordero”......67 ........ cursó sus estudios en la ciudad de Cuenca: Primaria “Escuela Padre Carlos Crespi”..................................................................... Experiencia laboral en diseño de páginas web y manejo de base de datos.....................................................53 Tabla 18 Características 16F877........................ mientras que sus estudios de secundaria los realizó en el colegio “17 de Septiembre”.....Electrónica y Ciencias Exactas. Secundaria “Instituto Técnico Superior Salesiano”.....................62 Tabla 20 Características PIC18f252.............. Tabla 11 Descripción Física del Cable Tabla 12 Tipos de Conectores......... Superior “Universidad Politécnica Salesiana”...... nació el 01 de Enero de 1983.............................................. Universidad Politécnica Salesiana (UPS) 2011-Presente........ Actualmente realiza sus estudios superiores para Ingeniero de Sistemas y Telemática en la “Universidad del Azuay”.............................. Actualmente cursa sus estudios en la superiores de Ingeniería en Sistemas y Telemática en la “Universidad del Azuay”............................... Soluciones de Cableado Estructurado.................65 Tabla 23 Características PIC18F4550......................Ecuador............................ ....................... en la ciudad de Milagro/Guayas – Ecuador... 2014).................. 97 Biografías Italo Mogrovejo..73 Tabla 27 Cuadro comparativo............... Tabla 25 Características relevantes del PIC16F877 (Microchip.... 2009-2011... Soluciones de Cableado Estructurado...... Experiencia laboral en diseño de páginas web y manejo de base de datos.. en las áreas de conocimiento teórico-práctico en: Eléctrica ................... nació el 01 de Enero de 1983... se destaca por hitos como Soporte para Servidores........ Soporte técnico y Programación Web..... Sus estudios primarios los realizó en la escuela “Luis Cordero”. 2014)...... Danny Noboa............ Ensamblador vs C... cursó sus estudios en la ciudad de Cuenca: Primaria “Escuela Padre Carlos Crespi”..91 Tabla 29 Habilitación de interrupciones TMR0 en el registro INTCON.. Se ha desarrollado en el ámbito docente desde el 2002 en los siguientes establecimientos: Colegio Daniel Córdova Toral 2002-2006.... nació el 12 de Agosto de 1990 en la ciudad Cuenca/Azuay – Ecuador.. para habilitar RBIE.......74 Tabla 28 Configuración del registro INTCON..... mientras que sus estudios de secundaria los realizó en el colegio “17 de Septiembre”. Su amplia experiencia laboral..................... .............97 ....... SECAP 2006-2008....Electrónica y Ciencias Exactas......................... Universidad del Azuay (UDA) 2013-Presente............... (MikroElektronika..... Superior “Universidad Politécnica Salesiana”..... Darío Espinoza................. sus estudios secundarios los realizó en el “ITS Luis Rogerio Gonzales” y en el “Colegio Militar Abdón Calderón”.....Guía de Microcontroladores Referencias y AnexosTabla 30 Configuración de prescaler 1:64 para el TMR0 en el registro OPTION........ Secundaria “Instituto Técnico Superior Salesiano”......................... Actualmente realiza sus estudios superiores para Ingeniero de Sistemas y Telemática en la “Universidad del Azuay”.............. actualmente desarrollando su Tesis “Control Predictivo Generalizado para un Inversor Multinivel en Cascada Basado en Filtro Activo de Potencia”........ 2014).... Universidad Politécnica Salesiana (UPS) 2011-Presente..... Su principal experiencia radica en el Diseño e Implementación de Sistemas Embebidos para Control y Automatización de Procesos Domóticos e Industriales........ 70 Tabla 26 Descripción de Pines del PIC16F877A (Microchip............. cursó sus estudios primarios en la ciudad de Azogues en la “Escuela Emilio Abad” y en la “Escuela La Salle”.Ecuador.. nació el 16 de Mayo de 1979 en El Triunfo/Guayas .. Actualmente cursa sus estudios en la superiores de Ingeniería en Sistemas y Telemática en la “Universidad del Azuay”....
Copyright © 2024 DOKUMEN.SITE Inc.