Documente Academic
Documente Profesional
Documente Cultură
INDICE
UNIDAD 1: INTRODUCCION A LOS MICROCONTROLADORES
QUE ES UN MICROCONTROLADOR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 ARQUITECTURA DE LOS MICROCONTROLADORES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 CARACTERISTICAS DE LOS MICROCONTROLADORES. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 MICROCONTROLADORES INTEL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 MICROCONTROLADORES MOTOROLA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 MICROCONTROLADORES PIC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
RESUMEN
Esta introduccin cubre las definiciones bsicas y caractersticas generales de los micro controladores (MCU). Tomando como elemento de aprendizaje al PIC16F84. Seguidamente, se detalla el procedimiento de cmo elaborar el programa en etapas, primero describiendo el conjunto de instrucciones disponibles y los pasos necesarios para pasar un grabar el programa al micro controlador. Luego, se realizan diversos programas de ejemplo, dividiendo esta gua en temas enfocados a la utilizacin de los recursos que dispone el PIC16F84, elaborando programas que permitan demostrar el uso de los puertos para conectar pulsadores, leds, displays, lcd, teclado, etc. Finalmente, se describen aplicaciones adicionales tales como la conexin con puertos seriales, manejo de interrupciones, y temporizadores.
ASIGNATURA: MICROCONTROLADORES
Formacin Profesional.Desarrollar habilidades y valores que permitan interpretar y analizar el uso de dispositivos micro controladores en diversas aplicaciones electrnicas.
Formacin Productiva.Disear e implementar un proyecto que automatice una aplicacin especfica de mediana complejidad basado en el micro controlador PIC, que interconecte los puertos a diferentes dispositivos como ser mdulos de visualizacin Display y LCD, unidades de entrada como pulsadores y teclado con posibilidad de comunicacin serial con un computador.
Formacin Personal.Desarrollar los trabajos con honestidad y responsabilidad, siguiendo los estndares establecidos en la materia.
ASIGNATURA: MICROCONTROLADORES
CRONOGRAMA DE MODULOS
SESIONES PRESENCIALES Unidad 1 Unidad 2 Unidad 3 Unidad 4 Unidad 5 Unidad 6 Unidad 7 Unidad 8 Unidad 9 Unidad 10 Introduccin a los MCU Microcontrolador PIC 16F84 Horas Horas Tericas Prcticas 4 hrs. 4 hrs. 0 hrs. 0 hrs. 5 hrs. 5 hrs. 5 hrs. 5 hrs. 5 hrs. 5 hrs. 5 hrs. 0 hrs. 35 hrs.
Manejo de Memoria y Puertos 4 hrs. Utilizacin de Recursos del PIC 4 hrs. Uso de los temporizadores Manejo del display de 7-Seg Manejo del LCD Manejo del teclado matricial Manejo de motores PAP Uso de los puertos seriales TOTAL HORAS 4 hrs. 4 hrs. 4 hrs. 4 hrs. 4 hrs. 4 hrs. 40 hrs.
EVALUACION Y ACREDITACION
La evaluacin es continua. El estudiante puede saber su progreso en la realizacin del modulo con solo preguntar al docente. El docente utiliza muchos momentos e instrumentos para evaluar al estudiante de la asignatura. UNIDADES A EVALUAR 1,2,3,4 5,6,7 7,8,9,10 1-10 1-10
mbito Evaluaciones Acumulativas Primer Parcial Segundo Parcial Examen Final Exmenes Cortos Productos Investigacin, Extensin y/o Produccin Trabajos Prcticos TOTAL
Puntaje 75 % 20 % 20 % 25 % 10 % 10 % 10 % 15 % 100 %
ASIGNATURA: MICROCONTROLADORES
40 HORAS TEORICAS
40 HORAS PRCTICAS
PRODUCTOS
PRODUCTO 1
Proyecto de aplicacin basado en el micro controlador con interface a pc
PRODUCTO 2
Proyecto de aplicacin basado en el micro controlador que sea de servicio a la comunidad
INDICADORES Contiene: Propsito formativo. Defensas de laboratorios. Examenes cortos y parciales. Actividades de investigacin. Exposiciones en grupo. Aplicacin de los conocimientos. Participacin activa en clases.
INDICADORES Contiene: El proyecto es original sin violar el derecho de autor de otros proyectos? La aplicacin del proyecto es de beneficio a la sociedad? El proyecto fue elaborado analizando los costos y las mejores alternativas posibles? En caso de aplicarse, el proyecto puede ser implementado de forma factible?
ASIGNATURA: MICROCONTROLADORES
UNIDAD 1
MEMORIA
CPU
UNIDAD E/S
CPU (Central Unit Processor): Es el ncleo de todo el sistema, su tarea es ejecutar las instrucciones del programa que permiten leer y escribir informacin en la unidad E/S y la memoria. Algunas instrucciones del programa involucran sencillas decisiones que causan que se contine ejecutando la prxima instruccin o bien que se la salte pasando a un nuevo punto dentro del programa, usualmente en un MCU hay solo un programa en ejecucin que atiende una aplicacin especfica de control. Internamente un CPU consta de: Unidad de Control: Es la unidad funcional primaria del microprocesador, utiliza seales de reloj para mantener la secuencia apropiada y llevar a cabo la tarea de procesamiento, despus de que cada instruccin ha sido obtenida y decodificada por el microprocesador, la circuitera de control enva las seales apropiadas a los dispositivos internos y externos iniciando la accin de procesamiento de una instruccin. Gua Didctica para Microcontroladores Universidad Evanglica Boliviana Ing. Pablo Zrate A.
UNIDAD 1
Unidad ALU: Es la parte del microprocesador que lleva a cabo las operaciones aritmticas y lgicas en los datos binarios. Como ser sumas, funciones lgicas AND, OR, XOR, complemento, rotaciones, etc. Adems contiene un conjunto de banderas que muestran informacin sobre el resultado de cada operacin. Registros Internos: Son unidades de almacenamiento temporal dentro del CPU, algunos tienen usos especficos y otros son de uso general. Como ser el contador de programa PC, registro de trabajo o acumulador. Memoria: Hay varios tipos de memoria que se utilizan para diversos propsitos. Un MCU consta de una memoria donde se almacena el programa que puede ser del tipo ROM, EPROM, EEPROM, FLASH EEPROM, etc. Y tambin dispone de una memoria de acceso aleatorio RAM donde se almacenan de forma temporal valores utilizados por el programa. Las capacidades de almacenamiento de estas memorias varan en cada modelo de MCU, por lo que uno debe hacer la eleccin correcta que se ajuste a la aplicacin que se elabora. Unidad E/S: Comnmente se refiere a los puertos. La unidad de entrada es la que suministra al MCU la informacin proveniente del mundo exterior mediante interruptores, teclados, sensores y otros dispositivos de captura. Como la informacin que se procesa es digital, algunos modelos de MCU tienen entradas analgicas que digitalizan las seales externas. La unidad de Salida sirve para que el sistema pueda suministrar informacin al mundo exterior a travs de visualizadores luminosos, pantallas numricas o alfanumricas, seales de control, contactores, etc.
PROGRAMA
CPU
DATOS
UNIDAD E/S
Gua Didctica para Microcontroladores Universidad Evanglica Boliviana Ing. Pablo Zrate A.
UNIDAD 1
Arquitectura Von Neumann: En esta arquitectura se utiliza el mismo dispositivo de almacenamiento para las instrucciones y los datos, tcnicamente reduce la interconexin interna al utilizar un solo bus de datos.
PROGRAMA DATOS
CPU
UNIDAD E/S
Computacionalmente la arquitectura del MCU puede ser de tecnologa: RISC (Reduced Instruction Set Computer): Es un MCU con un juego de instrucciones reducido que realizan tareas especficas y simples, tomando un corto tiempo en ejecutarse. Sus caractersticas fundamentales son: o o Instrucciones de tamao fijo. Slo las instrucciones de carga y almacenamiento acceden a la memoria por datos.
RISC es ms rpida, pero ms costosa. Hablando en trminos de costo hay que pensar que RISC utiliza ms la circuitera para ejecutar operaciones directas donde el microprocesador est ms libre de carga. CISC (Complex Instruction Set Computer): Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza por ser muy amplio y permitir operaciones complejas en la memoria o en los registros internos. Este tipo de arquitectura dificulta el paralelismo entre instrucciones, por lo que, en la actualidad, la mayora de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC, llamadas generalmente microinstrucciones, hacindolo ms econmico pero ms lento debido a la carga que soporta el microprocesador.
UNIDAD 1
Memoria de Programa: Es la memoria donde se almacena el cdigo, mientras mayor sea su capacidad (1K-512K) ms cantidad de cdigo puede ser almacenado, actualmente son del tipo FLASH EEPROM que facilitan la reprogramacin a una mayor velocidad y menor consumo de energa. Pero tambin pueden ser del tipo OTP que solo se programa una nica vez, reduciendo el costo econmico en grandes cantidades de produccin. Memoria de Datos: Esta es la memoria de acceso aleatorio y que servir para almacenar valores temporales utilizados por el programa, tiene un tamao mucho menor (1K-64K) que la memoria de programa pero con tiempos de acceso muy rpidos. Memoria de Datos EEPROM: Esta es una memoria de datos no voltil reprogramable por cdigo, su acceso es ms lento que la memoria de datos principal, pero facilita almacenar valores que permanecern intactos en el MCU. Su capacidad es por lo general bastante reducida (64-1K) Voltaje de Operacin: Es el rango de Voltaje en la cual trabaja el MCU. Que van desde los 2V a 5.5V. Actualmente tecnologas de bajo consumo operan en los rangos inferiores 2.2V a 3.6V. Tipo de Encapsulado: Es la presentacin fsica del MCU, un chip integrado en un encapsulado que puede ser DIP (dual in-line plastic) en todas sus variantes, SOIC, SSOP, QFN, DFN, estos ltimos son para montaje en superficie. Pines de E/S: es la cantidad de lneas E/S que dispone el MCU para la conexin al mundo exterior. El modo de operacin entrada-salida puede ser fijo o configurable y Adems pueden ser digitales o analgicas. Perifricos: Adicionalmente los MCU estn provistos de perifricos internos que facilitan las tareas de procesamiento de la informacin, existe una gran variedad de componentes internos y solo detallaremos los ms comunes: o Conversores A/D: Son perifricos encargados de obtener valores analgicos de los puertos de entrada y digitalizarlos para su proceso. Un MCU integra conversores con resolucin que van desde los 8 a 16bits y varios canales de adquisicin. o Temporizadores: Los temporizadores son registros de 8 o 16 bits que pueden ser programados para autoincrementarse a cierta escala, permitiendo generar tiempos exactos dentro del programa. o Comparadores: Estos perifricos tienen la capacidad de comparar uno o ms valores analgicos externos de los puertos de entrada. o Puertos Seriales: Actualmente existen diversos protocolos de comunicacin serial, el objetivo de estos perifricos es permitir la interconexin con dispositivos seriales que utilizan estos protocolos. Existen puertos Seriales Sncronos, Asncronos, I2C, SPI, USB, CAN, Ethernet, etc. Gua Didctica para Microcontroladores Universidad Evanglica Boliviana 4 Ing. Pablo Zrate A.
UNIDAD 1
MICROCONTROLADORES INTEL
La familia de los MCU Intel es variada y se encuentra en diferentes presentaciones son procesadores del tipo CISC con arquitectura Harvard. MCS-48: Fue el primer MCU de Intel que sali en 1976 actualmente est obsoleto, en su poca fue utilizado en sintetizadores analgicos, consolas de juego y teclados para PC IBM, su variantes del 8048 fueron el 8035, 8049, 8748, 8749. MCS-51: Es un MCU desarrollado en 1980 y que fue muy popular hasta 1990 donde fue reemplazado por las versiones mejoradas. Originalmente constaba con un procesador de 8 bits, bus de datos de 8 bits, bus de direcciones de 16 bits, memoria RAM de 128 bytes , Memoria ROM de 4K, 4 puertos bidireccionales, 1 puerto UART, 2 contadores de 16 bits e interrupciones. Las versiones mejoradas llevan al mximo toda su capacidad de direccionamiento con mayor velocidad. MCS-151: Es una versin mejorada en adicin al clsico MCS-51, sus instrucciones y pinout son compatibles con el MCS-51 y MCS-251. Provee compatibilidad hacia atrs y adelante con la lnea MCS, incorpora perifricos comparadores, captura, modulacin, comunicacin serial mejorado, etc. MCS-251: Este MCU es el ms completo de la familia MCS, dispone de un CPU basado en registros de hasta 40 bytes, permitiendo la operacin con datos de 8,16 y 32 bytes. Con 256K de memoria ROM y 16K de memoria RAM es una versin muy por encima del MCS151. La siguiente tabla muestra una comparativa de las principales caractersticas de la familia MCS. MCS-51 Ejecucin Secuencial 12 ciclos por instruccin Basado en acumulador 16 bit Direccionamiento Hasta 64K Memoria ROM Hasta 64K Memoria ROM Hasta 256 byte de pila Instrucciones MCS 51 Instrucciones de 8 bit Bus cdigo de 8 bits Rendimiento 1X MCS-151 Ejecucin Segmentada (Pipeline) 2 ciclos por instruccin Basado en acumulador 16 bit direccionamiento Hasta 64K Memoria ROM Hasta 64K Memoria ROM Hasta 256 byte de pila Instrucciones MCS 51 Instrucciones de 8 bit Bus cdigo de 16 bits Rendimiento 5X MCS-251 Ejecucin Segmentada (Pipeline) 2 ciclos por instruccin Basado en registro hasta 40bytes 18 bit direccionamiento Hasta 16M Memoria RAM y ROM Hasta 16M Memoria RAM y ROM Hasta 64K byte de pila Instrucciones MCS 51 mejorada Instrucciones de 8 bit dato 16-32 Bus cdigo de 16 bits Rendimiento 15X
UNIDAD 1
MICROCONTROLADORES MOTOROLA
Estos MCU siguen la arquitectura Von Neumann, La familia 68HC posee instrucciones de longitud variable y se considera que emplea una arquitectura CISC. Actualmente a partir del 2004 surge Freescale Semiconductor como una divisin de Motorola y fabricante actual de una gran variedad de MCU de 8,16 y 32 bits respectivamente. Los MCU de 8 bits estn clasificados en las siguientes familias RS8, HC8, HC5, HC11 y HCS8. De los cuales destaca el 68HC11 por sus recursos, simplicidad y facilidad de manejo. La siguiente imagen ilustra la composicin del MC68HC11A8.
Motorola describe al 68HC11 como un MCU de 8 bits con frecuencia de bus de 2MHz y una amplia lista de recursos internos. Capaz de ejecutar todas las instrucciones del M6800, M6801 y 91 ms que se han incorporado. A continuacin se ilustra una tabla comparativa de ciertos modelos de la familia HC11 MODELO MC68HC11A8 MC68HC11D3 MC68HC711ED3 MC68HC711E9 MC68HC711E20 RAM 256 192 192 512 768 ROM 8K 4K 0 12K 20K EPROM 0 0 4K 0 0 EEPROM 512 0 0 512 512 RECURSOS 1-TMR, 8-AD,SPI,SCI 1-TMR,SPI,SCI 1-TMR,SPI,SCI 1-TMR, 8-AD,SPI,SCI 1-TMR, 8-AD,SPI,SCI
Actualmente nuevos modelos correspondiente a las familias HC08 incorporan una variada cantidad de perifricos y puertos seriales basado en su procesador CPU08, los modelos de mayor rendimiento corresponden a la familia HCS8 y finalmente la familia RS08 diseado para aplicaciones con menor cantidad de pines en circuito
UNIDAD 1
MICROCONTROLADORES PIC
Son los MCU fabricados por Microchip Technolgy Inc. Muy populares en la actualidad por la gran cantidad de informacin disponible y soporte brindado por microchip a travs de su web y seminarios de entrenamiento. Utilizan Arquitectura con tecnologa RISC Harvard y Actualmente cuenta con una gran variedad de MCU de 8, 16 y 32 bits enfocados para una determinada aplicacin, Actualmente los modelos MCU de 8 bits, estn clasificados como se ilustra en la siguiente imagen.
De acuerdo a esto podemos mencionar 4 gamas de PIC MCU de 8bits. Gama Bsica (Base Line Core): Rendimiento de hasta 5MIPS, 33 instrucciones de 12 bits, Memoria de programa de hasta 3K y datos 144 bytes, Pines de 6 a 40, Fcil uso y bajo costo. Gama Media (Mid Range Core): Rendimiento de hasta 5MIPS, 35 instrucciones de 14 bits, Memoria de programa de hasta 14K y datos 368 bytes, pines de 8 a 64, Excelente balance entre costo e integracin. Gama Media Mejorada (Enhanced Mid Range Core): Rendimiento de hasta 8MIPS, 35 instrucciones de 14 bits, Memoria de programa de hasta 56K y datos 4K , Pines de 8 a 64, Optimizado para programacin en C y reducida latencia de interrupcin. Familia PIC18 (Pic 18 Core): Rendimiento de hasta 16 MIPS optimizadas para C, Memoria de programa de hasta 4M y datos 4K, Pines de 18 a 100, Mejor rendimiento con perifricos avanzados.
UNIDAD 1
El MCU que utilizaremos para el aprendizaje es el popular PIC16F84 de la gama media y familia PIC16F. La siguiente imagen ilustra la arquitectura interna de esta familia.
Actualmente este PIC tiene la revisin A , siendo el modelo PIC16F84A actualmente fabricado por Microchip Technology. Mayores detalles de sus caractersticas pueden obtenerse de la hoja de datos en la documentacin 35007b del sitio web http://www.microchip.com.
IV BIBLIOGRAFIA
Micro-controladores PIC Carlos A. Reyes RISPERGRAF Volumen 2 2006 Curso Introductorio sobre Micro-controladores HC7 HC9 Daniel Di Lella MOTOROLA Curso Avanzado de Micro-controladores PIC CEKIT Micro-controladores MCS-51 MCS-251 Jos Matas Alcal UPC
UNIDAD 2
MICROCONTROLADOR PIC16F84
1Kx14 de memoria de programa FLASH. 68 bytes de memoria RAM. 64 bytes de memoria de datos EEPROM. Opera hasta 20MHz en Rev. A. Pila de 8 niveles para rutinas de llamada. 4 Fuentes de interrupcin. 13 pines de Entrada/Salida TTL/CMOS. Temporizador, Contador de 8 bits.
DESIGNADOR
OSC1/CLKIN OSC2/CLKOUT MCLR RAx RBx VSS VDD
FUNCION Entrada externa para oscilador o cristal Salida para el cristal, en modo RC es una salida divida por 4 Al activarse este pin en bajo la unidad se reinicia Puerto Bidireccional programable Puerto Bidireccional programable Conexin a tierra 0V Fuente de alimentacin 5V
UNIDAD 2
MICROCONTROLADOR PIC16F84
El P1C16F84 puede utilizar cuatro tipos de reloj diferentes: RC. Oscilador con resistencia y condensador. XT. Cristal. HS. Cristal de alta velocidad. LP. Cristal para baja frecuencia y bajo consumo de potencia. La frecuencia de oscilacin (Fosc) indica solo la velocidad de oscilacin del reloj en cualquiera de sus modos. El uso de un cristal garantiza mayor precisin y observando la tabla se puede obtener el valor adecuado de los condensadores C1, C2 que dan mayor estabilidad. En cambio una combinacin resistencia condensador seria una opcin ms econmica y simple en aplicaciones donde no se requiera mucha precisin ni velocidad. MODO LP XT FREC. 32KHz 200KHz 100KHz 2MHz 4MHz 4MHz 20MHz C1/C2 68-100pF 15-33pF 100-150pF 15-33pF 15-33pF 15-33pF 15-33pF
HS
El ciclo de trabajo o ciclo de instruccin (Tcy), es el tiempo que demora ejecutarse una instruccin y puede ser calculado segn la siguiente relacin Tcy=4/Fosc.
UNIDAD 2
MICROCONTROLADOR PIC16F84
La elaboracin de programas en esta gua estar basada en un circuito de entrenamiento y mdulos adicionales. Se entregaran al estudiante el diagrama esquemtico y de circuito impreso para que pueda implementarlos y hacer las prcticas requeridas. TARJETA F84: Circuito Base de entrenamiento que consta de pulsador Reset, Led, Regulador 5V12V y puerto serial RS232. MODULO I/O: Tarjeta con 8 indicadores Led y 3 Pulsadores. MODULO 7 SEGMENTOS: Tarjeta con 2 Display de 7 segmentos y 2 pulsadores. MODULO CONTROL PAP: Tarjeta de control para motor PAP y 3 pulsadores. MODULO LCD: Tarjeta con display LCD.
Una vez iniciado el asistente para creacin de proyectos, este nos guiara por cada ventana donde seleccionaremos la configuracin del proyecto en cuatro pasos detallados a continuacin: 1: Seleccin del dispositivo, se seleccionara PIC16F84 y presionar siguiente 2: Seleccin del lenguaje, se seleccionara Microchip MPASM y presionar siguiente 3: Creacin proyecto nuevo o reconfiguracin, en esta ventana ubicaremos una carpeta de trabajo y escribiremos un nombre Ej. test.mcp para nuestro nuevo proyecto y presionamos siguiente. 4: Adicin de archivos al proyecto, como se trata de un proyecto nuevo solo presionamos siguiente y listo. Gua Didctica para Microcontroladores Universidad Evanglica Boliviana Ing. Pablo Zrate A. 11
UNIDAD 2
MICROCONTROLADOR PIC16F84
Luego nos mostrara una venta indicando que el asistente termino de crear el proyecto y posteriormente se habilitara la ventana de edicin para proyectos. Ahora empezaremos a crear un nuevo archivo de edicin como se observa en la imagen.
Despues nos mostrara una ventana de edicion en blanco y sin titulo, es aqu donde escribiremos el codigo ASM del microcontrolador.
Cabe mencionar que ya sea despus o antes de escribir el cdigo ASM, es necesario guardar el archivo para asignarle un nombre, para ello seleccionamos en el men File -> Save As se abrir un cuadro de dialogo donde escribiremos el nombre Ej.: test.asm de esta manera nuestra ventana de edicin ya tendr un titulo y notaremos que el cdigo estar en colores para facilitar la edicin tal como se observa en la siguiente imagen.
Finalmente debemos agregar este archivo creado al proyecto, para realizar esto debemos ubicar el cursor sobre la carpeta Source Files y con un click derecho nos desplegara la opcin de agregar un archivo al proyecto. Gua Didctica para Microcontroladores Universidad Evanglica Boliviana Ing. Pablo Zrate A. 12
UNIDAD 2
MICROCONTROLADOR PIC16F84
Finalmente escribimos todo el cdigo del programa conformado por instrucciones, directivas, comentarios, definiciones y macros que utilizaremos durante esta gua en la elaboracin de los programas y prcticas que realizaremos en laboratorio durante el transcurso de la materia.
Una vez finalizada la edicin se debe compilar el cdigo y corregir en caso de notificacin de mensajes de error, para realizar esto seleccionamos en el men Project -> Make. Si la compilacin es exitosa, se creara automticamente el archivo HEX en la carpeta de trabajo, finalmente se grabara este archivo HEX en el PIC16F84 utilizando un programador de PIC.
UNIDAD 2
MICROCONTROLADOR PIC16F84
OSC (Oscilador): Es el modo de oscilacin que va a usar el PIC siendo 4 las opciones a elegir RC, LP, XT y HS. Solo es posible seleccionar un modo. WDT (Watchdog Timer): Esta es una capacidad del PIC para auto reiniciarse. Es bastante til y su funcionamiento es sumamente sencillo. Simplemente consta de un registro que debemos borrar cada cierto tiempo. Si transcurrido un cierto tiempo el registro no ha sido borrado el PIC se reinicia. La instruccin para borrar el registro es CLRWDT. Con poner un par de ellos a lo largo de nuestro cdigo es suficiente para tener una garanta de que el PIC no se quede colgado. PWRT (Power Up Reset Timer): Si activamos este FUSE, lo que conseguimos es que se genere un retardo en la inicializacin del PIC. Esto se usa para que la tensin de alimentacin VDD se estabilice, por lo que se recomienda su uso. CP (Code Protect): Habilita la proteccin del cdigo grabado en el PIC impidiendo su lectura, de esta manera no es posible copiar el cdigo existente en el MCU.
UNIDAD 2
MICROCONTROLADOR PIC16F84
El programador Serial JDM es de fcil construccin ya que dispone de pocos elementos utilizando como alimentacin el puerto serial del ordenador. Los detalles del circuito se pueden encontrar en su pgina http://www.jdm.homepage.dk. El Software utilizado para grabar utilizando este programador es el IC-PROG que puede descargarse gratis en http://www.ic-prog.com. Bsicamente debemos seleccionar el modelo de PIC que vamos a utilizar y luego abrir el archivo HEX mediante File -> Open File. Una vez abierto se debe configurar los respectivos FUSES y finalmente grabar el cdigo en el PIC.
Tambin es necesario configurar en el IC-PROG, el puerto y programador que utilizaremos para hacer esto seleccionamos Settings-> Hardware, y buscamos JDM Programmer.
UNIDAD 2
MICROCONTROLADOR PIC16F84
Es necesario habilitar el Driver en caso de utilizar Windows 2000 o Windows XP, para lo cual ser necesario colocar el archivo icprog.sys en la carpeta de instalacin del programa.
UNIDAD 2
MICROCONTROLADOR PIC16F84
Las instrucciones orientadas a bit actan directamente sobre un bit b del registro f y pueden usarse para leer o modificar un bit de forma individual. Ejemplo 1: bcf PORTA,2. Coloca en 0 el pin RA2. Ejemplo 2: btfss PORTA,2. Realiza un salto a la siguiente instruccin si el pin RA2 es 1 INSTRUCCIONES ORIENTADAS A BIT INSTRUCCION OPERACIN BCF f,b Limpiar bit b de f BSF f,b Activar bit b de f BTFSC f,b Probar bit b de f, saltar si cero BTFSS f,b Probar bit b de f, saltar si uno
BANDERAS Tcy 1 1 1 1
Las instrucciones orientadas a byte realizan operaciones lgicas o de carga de registros, operando con los 8 bits de un registro. El resultado de una operacin d puede terminar en el mismo registro f o el registro W. Ejemplo 1: movf PORTB,W . Carga el valor del puerto B al registro de trabajo. Ejemplo 2: movwf PORTB . Carga el valor del registro de trabajo al puerto de salida B. INSTRUCCIONES ORIENTADAS A BYTE INSTRUCCION OPERACION ADDWF f,d Sumar W y f ANDWF f,d AND entre W y f CLRF f Limpiar f CLRW Limpiar W COMF f,d Complementar f DECF f,d Decremento f DECFSZ f,d Decremento f, saltar si cero INCF f,d Incrementar f INCFSZ f,d Incrementar f, saltar si cero IORWF f,d OR entre W y f MOVF f,d Mover f MOVWF f Mover W a F NOP No Operacin RLF f,d Rotar a la izquierda a travs del carry RRF f,d Rotar a la derecha a travs del carry SUBWF f,d Restar W de f SWAPF f,d Intercambiar nibbles de f XORWF f,d OR exclusiva entre W y f
BANDERAS C, DC, Z Z Z Z Z Z Z Z Z
C C C,DC,Z Z
UNIDAD 2
MICROCONTROLADOR PIC16F84
Las instrucciones literales permiten cargar y operar con valores definidos en el registro de trabajo y las de control son utilizadas para llamadas, retorno y saltos en las que intervienen la carga de contador de programa y pilas de manera automtica. Ejemplo: addlw .10. Suma 10 al registro W INSTRUCCIONES LITERALES Y DE CONTROL INSTRUCCIN OPERACIN ADDLW k Sumar literal k a W ANDLW k AND entre k y W CALL k Llamar subrutina CLRWDT Limpiar WDT GOTO K Salta a direccin k IORLW K OR entre k y W MOVLW K Cargar W con literal k RETFIE Retornar de interrupcin RETLW K Retornar y cargar W con k RETURN Retornar de subrutina SLEEP Ir al modo de bajo consumo SUBLW K Restarle k a W XORLW K OR exclusiva entre k y W
-TO,-TD C,DC,Z Z
Tcy 1 1 2 1 2 1 1 2 2 2 1 1 1
Todas las instrucciones se ejecutan en 1 ciclo de instruccin Tcy, a excepcin de las instrucciones de condicin, salto, llamada y retorno que demoran 2 ciclos. Se puede observar que algunas instrucciones modifican bits especficos del registro de estado, estos bits se denominan banderas. Por ejemplo al leer la bandera Z podramos saber si la operacin dio como resultado un 0. Un detalle ms especfico de la operacin de cada instruccin se puede encontrar en la hoja de datos del PIC16F84.
IV BIBLIOGRAFIA
Micro-controladores PIC Carlos A. Reyes RISPERGRAF Volumen 2 2006 Curso Avanzado de Micro-controladores PIC CEKIT Hoja de Datos del Micro-controlador PIC16F84 Microchip 2001
UNIDAD 3
19
UNIDAD 3
La figura anterior nos muestra la arquitectura general del PIC16F84, en ella se pueden apreciar los diferentes bloques que lo componen y la forma en que se conectan. Todos los elementos se conectan entre s por medio de buses. Un bus es un conjunto de lneas que transportan informacin entre dos o ms mdulos. Vale la pena destacar que el PIC16F84 tiene un bloque especial de memoria de datos de 64 bytes del tipo EEPROM, adems de los dos bloques de memoria principales que son el de programa y el de datos o registros. El PIC16F84 se basa en la arquitectura Harvard, en la cual el programa y los datos estn en memorias separadas, lo que posibilita que las instrucciones y datos posean longitudes diferentes. Esta misma estructura es la que permite la superposicin de los ciclos de bsqueda y ejecucin, lo cual se ve reflejado en una mayor velocidad del MCU.
UNIDAD 3
cumplen un propsito especial en el control del MCU y se denominan registros SFR (Special Function Register). Y los 68 siguientes son registros de uso general que se pueden utilizar para guardar los datos temporales que necesita el programa principal. Los registros estn organizados como dos arreglos denominados bancos de 128 posiciones cada una, todas las posiciones se pueden acceder directa o indirectamente a travs del registro FSR. Para seleccionar el banco de registros deseado se utiliza el bit RP0 del registro STATUS, puede observar que los registros PCL, STATUS, FSR, PCLATH e INTCON estn ubicados en ambos bancos debido a que el acceso a estos registros es continuo y necesario.
00h INDF: Registro para direccionamiento indirecto. Utiliza el contenido del FSR y el bit RP0 del registro STATUS para seleccionar indirectamente la memoria de datos. 01h TMR0: Temporizador Contador de 8 bits. Se incrementa con una seal externa aplicada al pin RA4/TOCKI o una seal interna proveniente del MCU. 02h PCL: Contador de programa. Se utiliza para direccionar cada posicin de la memoria de programa donde se encuentra el cdigo con las instrucciones, como el contador de programa tiene un ancho de 13 bits. El primer byte denominado bajo est contenido en el registro PCL. Y los restantes 5 bits en PCH y se puede acceder indirectamente con el registro PCLATH.
21
UNIDAD 3
Durante la ejecucin normal del programa, el registro PCL se incrementa con cada instruccin, a menos que se trate de una instruccin de salto o llamada. En una instruccin call o goto, los bits PC 10:0 se cargan desde el cdigo de operacin de la instruccin, mientras que los bits PC 11:12 lo hacen desde el registro PCLATH 4:3. 03h STATUS: Registro de estado. Contiene el estado aritmtico de la ALU. 81h OPTION: Registro de configuracin mltiple. Posee varios bits para configurar el temporizador, la interrupcin externa y el puerto B.
22
UNIDAD 3
23
UNIDAD 3
El PIC16F84 tiene disponible dos puertos bidireccionales, algunos pines estan multiplexados con funciones alternas de los perifricos. Puerto A: Es un puerto de 5 bits son del tipo TTL, la excepcin es el pin RA4/T0CKI que puede ser configurado como la entrada de una seal externa para el temporizador, adems que la salida es tipo colector abierto. Puerto B: Es un puerto de 8 bits tipo TTL, el pin RB0/INT puede configurarse para una interrupcin externa y en los pines RB4-RB7 se pueden habilitar unas resistencias internas pull-up cuando se requieran entradas de este tipo y tambin puede configurarse la interrupcin ON-CHANGE que detecta cuando una entrada cambio su valor. Estos puertos pueden leerse y escribirse mediante los registros PORTA y PORTB. Pero antes de realizar estas operaciones es necesaria su configuracin. Para esto existen dos registros que permite configurar cada pin de manera individual. 85h TRISA: Registro de configuracin del puerto A, un 0 en el bit correspondiente al pin lo configura como salida y un 1 como entrada. 86h TRISB: Registro de configuracin del puerto B, operacin similar al TRISA Para realizar la configuracin de los registros TRIS es necesario primero acceder al banco 1 de la memoria de datos y una vez terminada la configuracin se deber retornar nuevamente al banco 0 para recin utilizar los puertos. El siguiente ejemplo muestra como configurar y utilizar los puertos correctamente. bsf STATUS,RP0 movlw b00011111 movwf TRISA clrf TRISB bcf STATUS,RP0 movf PORTA,W movwf PORTB ; Selecciona Banco 1 ; Carga el valor binario al registro W ; Configura el Puerto A como entrada ; Configura el Puerto B como salida ; Selecciona Banco 0 ; Lee el Puerto A y lo almacena en el registro W ; Escribe el valor del registro W en el Puerto B
UNIDAD 3
list p=16F84 ;Identifica el tipo de MCU utilizado #include "P16F84.INC";Incluye la lista de definiciones para el PIC _a equ 0x0c ; define la direccin del registro _a _b equ 0x0d ; define la direccin del registro _b _r equ 0x0e ; define la direccin del registro _r org .0 ;el cdigo se almacena desde la direccin 0x000 en la ROM goto inicio ;Salta a inicio que empieza en la direccin 0x005 de la ROM org .5 ;el cdigo se almacena desde la direccin 0x005 en la ROM inicio movlw .5 ;carga el valor 5 al registro W W=5 movwf _a ;mueve el valor de W al registro _a _a=5 movlw .15 ;carga el valor de 15 al registro W W=15 movwf _b ;mueve el valor de W al registro _b _b=15 movf _a,W ;mueve el valor del registro _a al registro W W=5 addwf _b,W ;suma el valor del registro _b y W, el resultado se guarda en W=20 movwf _r ;mueve el valor del registro W a _r _r=20 end
25
UNIDAD 3
26
UNIDAD 3
;Lectura de un dato de la memoria EEPROM movlw .10 ;Cargo el valor 10 al registro W movwf EEADR ;La direccin EEPROM es W bsf STATUS,RP0 ;Seleccionar banco 1 bsf EECON1,RD ;Inicia la lectura de la memoria EEPROM bcf STATUS,RP0 ;Seleccionar banco 0 movf EEDATA,W ;Mueve el valor el dato EEPROM a W ; Escritura de un dato EEDATA en la direccin EEADR de la EEPROM bsf STATUS,RP0 ;Selecciona banco 1 bsf EECON1,WREN ;Habilita la escritura en la memoria EEPROM movlw 0x55 ;Carga 55h al registro W movwf EECON2 ;EECON2=55h requerido para escritura movlw 0xAA ;Carga AAh al registro W movwf EECON2 ;EECON2=AAh requerido para escritura bsf EECON1,WR ;Iniciar la escritura en la memoria esperar btfsc EECON1,EEIF ;Verifica si finalizo escritura y salta goto esperar ;Repite condicin hasta terminar
IV BIBLIOGRAFIA
Micro-controladores PIC Carlos A. Reyes RISPERGRAF Volumen 2 2006 Curso Avanzado de Micro-controladores PIC CEKIT Hoja de Datos del Micro-controlador PIC16F84 Microchip 2001
27
UNIDAD 4
28
UNIDAD 4
29
UNIDAD 4
Comentarios: Son textos que se utilizan para explicar las diferentes operaciones de cada lnea en el programa, todo comentario empieza con ;. Facilitan el trabajo del programador. Etiquetas: Son utilizados para representar una lnea, grupo de cdigo o un valor constante que son utilizadas en las instrucciones de salto y llamada. Neumonicos: Son las instrucciones o comandos que se ejecutaran en el MCU. Directivas: Son comandos de ensamblador que no se traducen en instrucciones para el MCU. Es decir son las operaciones que el compilador MPASM utilizara para generar el archivo HEX. Macros: Es un conjunto de instrucciones y directivas definidas por el usuario y que pueden evaluarse lnea a lnea junto al cdigo ASM siempre que el macro sea incluido.
;Salto a etiqueta inicio ;Declaracin etiqueta inicio ; Selecciona el banco 1 ; Coloca el valor 255 al registro de trabajo ; Configura todo el Puerto A como entrada ; Configura todo el Puerto B como entrada ;Declaracin etiqueta repetir ; Selecciona banco 0 ; Llama a subrutina suma ; salto a repetir ;Declaracin etiqueta suma ; Carga el valor del puerto A al registro W ; Suma el Puerto B y W, el resultado est en W ; Mueve el valor de W al registro result
30
UNIDAD 4
31
UNIDAD 4
0Bh INTCON: Contiene las banderas de las interrupciones y bits de activacin individual de las interrupciones, solo la bandera de finalizacin de escritura en la memoria EEPROM se encuentra en EECON1. Cuando una interrupcin atendida, el bit GIE se coloca automticamente en 0, para evitar interferencias con otras interrupciones que se pudieran presentar, la direccin de retorno se coloca en la pila y el PC se carga con la direccin 04h. Una vez en la rutina de servicio, la fuente de la interrupcin se puede determinar examinando las banderas de interrupcin. La bandera respectiva se debe colocar por software, en cero antes de regresar de la interrupcin, para evitar que se vuelva a detectar nuevamente la misma interrupcin. La instruccin RETFIE permite al usuario retornar, a la vez que habilita de nuevo las interrupciones GIE. Debe tomarse en cuenta que solo el contador es puesto en la pila cuando se atiende una interrupcin, por lo tanto es conveniente que el programador guarde los STATUS y W para evitar resultados inesperados.
; Saltar a etiqueta inicio ; Almacena el cdigo desde la direccin 004h ; Verifica si es una interrupcin externa ; No es interrupcin externa y a final ; Subrutina que espera 10ms ; Verifica estado del pulsador en RB0 ; Si est presionado el pulsador, activa el led
32
UNIDAD 4 inicio
bsf STATUS,RP0 ; Selecciona banco 1 clrf TRISA ; Configura Puerto A como salida movlw 0x01 movwf TRISB ; Configura pin RB0 como entrada bcf OPTION_REG,INTEDG; Activa el flanco descendente bcf STATUS,RP0 ; Selecciona banco 0 bsf INTCON,INTE ; Activa la interrupcin externa bsf INTCON,GIE ; Activa la interrupcin global bucle goto bucle end
IV BIBLIOGRAFIA
Micro-controladores PIC Carlos A. Reyes RISPERGRAF Volumen 2 2006 Curso Avanzado de Micro-controladores PIC CEKIT Hoja de Datos del Micro-controlador PIC16F84 Microchip 2001
33
UNIDAD 5
Es importante recordar que en todos los ejemplos citados en esta gua, se considera utilizar un cristal de 4MHz, por lo tanto el tiempo que demora la ejecucin de una instruccin Tcy=1uS.
34
UNIDAD 5
Los impulsos de entrada del temporizador pueden ser externos mediante el pin RA4/T0CK1 o bien de una seal de reloj interno, de forma que puede funcionar de dos modos distintos: Contador de impulsos que entran por RA4/T0CK1, se programa el bit T0SE del registro OPTION, si T0SE=1 el flanco es descendente y si T0SE=0 el flanco es ascendente. Como temporizador de tiempos, se cuentan los impulsos de la frecuencia, teniendo en cuenta que un ciclo de maquina ocupa 4 ciclos del cristal oscilador, el MCU tiene la posibilidad de utilizar un divisor de frecuencia llamado PRESCALER. El divisor PRESCALER puede ser asignado al TMR0 o al WDT(Watch Dog Timer), mediante el bit PSA. Para configurar el modo contador o temporizador hay que acceder al registro OPTION y actuar sobre el bit T0CS, si T0CS=1 el TMR0 acta como contador y caso contrario acta como temporizador. El WDT demora un tiempo tpico de 18ms antes de reiniciar el MCU, es posible ampliar este tiempo utilizando el PRESCALER mediante el bit PSA=0 para obtener tiempos de hasta 2,3Seg. retardo_10ms: movlw .256-.40 bcf INTCON,T0IF movwf TMR0 retardo_10ms_1: btfss INTCON,T0IF goto retardo_10ms_1 return ;retardo de 10ms usando el TMR0 ;Total (256*40)=10,240ms ;Borra o inicia la bandera del TMR0 ;Carga el valor inicial a TMR0 ;
35
UNIDAD 5
El siguiente programa ilustra la forma de cmo utilizar el temporizador mediante la rutina ISR para el circuito base, que encender y apagara el led D2 cada 0,5seg. Title Retardo con TMR0 list p=16F84 #include "P16F84.INC" var_t0 equ 0x0c org 0 goto inicio org 4 btfss INTCON,T0IF goto final decfsz var_t0,1 goto int_noesz btfss PORTA,4 goto encender_led bcf PORTA,4 goto seguir encender_led bsf PORTA,4 seguir movlw .50 movwf var_t0 int_noesz movlw .255-.39 movwf TMR0 final bcf INTCON,T0IF retfie inicio bsf STATUS,RP0 clrf TRISA movlw b'11000111' movwf OPTION_REG bcf STATUS,RP0 movlw b'00100000' movwf INTCON movlw .50 movwf var_t0 movlw .256-.39 movwf TMR0 bsf INTCON,GIE inicio_bucle goto inicio_bucle end
; Verifica si es una interrupcin TMR0 ; Si T0IF=0 , salta al final y termina ; Si T0IF=1, decrementa la variable y salta si es 0 ; Salto a etiqueta si no es 0 la variable ; Verifica si el led esta encendido ; Si est apagado, salta a etiqueta ; Apaga el led ; Enciende el led ; Carga valor para conteo 50x10ms=500ms ; Carga valor a la variable ; Ajuste valor para retardo 10ms ; 1uSx256x39=10mS ; Limpia la bandera del temporizador ; Sale de rutina ISR ; Selecciona banco 1 ; Configura el Puerto A como salida ; Asigna el Preescaler a T0 con 1:256 ; Configura el registro OPTION ; Selecciona banco 0 ; Activa la interrupcin T0IE ; Inicializa la variable en 50 ; Carga el valor para retardo 50x10ms=500ms ; Carga Valor para retardo 10ms ; Activa la interrupcin global ; Repetir bucle
36
UNIDAD 5
IV BIBLIOGRAFIA
Micro-controladores PIC Carlos A. Reyes RISPERGRAF Volumen 2 2006 Curso Avanzado de Micro-controladores PIC CEKIT Hoja de Datos del Micro-controlador PIC16F84 Microchip 2001
37
UNIDAD 6
Excelente Solidez. Angulo de visibilidad 150 grados. Bajo Consumo 150 mW. Vida media en horas: 100000. Buena luminosidad. Alto contraste. Conector con pines Rpida respuesta Facilidad de montaje Voltaje de operacin: 1,5 V
El voltaje de operacin VCC depende del color del Led. Para un color rojo por ejemplo lo comn es 1,7V-2V. Dependiendo de la tensin aplicada obtendremos una intensidad. Es aconsejable no sobrepasar el VCC recomendado. Si se alcanza la VCC mxima se puede destruir el segmento. Cada segmento y el punto es un Led como cualquier otro. Debido a esto la corriente media que se debe aplicar es de 15mA. Dependiendo de la lgica que estemos empleando debemos utilizar una resistencia por cada entrada y as no forzar el dispositivo. Esta resistencia se denomina resistencia limitadora y un valor aconsejable seria 220 ohm en lgica TTL (5V) y 680 ohm en lgica CMOS (12V), la resistencia limitadora debe estar situada en cada pin haciendo un puente entre la seal lgica de excitacin y el segmento correspondiente al display Gua Didctica para Microcontroladores Universidad Evanglica Boliviana 38 Ing. Pablo Zrate A.
UNIDAD 6
Una de las aplicaciones ms populares de los Led es la de sealizacin y quizs la ms utilizada sea la del Display de 7 segmentos colocados en forma de ocho. Aunque externamente su forma difiere considerablemente de un diodo Led tpico, internamente estn constituidos por diodos Led con unas determinadas conexiones internas. En la siguiente figura se indica el esquema elctrico de las conexiones del interior de un indicador luminoso de 7 segmentos. De acuerdo a su arreglo interno pueden clasificarse en dos tipos: nodo comn y Ctodo comn.
Un display contiene siete LED rectangulares en el que cada uno recibe el nombre de segmento porque forma parte del smbolo que est mostrando. Con un indicador de siete segmentos se pueden formar los dgitos del 0 al 9, tambin las letras a, c, e y f y las letras minsculas b y d. Polarizando los diferentes diodos, se iluminaran los segmentos correspondientes. El ctodo comn CC se refiere a que el extremo ctodo de cada segmento est conectado a un punto comn y nodo comn CA es cuando el punto comn est conectado al extremo nodo de cada segmento. Observe que la polarizacin correcta ser diferente para CC y CA
39
UNIDAD 6
contiene 2 display de 7 segmentos D1-D2 conectados al MCU a travs del puerto B, si observa el circuito esquemtico notara que se utilizan resistencias limitadoras de 220 Ohm con lo cual se tendr una corriente de 22mA por segmento, cabe recordar que el PIC16F84 es capaz de suministrar hasta 25mA por pin lo que posibilita la conexin directa al Display, caso contrario tendramos que utilizar un Driver como el ULN2003 o ULN2004. Tambin puede observar que la terminal CC de cada display se conecta al colector de un transistor NPN, cuya finalidad es de activar o desactivar y de esta forma poder conectar varios display a un solo bus de datos manteniendo activo un solo display en un determinado momento.
40
UNIDAD 6
La llamada a la rutina Display que se observa en la imagen de arriba, devuelve como resultado en el registro W el cdigo binario que representara un nmero decimal del 0 al 9. Este nmero debe ser cargado previamente en el registro W antes de la llamada a Display. list p=16F84; #include "P16F84.INC" num equ 0x0c ; declaracin variable num t0 equ 0x0e ; declaracin variable t0 org 0 goto inicio org 5 inicio: clrf num ; inicializar num=0 bcf STATUS,RP0 ;seleccionar banco 0 clrf PORTA ;inicializar PORTA clrf PORTB ;inicializar PORTB bsf STATUS,RP0 ;seleccionar banco 1 clrf TRISA ;configura puerto A como salida clrf TRISB ;configuro puerto B como salida movlw b'11010111' ;configuro Prescalar 1:256 movwf OPTION_REG bcf STATUS,RP0 ;selecciono banco 0 bsf PORTA,D1 ;activa el Display inicio_bucle movf num,W ;carga el valor del numero a W call Display ;muestra el numero en el Display movwf PORTB call retardo_seg;esperar 1seg incf num,W ;incrementar el numero movwf num sublw .9 ;verificar si el numero es mayor a 9 btfss STATUS,C clrf num ; sin num es mayor a 9 => num =0 goto inicio_bucle
41
UNIDAD 6
Un barrido a una determinada frecuencia activara y desactivara uno a uno los Diplays conectados hacindolo imperceptible a la vista del ser humano. En el esquema del modulo DISPLAY 7 SEG se puede ver la manera de cmo interconectar dos Display tipo ctodo comn donde cada modulo se activa solo si el transistor es polarizado en su base con un nivel lgico 1. El consumo de energa seguir siendo el mismo que utilizando un Display de forma directa, puesto que solo se enciende un Display en un determinado tiempo. Lo que si ser notable es el brillo que se reducir al utilizar mayor cantidad de Display. En la prctica se demostrara la utilizacin de esta tcnica para un contador del 00-99 que se incrementara cada cierto tiempo ajustado por cdigo.
IV BIBLIOGRAFIA
Micro-controladores PIC Carlos A. Reyes RISPERGRAF Volumen 2 2006 Curso Avanzado de Micro-controladores PIC CEKIT Hoja de Datos del Micro-controlador PIC16F84 Microchip 2001. Esquemticos y Hoja de datos FUTURLEC
42
UNIDAD 7
Un menor consumo de corriente. Visualizar caracteres alfanumricos. Fcil interconexin con el MCU. Presentaciones 2x16, 2x20, etc. Modos de operacin 4-8 bits. Comportamiento configurable.
Para nuestro caso trabajaremos con un display de 2x16 lneas basado en el controlador HD44780 y LM032 de Hitachi, este modulo de bajo costo se consigue fcilmente en el comercio y tiene un tamao suficiente para la mayora de las aplicaciones.
43
Bus de datos nodo diodo de retro iluminacin Ctodo del diodo de retro iluminacin
Los display disponen de 2 modos de operacin: Bus de 8-bit donde los datos byte son transferidos en un solo ciclo. Bus de 4-bit donde se requiere dos ciclos para transferir un byte de datos. Para nuestro caso de aprendizaje utilizaremos el LCD en modo 4-bit implentado en el MODULO LCD y la tarjeta base F84, de esta manera la conexin fisica con el PIC16F84 utilizaria 8 pines para el bus de datos y de control. Observe el circuito y notara que el bus de datos DB4-DB7 conecta al puerto RB4-RB7 y el bus de control RB1-RB3, ademas son necesarios algunos componentes extras para la operacin del dispositivo.
44
UNIDAD 7 INSTRUCCION
Clear Display Return Home Entry Mode Display On/Off Cursor Shift Function Set Set CGRAM Set DDRAM
RW 0 0 0 0 0 0 0 0 1 0 1
Function Set: Establece el tamao del bus de datos, numero de lneas y tipo de caracteres. DL: Modo 8 Bits DL=1, Modo 4 Bits DL=0. N: Dos lneas N=1, Una sola lnea N=0. F: Caracteres de 5x10 puntos F=1, Caracteres de 5x7 puntos F=0. Set CGRAM Address: El LCD adems de tener definido todos los caracteres ASCII, permite al usuario definir 4 u 8 caracteres grficos. La composicin de estos caracteres se va guardando en una memoria llamada CGRAM con capacidad para 64 bytes, cada carcter grafico definido por el usuario se compone de 16 o 6 bytes que se almacenan en sucesivas posiciones de la CGRAM. Mediante esta instruccin se establece la direccin AG7-AG0 de la CGRAM a partir de la cual se irn almacenando los bytes que definan un carcter grafico. Una vez ejecutada esta instruccin todos los datos que se escriban o lean posteriormente, lo hacen desde la memoria CGRAM. Set DDRAM Address: Los caracteres o datos que se van visualizando, se van almacenando previamente en una memoria llamada DDRAM para de aqu pasar a la pantalla. Mediante esta instruccin se establece la direccin AD7-AD0 de la memoria DDRAM a partir de la cual se irn almacenando los datos a visualizar. Ejecutando esta instruccin todos los datos que se escriban o lean posteriormente ser desde esta memoria DDRAM. Las direcciones 0x00-0x0F corresponden con los 16 caracteres del primer rengln y de la 0x40-0x4F corresponden al segundo rengln. Read Busy Flag: La ejecucin de una instruccin en el LCD demora un determinado tiempo, durante este lapso no se debe mandar ninguna otra instruccin. Para ello dispone de una bandera ocupado (BF) que indica que se est ejecutando una instruccin previa. Esta instruccin de lectura informa del estado de la bandera BF y tambin proporciona el valor del contador de direcciones AC7-AC0 de la CGRAM o de la DDRAM segn la ltima que se haya empleado.
45
UNIDAD 7
Write Data CG DDRAM: Mediante esta instruccin se escribe en la memoria DDRAM los datos que se quieren presentar en pantalla y que sern los diferentes cdigos ASCII de los caracteres a visualizar. Igualmente se escribe en la memoria CGRAM los diferentes bytes que permiten confeccionar caracteres grficos a gusto del usuario. El escribir en uno u otro tipo de memoria depende de si se ha empleado previamente la instruccin de direccionamiento DDRAM o CGRAM. Read Data CG DDRAM: Mediante esta instruccin se lee de la memoria DDRAM los datos que estn almacenados y que sern los cdigos ASCII de los caracteres visualizados. Igualmente se lee de la memoria CGRAM los diferentes bytes con los que se confecciono un determinado carcter. La inicializacin del LCD requiere una secuencia de comandos de 8-bit o 4-bit de longitud esperando un determinado tiempo entre cada comando, a continuacin se detalla la secuencia de inicio requerida en modo 8-bit y tambin en modo 4-bit para el modulo LCD del circuito conectado al PIC16F84.
INICIALIZACION DEL LCD MODO 8-BIT DESPUES DE 15mS CONECTADO A VDD
COMANDO
RS Comando 0 Comando 0 Comando 0 Function Set 0 Display On/Off 0 Clear Display 0 Entry Mode 0
RW 0 0 0 0 0 0 0
D7 0 0 0 0 0 0 0
D6 0 0 0 0 0 0 0
D5 1 1 1 1 0 0 0
D4 1 1 1 DL 0 0 0
D3 N 1 0 0
D2 F D 0 1
D1 C 0 ID
D0 B 1 S
Esperar 4.5ms Esperar 100uS DL=1 8-bit Control del Display D=0 Off Limpia el Display Inicia Cursor y Direccin
La siguiente tabla indica la secuencia necesaria para operar en modo 4-Bit, donde los pines D3-D0 no son utilizados fsicamente en el circuito. En este modo para enviar un dato byte al bus se requieren dos ciclos de escritura donde primero se enva el nible alto y despus el nible bajo.
INICIALIZACION DEL LCD MODO 4-BIT DESPUES DE 15mS CONECTADO A VDD
COMANDO
RS Comando 0 Comando 0 Comando 0 Function Set 0 Function Set 0 Display On/Off 0 Display On/Off 0 Clear Display 0 Clear Display 0 Entry Mode 0 Entry Mode 0
RW 0 0 0 0 0 0 0 0 0 0 0
D7 0 0 0 0 N 0 1 0 0 0 0
D6 0 0 0 0 F 0 D 0 0 0 1
D5 1 1 1 1 0 C 0 0 0 ID
D4 D3 D2 D1 D0 Esperar 4.5ms 1 Esperar 100uS 1 1 DL=0 4-bit DL 0 Control D=0 Off, C=0, B=0 B 0 Limpia el Display 1 0 Inicia Cursor y Direccin S
46
UNIDAD 7
;El comando esta en W ;Modo escritura ;Modo comando ;Habilita el display, pulso requerido
47
UNIDAD 7
lcd_ocupado: bsf PORTA,RW bcf PORTA,RS bsf STATUS,RP0 movlw 0xff movwf TRISB bcf STATUS,RP0 bsf PORTA,EN btfsc PORTB,7 goto $-1 bcf PORTA,EN bcf PORTA,RW bsf STATUS,RP0 clrf TRISB bcf STATUS,RP0 return lcd_mostrar: movf dir,W call Tabla andlw 0xff btfsc STATUS,Z return call lcd_char incf dir goto lcd_mostrar
;Modo lectura ;Modo comando ;Seleccin banco 1 ;Configura el Puerto B como entrada ;Habilita el display, pulso requerido ;Verifica y salta si el LCD no est ocupado
;Muestra los datos de la memoria ;Dir tiene la direccin offset del mensaje ;Verificar si es fin del mensaje, carcter nulo.
48
UNIDAD 7 inicio: bsf STATUS,RP0 movlw b'11000111' movwf OPTION_REG clrf TRISB bcf STATUS,RP0 call retardo_seg call lcd_ini call retardo_5ms call lcd_ini call retardo_100us call lcd_ini movlw b'00101000' call lcd_cmd movlw b'00000001' call lcd_cmd movlw b'00001111' call lcd_cmd movlw b'00000110' call lcd_cmd movlw Texto movwf dir call lcd_mostrar end
;No Pull-up, Prescaler 256 ;Puerto B como salida Tabla: Mensaje movwf PCL retlw 'M' retlw 'a' retlw 'n' retlw 'e retlw 'j' retlw 'o' retlw ' ' retlw 'L retlw 'C' retlw 'D' retlw 0
IV BIBLIOGRAFIA
Micro-controladores PIC Carlos A. Reyes RISPERGRAF Volumen 2 2006 Curso Avanzado de Micro-controladores PIC CEKIT Hoja de Datos del Micro-controlador PIC16F84 Microchip 2001. Esquemticos y Hoja de datos FUTURLEC
49
UNIDAD 8
50
UNIDAD 8
Lo anterior se logra rotando un valor lgico ya sea 1 o 0 en cada una de las lneas configuradas como salidas e inmediatamente despus de leer el estado lgico de las lneas conectadas como entrada. Cuando el valor lgico que se rota es un 1 la programacin es comnmente denominada walking ones y walking zeros cuando se trata de un 0.
51
UNIDAD 8
KeyCode: Obtiene el valor real de la tecla presionada, la codificacin se realiza por tabla en funcin del resultado que se obtuvo con ScanPad. De acuerdo al requerimiento de la aplicacin la conversin puede ser en valores decimales o caracteres ASCII. Tecla 1 2 3 4 5 6 7 8 9 * 0 # Valor Binario 00011000 00010100 00010010 00101000 00100100 00100010 01001000 01000100 01000010 10001000 10000100 10000010 Valor Hex 0x18 0x14 0x12 0x28 0x24 0x22 0x48 0x44 0x42 0x88 0x84 0x82 Tabla: addwf retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw PCL, F 0x84; tecla 0 0x18; tecla 1 0x14; tecla 2 0x12; tecla 3 0x28; tecla 4 0x24; tecla 5 0x22; tecla 6 0x48; tecla 7 0x44; tecla 8 0x42; tecla 9 0x88; tecla * 0x82; tecla #
Utilizando las rutinas ScanPad y KeyCode crearemos el cdigo ASM necesario para mostrar en los diodos Led los valores en binario de la tecla presionada.Es importante mencionar que una vez iniciado los puertos el programa escanea hasta que se presione una tecla, visualiza su valor en los led y vuelve a realizar el proceso de manera continua, este mtodo tambin es comnmente llamado Polling. Otra manera de poder realizar una lectura sin tener que llamar a la funcin continuamente es mediante la interrupcin por cambio de estado RBIE en los pines RB4-RB7, cuando una tecla es presionada habr un cambio en cualquiera de los pines de entrada generando una interrupcin RBIF, la rutina ISR(Interrupt Service Routine) o de servicio a la interrupcin deber proceder a leer el teclado llamando a ScanPad. list p=16F84; include "P16F84.INC" col equ 0x0f row equ 0x10 result equ 0x11 count equ 0x12 org 0 goto inicio org 5 inicio: bsf STATUS,RP0 clrf TRISA movlw b'11110000' movwf TRISB
52
UNIDAD 8
movlw b'01010111' ;Activo resistencias pull-up movwf OPTION_REG bcf STATUS,RP0 ;Selecciono banco 0 clrf PORTA movlw b'00001111' movwf PORTB inicio_bucle call retardo_seg call ScanPad ;ScanPad devuelve el resultado en binario call KeyCode ;Decodifica el resultado movf PORTA,W andlw b'11110000' ;Enmascara el nible alto del Puerto A iorwf result,W movwf PORTA ;Refleja el resultado en RA3-RA0 goto inicio_bucle ScanPad: movlw .3 movwf count movlw b'11111101' ;No hay C4 movwf col nextcol movf col,W movwf PORTB btfss PORTB,4 goto keyon ;Pulsador presionado en fila 1 btfss PORTB,5 goto keyon ;Pulsador presionado en fila 2 btfss PORTB,6 goto keyon ;Pulsador presionado en fila 3 btfss PORTB,7 goto keyon ;Pulsador presionado en fila 4 bsf STATUS,C rlf col,F ;Walking Zeros call retardo_10m decfsz count goto nextcol ;Repetir con la siguiente columna goto ScanPad ;Repetir secuencia de barrido keyon movf PORTB,W movwf row ;Guardar estado PORTB en row keyrelease movf PORTB,W subwf row,W btfsc STATUS,Z ;Saltar si tecla no est presionada goto keyrelease ;Esperar mientras se presiona
53
UNIDAD 8
movlw 0x0f andwf col,F movf row,W andlw 0xf0 iorwf col,W movwf result comf result,F
;Convierte a R4-R3-R2-R1-C3-C2-C1-RB0
return KeyCode: movlw .9 ;Solo decodifica las teclas del 0-9 movwf count KeyCode_b movf count,W call Tabla ;Llama a la tabla de valores para comparacin subwf result,W btfsc STATUS,Z;Si result es igual al valor de tabla no saltar goto KeyCode_a decfsz count,F ;Decrementar count goto KeyCode_b KeyCode_a movf count,W movwf result return
IV BIBLIOGRAFIA
Micro-controladores PIC Carlos A. Reyes RISPERGRAF Volumen 2 2006 Curso Avanzado de Micro-controladores PIC CEKIT Hoja de Datos del Micro-controlador PIC16F84 Microchip 2001. Esquemticos y Hoja de datos FUTURLEC
54
UNIDAD 9
Los parmetros a considerar para la correcta la eleccin de un motor PAP son principalmente: El tipo de motor PAP, la tensin de operacin, el ngulo de paso y la resistencia elctrica de las bobinas. Existen tres tipos de motor paso a paso que son los Unipolares, Bipolares y Universales, este ltimo puede operar en ambos modos dependiendo de su instalacin, en esta gua haremos mencin a los dos primeros que son los ms utilizados actualmente.
55
UNIDAD 9
MOTORES UNIPOLARES: El motor unipolar consta de 4 bobinas internas que pueden activarse o desactivarse individualmente, con una determinada secuencia de control conseguiremos realizar los giros a diferentes velocidades, fsicamente tienen 5 o 6 cables de los cuales 4 conectan a un extremo de cada bobina y los restantes son el punto comn de todas. A continuacin ilustraremos la secuencia necesaria para realizar los giros en este tipo de motor.
A UNIPOLAR PASO COMPLETO B Q4 Q2 Q3 Q1 HEX
+ +
A
+ + z + + + z -
1 0 0 1 1 1 0 0 0 0 0 1
1 1 0 0 0 1 1 1 0 0 0 0
0 1 1 0 0 0 0 1 1 1 0 0
0 0 1 1 0 0 0 0 0 1 1 1
z z + + +
MOTORES BIPOLARES: Este motor est compuesto de dos bobinas y el movimiento se consigue cambiando la direccin de la corriente que circula por cada una. Para lograr esto es necesaria la utilizacin de diodos para conformar un puente en H y transistores para cada devanado, fsicamente dispone de 4 cables que conectan al extremo de cada bobina. Seguidamente se ilustra la secuencia de control necesaria para la operacin de este motor
A B Q1 Q3 Q2 Q4 Q6 Q8 Q5 Q7 HEX
0 0 + + +
0 + + + 0 -
0 0 0 0 0 1 1 1
0 0 0 1 1 1 0 0
0 1 1 1 0 0 0 0
1 1 0 0 0 0 0 1
0 0 0 0 0 1 1 1
0 0 0 1 1 1 0 0
0 1 1 1 0 0 0 0
1 1 0 0 0 0 0 1
56
UNIDAD 9
RB1-RB4 activamos cada unos de los transistores, Aplicando la secuencia ilustrada anteriormente en la tabla lograremos realizar los giros y con frecuencia de cambio controlaremos la velocidad de giro. Utilizaremos los pulsadores P1-P3 para indicar el sentido de giro. El motor unipolar puede trabajar a paso medio o paso completo, el paso completo ofrece ms fuerza debido a que siempre estn polarizadas ambas bobinas por contraparte el paso medio brinda menor desplazamiento o ngulo de giro en caso de requerir mayor precisin. Iniciaremos en esta seccin con la configuracin de un motor a paso completo, Y la conexin del motor al modulo segn el diagrama de circuito es la siguiente: Fase 1 = Bobina A+ Controlado por Q1 RB1 Fase 2 = Bobina A Controlado por Q3 RB2 Fase 3 = Bobina B+ Controlado por Q2 RB3 Fase 4 = Bobina B Controlador por Q4 RB4 Para paso completo la secuencia RB4-RB1 para el movimiento es: 1100-0110-0011-1001 y para cambiar el sentido de giro seria: 1001-0011-0110-1100. list p=16F84 r=hex ;Definimos el tipo de MCU a utilizar include "P16F84.INC" ;Incluimos la lista de definiciones SW1 equ RB5 ;Pulsador 1 SW3 equ RB7 ;Pulsador 3 t0 equ 0Ch org 0 goto inicio org 5 inicio bcf STATUS,RP0 ;Seleccionar banco 0 clrf PORTA ;Limpiar Puerto A clrf PORTB ;Limpiar Puerto B bsf STATUS,RP0 ;Seleccionar banco 1 movlw b'01000111' ;Preescaler=256 y Pull-up on movwf OPTION_REG movlw b'00001111' movwf TRISA ;Configurar Puerto A movlw b'11100001' ;Configurar Puerto B movwf TRISB bcf STATUS,RP0 ;Seleccionar banco 0 inicio_bucle btfss PORTB,SW1 ;Verifica si se presiona SW1 call izquierda ;Giro a la izquierda btfss PORTB,SW3 ;Verifica si se presiona SW3 call derecha ;Giro a la derecha clrf PORTB ;Limpia el Puerto B goto inicio_bucle ;Repetir bucle izquierda: movlw b'11111001' movwf PORTB call retardo_motor movlw b'11101101' Gua Didctica para Microcontroladores Universidad Evanglica Boliviana 57 Ing. Pablo Zrate A.
UNIDAD 9
movwf PORTB call retardo_motor movlw b'11100111' movwf PORTB call retardo_motor movlw b'11110011' movwf PORTB call retardo_motor btfss PORTB,SW1 goto izquierda return derecha: movlw b'11110011' movwf PORTB call retardo_motor movlw b'11101101' movwf PORTB call retardo_motor movlw b'11111001' movwf PORTB call retardo_motor btfss PORTB,SW3 goto derecha return retardo_motor: movlw .2 movwf t0 ; El valor almacenado en t0 controlara la velocidad de giro decfsz t0,F goto $+2 return call retardo_10ms goto $-4 end
IV BIBLIOGRAFIA
Micro-controladores PIC Carlos A. Reyes RISPERGRAF Volumen 2 2006 Curso Avanzado de Micro-controladores PIC CEKIT
58
UNIDAD 10
59
UNIDAD 10
Transmisin serial sncrona: es aquella en la que las unidades de emisin y recepcin se sincronizan y despus se enva una secuencia de bits de seales de datos. De tal manera estas unidades cuentan con un reloj comn que los temporiza y permite que los bits se enven a una velocidad constante dictada por los pulsos de reloj que determinan la velocidad de comunicacin. La transmisin serial asncrona: es aquella en la que los bits de datos de un carcter se transfieren de manera independiente en el tiempo con respecto a otro carcter. De tal manera que para esta tcnica cada carcter consta de tres partes: un bit de inicio, bits de caracteres y un bit de paro. El bit de inicio siempre es cero y se utiliza para anunciar que comienza un carcter. El bit de paro siempre es 1, valor que se mantiene por al menos el tiempo correspondiente a un bit para indicar que ha culminado el carcter enviado la siguiente figura ilustra este concepto.
Los MCU disponen de perifricos integrados para la comunicaciones seriales llamados UART (Unidad Asncrona de Transmisin y Recepcin) o USART (Unidad Sncrona Asncrona de Transmisin y Recepcin). El PIC16F84 no posee mdulos de comunicacin serial, por lo que la implementacin es posible solo por software. En el tema implementaremos la comunicacin serial asncrona utilizando un PIC16F84 y una interfaz RS-232. Los parmetros de configuracin requeridos para la comunicacin serial asncrona son los siguientes: Velocidad: Expresada en baudios, un baudio es equivalente a la cantidad de informacin (bit) enviada por la lnea en un segundo, para nuestro caso usaremos una velocidad de 9600bps (bits por segundo). Longitud de datos: Representa la cantidad de bits utilizados para un dato que ser enviado luego del bit de inicio, en nuestro caso la longitud ser de 8 (byte). Paridad: Es un mecanismo de control de error en el dato y est representado por un bit adicional enviado despus del dato, en nuestro caso no utilizaremos esta opcin. Bits de parada: Indica la cantidad de bits de parada utilizados para cada dato enviado, su nivel lgico es 1 y su duracin es igual al tiempo de bit utilizado en la comunicacin. El estndar RS-232 es una interfaz que designa una norma para el intercambio en serie de datos binarios entre dos dispositivos, esta interfaz est presente en los ordenadores actuales y muchos Gua Didctica para Microcontroladores Universidad Evanglica Boliviana Ing. Pablo Zrate A.
60
UNIDAD 10
dispositivos y sensores electrnicos por lo que la implementacin en micro controladores es de mucha utilidad.
En el circuito se puede observar la conexin fsica del PIC16F84 con la interface RS-232, el PIC recibe los datos a travs del pin RA4 y la trasmisin lo realiza utilizando el pin RA3.
61
UNIDAD 10
WriteUART: movlw .12 ; <S>12345678<P><P> movwf bitcount ; Es la cantidad de bits que se enviaran bcf PORTA,TXD ;Coloca en 0 para el bit de inicio WriteUART_b0 decfsz bitcount,F ; Decrementa bitcount y salta si es 0 goto WriteUART_ej bsf PORTA,TXD ; Coloca en 1 para final de trasmisin return ; Retorna WriteUART_ej call retardo_100us ; Espera un tiempo de bit de 100uS para 9600bps btfss udato,0 ;Verifica el bit 0 del dato a enviar y salta si es 1 goto WriteUART_ej0 bsf PORTA,TXD ; Coloca en 1 el pin TX goto WriteUART_ej1 WriteUART_ej0 bcf PORTA,TXD ; Coloca en 0 el pin TX WriteUART_ej1 bsf STATUS,C ; Coloca en uno el bit de acarreo rrf udato,F ; Desplaza los bits a la derecha goto WriteUART_b0 ; Repetir secuencia ReadUART: movlw .9 ;Es la cantidad de bit a recibir ms el bit de inicio movwf bitcount ReadUART_b0 btfsc PORTA,RXD ; Verifica el estado del pin RX, salta si es 0 (bit inicio) goto ReadUART_b0 call retardo_50us ; Espera medio ciclo de vida btfsc PORTA,RXD ; Vuelve a verificar RX est en 0 return ; Inicio no vlido ReadUART_b1 decfsz bitcount,F ; Decrementa el contador goto ReadUART_b2 call retardo_100us ; Espera un tiempo para el bit de parada return ReadUART_b2 call retardo_100us ; Espera un tiempo de bit bcf STATUS,C ; Coloca en 0 el acarreo btfsc PORTA,RXD ; Verifica el pin RX y salta si es 0 bsf STATUS,C ; Coloca en 1 el bit de acarreo rrf udato,F ; Desplaza a la derecha la variable goto ReadUART_b1 ; Continua la secuencia
62
UNIDAD 10
Con las rutinas writeUART y readUART nos ser posible implementar una comunicacin serial con el ordenador o dispositivo que disponga un puerto serie RS232. Un simple programa de eco que recibe un byte y lo vuelve a enviar seria sencillo como se observa en el cdigo de abajo. Los pines RA4 y RA3 deben estar previamente configurados. Eco: call ReadUART ; Recibe un dato byte en la variable udato call WriteUART; Enva un dato byte de la variable udato goto Eco
Algunos trminos o definiciones utilizados en relacin con las funciones del bus I2C son: Maestro (Master): Dispositivo que determina la temporizacin y la direccin del trfico de datos en el bus. Es el nico que genera la seal de reloj SCL. Cuando se conectan varios dispositivos maestros a un mismo bus, la configuracin se denomina multi-maestro. Esclavo (Slave): Cualquier dispositivo conectado al bus que no genera seal de reloj SCL. Recibe seales la seal de comando y reloj provenientes del dispositivo maestro. Gua Didctica para Microcontroladores Universidad Evanglica Boliviana Ing. Pablo Zrate A.
63
UNIDAD 10
Bus Desocupado (Bus Free): Estado en el cual ambas lneas SDA y SCL estn inactivas, presentando un estado lgico alto. nicamente en este momento es cuando un dispositivo maestro puede comenzar a utilizar el bus. Comienzo (Start): Sucede cuando un dispositivo maestro genera una condicin de inicio en el bus, la lnea SCDA toma un estado bajo mientras que la lnea SCL permanece alta. Parada (Stop): El dispositivo maestro genera esta condicin dejando libre el bus. La lnea de datos toma un estado lgico alto mientras que la de reloj permanece tambin en ese estado. Direccin (Address): Cada dispositivo dispone de su propia y nica direccin de acceso, que viene pre-establecida por el fabricando, aunque existen dispositivos que permiten establecer parte de su direccin de forma externa. Lectura y Escritura (Bit R/W): Cada dispositivo dispone de una direccin de 7 bits, el octavo bit LSB es enviando durante la operacin de direccionamiento y corresponde al bit que indica que tipo de operacin se va a realizar, si el bit es alto se realizara una lectura y si el bit es bajo se proceder a una escritura. Gracias a que el protocolo es bastante simple, usualmente se ven insertados en sistemas MCU que no fueron diseados con estos puertos como es el caso del PIC16F84, siendo el protocolo generado por cdigo o firmware.
64
UNIDAD 10
Ventajas o comunicacin Full Duplex o Mayor velocidad de transmisin que con IC o SMBus o Se puede tener un control absoluto sobre los bits transmitidos o No est limitado a la transferencia de bloques de 8 bits o Su implementacin en hardware es extremadamente simple o Consume menos energa que I2C o SMBus debido que posee menos circuitos o No es necesario arbitraje o mecanismo de respuesta ante fallos Desventajas o Consume ms pines de cada chip que IC, incluso en la variante de 3 hilos. o El direccionamiento se hace mediante lneas especficas (sealizacin fuera de banda) a diferencia de lo que ocurre en IC que se selecciona cada chip mediante una direccin de 7 bits que se enva por las mismas lneas del bus o No hay control de flujo por hardware o No hay seal de asentimiento. El maestro podra estar enviando informacin sin que estuviese conectado ningn esclavo y no se dara cuenta de nada o No permite fcilmente tener varios dispositivos conectados al bus
IV BIBLIOGRAFIA
Micro-controladores PIC Carlos A. Reyes RISPERGRAF Volumen 2 2006 Curso Avanzado de Micro-controladores PIC CEKIT Gua Didctica para Microcontroladores Universidad Evanglica Boliviana Ing. Pablo Zrate A.
65
COD5 D5
A 1N4001
+5
COP2 P2
1 2 +5 VPP
COICSP ICSP
PIICSP01 PIICSP02 PIICSP03
COU1 U1
+5
COR3 R3
PIR301 PIR302
COJ1 J1
1 2
PIJ101
PIJ102
PIU102 PIU20
3 PIU203
1k
PID301 COD3
D3
PIP201 PIP202
PID302
PID402 COD4 PID401
D4 GND
GND +12
COP4 P4
1 2
GND
1 2 3 4 5 6
PIP401
PIP402
COC2 C2
100uF COR4 2.2k R4 PIR401 PIR402
GND
1 PIU201
COU2 U2
COPA PA
B
3 4
COC6 PI C6C601
10uFPIC602
COPB PB
+5
COU4 U4 1 PIU401 C1+ 3 PIU403 C14 PIU404 C2+ 5 PIU405 C211 PIU4011 T1IN 10 PIU4010 T2IN 12 PIU4012 9 PIU409
PIU4015
COSERIAL SERIAL
PISERIAL01 PISERIAL02 PISERIAL03 PISERIAL04
1 2 3 4
PIR102 PIR101
PORB2 RB2 PIPB03 PORB3 RB3 PIPB04 PORB4 RB4 PIPB05 PORB5 RB5 PIPB06
PID10
C
POVPP VPP
COD1 D1 COU3 U3
4 PIU304 2 16 PIU3016 15 14 MCLR OSC1/CLKIN OSC2/CLKOUT VDD VSS
1 2 3 4 5 6 7 8
TXD
+5
RXD
PIR202
COR2 R2
15
PIC802
PIC801
10uF
GND C
PID102
PIR201
17 RA0 PIU3017 18 RA1 PIU3018 1 RA2 PIU301 2 RA3 PIU302 3 RA4/T0CKI PIU303 6 RB0/INT PIU306 7 RB1 PIU307 8 RB2 PIU308 9 RB3 PIU309 10 RB4 PIU3010 11 RB5 PIU3011 12 RB6 PIU3012 13 RB7 PIU3013 RA0 RA1 RA2 TXD
1k GND
MAX232CPE
COC8 C8
PISW10 COSW1
RESET
PID201 COD2
D2
COY1
PIY102
PIY101
PISW102
PIC302 PIC301
COC3 4MHz
22pF
PIC402 PIC401
COC4
22pF
+5
PIU3015
PID20
GND
PIU3014
5 PIU305 GND
D PIC16F84A-04I/P
Title F84 Circuito de Prueba Size Letter Date: File: 03/08/2011 Sheet of E:\PROYE\PCB\ELT436\BOARDF84.SchDoc Drawn By: Pablo Z 3 4 Number Revision D
COPA PA
1 2 3 4 D RA0 PIPA02 RA1 PIPA03 RA2 PIPA04 POTXD TXD
PIPA01
COPB PB
1 2 3 4 5 6 7 8 R24 PIPB01 PIR2401 PIR2402 COR25 PIR2502 R25 10K PIPB02 PIR2501
PIPB04 PIR2701 R28 PIPB05 PIR2801
COR24
RB0
Text
K K
3 8 PID108
PID103
COR26 10K RB1 R26 PIPB03 PIR2601 COR27 PIR2602 RB2 R27 10K
RB3 COR29 PIR2902 RB4 R29 10K PIPB06 PIR2901 COR30 PIR3002 RB5 R30 10K PIPB07 PIR3001 COR31 PIR3102 RB6 R31 10K PIPB08 PIR3101 RB7 10K
RA0
PIQ20 1COQ20
Q20
K K
PID203 PID208
3 8
PIVR4101 PIVR4103
GND
RA1 +5
PIQ210 COQ21
Q21
PIVR4102
PIR2702
PIQ20 3
COR20 R20
10k GND TXD
PIQ2103
+5 P2 1 2 GND DOWN CODOWN +5
PIJ101
PIR20 2
RA2
PIR2102 PIR2101
+5
COLCD16x2 LCD16x2 GND 1 VSS 2 PILCD16x202 VDD 3 PILCD16x203 VO 4 PILCD16x204 RS 5 PILCD16x205 RW 6 PILCD16x206 EN 11 PILCD16x2011 DB4 12 PILCD16x2012 DB5 13 PILCD16x2013 DB6 14 PILCD16x2014 DB7
PILCD16x201 PILCD16x2015
PILCD16x2016
COR21 R21
10k
GND
15 16
A K
PIR20 1
UP
PISW10
COSW1
PIDOWN01
COP2 P2
1 2
PIP201
COJ1 J1
J2
R6 PIJ102
PIQ502
PIQ501COQ5
Q5
LCD16x2
PIP202
GND C
MODULO DISPLAY 7
PISW102
GND
PIDOWN02
GND
10k RB0
PIQ503
GND C
MODULO LCD
MODULO IN/OUT
PA
MODULO PAP
POPHASE1 PHASE1
PIL102
1 2 3 4 PB
RB0_1
PIR1001
COL1 L1 COL2 L2
RB1 D1
PIR101
COMOTOR MOTOR
PIMOTOR01 PIMOTOR02
RB1
PIR1101
COR1 R1
PIR102
Q1
PIMOTOR03
PIMOTOR04 PIMOTOR05 PIMOTOR06
RB2
PIR1201
RB0 RB1 PORB1 RB2 PORB2 RB3 PORB3 PORB4 RB4 PORB5 RB5 PORB6 RB6 RB7 PORB7 RB0 +5
1 2 3 4 5 6 7 8 RB0_1
220
R12 COR12
COL3 L3 COL4 L4
PIL402
1 2 3 4 5 6
RB3
PIR1301
GND
RB4
L5 COL5
PIL502
PIR1401
RB5 J2
PIR1501
220
PIR1502 PIL601
COR15 R15
L6 COL6
PIL602
RB2
PIR201
COR2 R2
PIQ201COQ2
PIR202 PIQ202
POPHASE2 PHASE2
D2
L1 PHASE1 = BLACK INA = BLACK L2 PHASE2 = YELLOW INB = ORANGE L1 PHASE3 = BROWN INC = BROWM L2 PHASE4 = GRAY IND = YELLOW
Q2
PIQ203
GND
RB6
PIR1601
220
RB5
RB6 SW2
RB7 SW3
PIL702
COP1 P1
1 2 RB7 +5
PIR1701
PIP101
PIP102
220
PIR1702 PIL801
COR17 R17
L8 COL8
PIL802
+5
GND
+5
P2 1 2
GND
RB3
PIR301
COR3 R3
PIQ301COQ3 PID302
PIR302 PIQ302
PHASE3 POPHASE3
SW1
Q3
COD3 D3
GND GND GND
PIR502
+5 + LS1 COLS1 R8 COR8 PORA3PIR801 RA3 A
PIR802 PIQ102 PILS101
COR5 R5
10k RA1
PIR602
COR6 R6
10k RA2
PIR702
1k
COR7 R7
10k GND +5
PIQ30
GND
PID301
PHASE4 POPHASE4 D4 COD4 A
PILS102
1 2
RA0
PIR501
SW1
PIR601
PIQ10 COQ1
Q1
PISW201 COSW2
SW2
PIR701
PISW301 COSW3
SW3
P3 COP3 1 2 RB4
PIR401
PIP301
PIP302
R4 COR4
PIQ401COQ4 PID402
PIR402 PIQ402
Q4
10k
PIQ103
GND GND
PISW20
GND
PISW302
GND
GND
1k
PIQ403
GND
PID401