guia microcontroladores

74
GUÍA DIDÁCTICA MICROCONTROLADORES Docente: Ing. Pablo Zárate A.

Upload: mgacha

Post on 24-Jul-2015

263 views

Category:

Documents


14 download

TRANSCRIPT

MICROCONT ROLADORES

GUA DIDCTICA Docente: Ing. Pablo Zrate A.

Universidad Evanglica Boliviana

INDICEUNIDAD 1: INTRODUCCION A LOS MICROCONTROLADORESQUE ES UN MICROCONTROLADOR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 ARQUITECTURA DE LOS MICROCONTROLADORES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 CARACTERISTICAS DE LOS MICROCONTROLADORES. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 MICROCONTROLADORES INTEL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 MICROCONTROLADORES MOTOROLA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 MICROCONTROLADORES PIC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

UNIDAD 2: MICROCONTROLADOR PIC16F84.CARACTERISTICAS GENERALES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 CONEXIN FISICA DEL PIC16F84 PARA SU OPERACIN. . . . . . . . . . . . . . . . . . . . . . . . . .10 ELABORACION DE CODIGO ASM EN ENTORNO MPLAB. . . . . . . . . . . . . . . . . . . . . . . . . .11 CONFIGURACION DE LOS FUSES DEL PIC16F84. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 GRABACION DE CODIGO HEX AL PIC16F84. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14 SET DE INSTRUCCINES Y SU OPERACIN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16

UNIDAD 3: MANEJO DE LA MEMORIA Y PUERTOS DEL PIC16F84ARQUITECTURA INTERNA DEL PIC16F84. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 DESCRIPCION Y USO DE LA MEMORIA DE PROGRAMA. . . . . . . . . . . . . . . . . . . . . . . . . . 20 DESCRIPCION Y USO DE LA MEMORIA DE DATOS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 OPERACIN DE INSTRUCCIONES Y REGISTRO DE TRABAJO. . . . . . . . . . . . . . . . . . . . . . . 23 MANEJO Y USO DE LOS PUERTOS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 ELABORACION DE CODIGO ASM EJEMPLO USO DE MEMORIA SUMA . . . . . . . . . . . . 24 PROGRAMACION DE CODIGO EN CIRCUITO CON LED Y PULSADOR. . . . . . . . . . . . . . . . 25 DESCRIPCION Y USO DE LA MEMORIA DE DATOS EEPROM. . . . . . . . . . . . . . . . . . . . . . . 26

UNIDAD 4: UTILIZACION DE LOS RECURSOS DEL PIC16F84.MODOS DE DIRECCIONAMIENTO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 INSTRUCCINES DE LLAMADA Y SALTO (PILAS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 EDICION DE PROGRAMAS EN ENSAMBLADOR MPASM . . . . . . . . . . . . . . . . . . . . . . . . . . 29 ELABORACION DE CODIGO ASM EJEMPLO LLAMADAS Y SALTOS . . . . . . . . . . . . . . . . . 30 INTRODUCCION A LAS INTERRUPCIONES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31 ELABORACION DE CODIGO ASM EJEMPLO USO DE INTERRUPCION EXTERNA . . . . . . .32

Universidad Evanglica Boliviana

UNIDAD 5: USO DE LOS TEMPORIZADORESELABORACION DE RUTINAS DE RETARDO BASADAS EN BUCLE. . . . . . . . . . . . . . . . . . . . 34 INTRODUCCION AL TEMPORIZADOR TMR0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 MANEJO DE LA INTERRUPCION CON EL TEMPORIZADOR TMR0. . . . . . . . . . . . . . . . . . . 35

UNIDAD 6: MANEJO DEL DISPLAY DE 7 SEGMENTOSINTRODUCCION AL DISPLAY DE 7 SEGMENTOS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 CONEXIN FISICA Y MODOS DE OPERACIN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 PROGRAMACION DE CIRCUITO CON DISPLAY DE 7 SEGMENTOS. . . . . . . . . . . . . . . . . . . 40 MANEJO DE VARIOS DISPLAY DE FORMA MULTIPLEXADA. . . . . . . . . . . . . . . . . . . . . . . . . 41

UNIDAD 7: MANEJO DEL LCDINTRODUCCION AL LCD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43 CONEXION FISICA Y MODOS DE OPERACIN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 SET DE INSTRUCCIONES DE CONTROL Y DATOS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 ELABORACION DE RUTINAS ASM PARA USO DEL LCD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 PROGRAMACION DE EJEMPLO EN CIRCUITO CON LCD. . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

UNIDAD 8: MANEJO DEL KEYPADINTRODUCCION A LOS TECLADOS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 CONEXIN FISICA Y MODOS DE OPERACIN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 ELABORACION DE RUTINAS ASM PARA LECTURA DEL TECLADO. . . . . . . . . . . . . . . . . . . . .51

UNIDAD 9: MANEJO DE MOTORES PASO A PASOINTRODUCCION A LOS MOTORES PASO A PASO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 PROGRAMACION ASM PARA CONTROLAR UN MOTOR PAP. . . . . . . . . . . . . . . . . . . . . . . . . 56

UNIDAD 10: USO DE LOS PUERTOS SERIALESINTRODUCCION A LOS PUERTOS SERIALES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59 CONEXIN FISICA Y MODOS DE OPERACIN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 ELABORACION DE RUTINAS ASM PARA COMUNICACIN SERIAL RS-232. . . . . . . . . . . . . . .61 INTRODUCCION AL PUERTO I2C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63 INTRODUCCION AL PUERTO SPI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64

Universidad Evanglica Boliviana

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

Universidad Evanglica Boliviana

OBJETIVOS GENERALES DE LA ASIGNATURA

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

Universidad Evanglica Boliviana

CRONOGRAMA DE MODULOSSESIONES 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 ACREDITACIONLa 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

Universidad Evanglica Boliviana

PROPUESTA EDUCATIVA DE LA ASIGNATURACOMPETENCIADisear e implementar un proyecto que automatice una aplicacin especfica de mediana complejidad basado en el micro controlador PIC, que controlen o activen dispositivos tales como Teclados, Displays, Alarmas, etc. con posibilidad de comunicacin serial con un computador.

40 HORAS TEORICAS

40 HORAS PRCTICAS

PRODUCTOS

PRODUCTO 1Proyecto de aplicacin basado en el micro controlador con interface a pc

PRODUCTO 2Proyecto 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

INTRODUCCION A LOS MICROCONTROLADORES

I OBJETIVOS DEL TEMAPROFESIONAL: Conocer las caractersticas generales del MCU (Micro controlador), as como su funcionamiento y composicin interna. PERSONAL: Despertar el inters en el estudiante para elaborar aplicaciones basadas en microcontrolador. PRODUCTIVO: Conocer la variedad actual de los MCU y sus capacidades para el desarrollo de una aplicacin.

II DESARROLLO DEL TEMAEL MICROCONTROLADORUn MCU (Micro controlador), es un circuito integrado en cuyo interior se encuentra un CPU, Memoria y unidad de entrada salida E/S. Los MCU son simples ejecutores de instrucciones de propsito general, la verdadera utilidad proviene del programa almacenado en su memoria. La programacin del MCU puede ser desde una simple tarea hasta un sofisticado sistema de control de algo especfico, simplificando todo el diseo de una placa de reducido tamao y pocos componentes electrnicos. Debido a que internamente ya est provisto de Memoria y puertos de entrada y salida definidas no es posible la ampliacin o modificacin, razn por la que se denomina al MCU un sistema cerrado.

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.

1

UNIDAD 1

INTRODUCCION A LOS MICROCONTROLADORES

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.

ARQUITECTURA DE LOS MICROCONTROLADORESEn la arquitectura de los MCU, claramente se denotan dos esquemas de interconexin interna del hardware que son: Arquitectura Harvard: Las instrucciones y los datos se almacenan en memorias separadas para mejorar el rendimiento, ya que es posible el acceso simultneo a ambas memorias. Por otro lado, tiene el inconveniente de tener que dividir la cantidad de memoria entre los dos, por lo que funciona mejor slo cuando la frecuencia de lectura de instrucciones y de datos es aproximadamente la misma.

PROGRAMA

CPU

DATOS

UNIDAD E/SGua Didctica para Microcontroladores Universidad Evanglica Boliviana Ing. Pablo Zrate A.

2

UNIDAD 1

INTRODUCCION A LOS MICROCONTROLADORES

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.

CARACTERISTICAS DE LOS MICROCONTROLADORESUn micro controlador MCU, est encaminado bsicamente hacia aplicaciones concretas, donde el espacio y nmero de componentes es mnimo, adems los cambios a ampliaciones futuras son casi nulos por tal motivo es imprescindible una correcta seleccin de la gran variedad de MCU que existen actualmente en el comercio. Seguidamente detallaremos las principales caractersticas a tomar en cuenta en la seleccin. Tipo de Procesador: Es la capacidad de manipulacin de datos y su tecnologa. Pueden ser de 8-bits, 16-bits, 32-bits, etc. Con tecnologa RISC o CISC. Velocidad: Valor en MIPS o MHz que indican la velocidad mxima para ejecutar las instrucciones.

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

3

Ing. Pablo Zrate A.

UNIDAD 1

INTRODUCCION A LOS MICROCONTROLADORES

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

INTRODUCCION A LOS MICROCONTROLADORES

MICROCONTROLADORES INTELLa 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

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

5

Ing. Pablo Zrate A.

UNIDAD 1

INTRODUCCION A LOS MICROCONTROLADORES

MICROCONTROLADORES MOTOROLAEstos 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

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

6

Ing. Pablo Zrate A.

UNIDAD 1

INTRODUCCION A LOS MICROCONTROLADORES

MICROCONTROLADORES PICSon 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.

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

7

Ing. Pablo Zrate A.

UNIDAD 1

INTRODUCCION A LOS MICROCONTROLADORES

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.

II ACTIVIDADES DE PROFUNDIZACION E INTEGRACIONQue tipos de memoria son utilizadas actualmente en un MCU? Interfaces y protocolos de comunicacin utilizados? Verificar la disponibilidad en el comercio local? Investigar las caractersticas de los Procesadores DSP?

IV BIBLIOGRAFIAMicro-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

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

8

Ing. Pablo Zrate A.

UNIDAD 2

MICROCONTROLADOR PIC16F84

I OBJETIVOS DEL TEMAPROFESIONAL: Conocer las caractersticas generales del micro-controlador PIC16F84, as como su funcionamiento y composicin interna. PERSONAL: Despertar inters en el estudiante para iniciarse en la elaboracin de aplicaciones basadas en micro-controladores PIC. PRODUCTIVO: Conocer las tcnicas y herramientas necesarias para la elaboracin de aplicaciones basadas en micro-controlador PIC.

II DESARROLLO DEL TEMACARACTERISTICAS GENERALESEl PIC16F84 de Microchip Technology Inc. Es uno de los MCU de 8-bits ms utilizados en proyectos electrnicos pequeos y de aprendizaje. Su fcil uso y precio reducido, lo han convertido en MCU muy popular y favorito en un gran rango de aplicaciones. A pesar de que este no posee muchas de las opciones de otros modelos ms nuevos como ser el PIC16F628 y el PIC16F88. Resulta muy apropiado para iniciar el aprendizaje. Algunas de sus caractersticas son:

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.

DESIGNADOROSC1/CLKIN OSC2/CLKOUT MCLR RAx RBx VSS VDD

PIN 16 15 4 1-3,19-20 6-13 5 14

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

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

Ing. Pablo Zrate A. 9

UNIDAD 2

MICROCONTROLADOR PIC16F84

CONEXIN FISICA DEL PIC16F84 PARA SU OPERACINEl encapsulado ms comn para este MCU es el DIP-18 y su rango de operacin es de 2 a 5.5V. La siguiente figura ilustra la conexin fsica en circuito necesaria para su operacin. En la cual se aprecia claramente la conexin a un circuito oscilador externo conformado por un cristal, este oscilador genera la seal de reloj necesaria para el funcionamiento del MCU y su velocidad define la rapidez en la ejecucin de las instrucciones.

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.

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

Ing. Pablo Zrate A. 10

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.

ELABORACION DE CODIGO ASM EN ENTORNO MPLABMicrochip Technology Inc. provee el ensamblador por defecto MPASM a travs de un ambiente integrado de desarrollo llamado MPLAB IDE (Integrated Development Environment), que puede descargarse gratuitamente a travs de su sitio web http://www.microchip.com. Una vez instalado MPLAB empezaremos creando un nuevo proyecto utilizando el asistente tal como se muestra en la siguiente imagen.

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.

CONFIGURACION DE LOS FUSES DEL PIC16F84Los FUSES del PIC16F84 sirven para configurar ciertos aspectos especficos del MCU. Cada FUSE activa o desactiva una opcin de funcionamiento. A continuacin detallamos la funcin que cumplen cada uno. Gua Didctica para Microcontroladores Universidad Evanglica Boliviana Ing. Pablo Zrate A. 13

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.

GRABACION DE CODIGO HEX AL PIC16F84La programacin de los MCU PIC se realiza mediante un protocolo serial sincrnico llamado ICSP (In Circuit Serial Programming) comnmente llamado programacin serie en circuito. Por este mtodo puede grabarse la memoria de programa FLASH, memoria de datos EEPROM y registros de configuracin directamente en la placa. Tambin es posible programar o bien actualizar el software del MCU sin tener que retirarlo de la tarjeta de circuito. No es necesario conocer o estudiar los fundamentos tericos del protocolo ICSP, solamente tenemos que estar familiarizados con las seales que lo conforman para evitar tener problemas a la hora de implementar la conexin. La comunicacin ICSP requiere de las siguientes seales: ICSPDAT o PGD: Seal bidireccional de datos. ICSPCLK o PGC: Seal de Reloj de Programacin VPP: Voltaje de Programacin, el MCU entra en el modo Programacin. VDD: Suministro de voltaje positivo. VSS: Negativo Una vez escrito nuestro cdigo ASM en MPLAB se proceder a la compilacin generando el cdigo HEX. Para poder grabar el cdigo HEX al MCU utilizaremos un circuito programador de los cuales existen varios algunos tienen su propio programa de grabacin mientras que otros se integran directamente con MPLAB. Utilizaremos un programador muy popular conocido como JDM.

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

Ing. Pablo Zrate A. 14

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.

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

Ing. Pablo Zrate A. 15

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.

SET DE INSTRUCCINES Y SU OPERACINLas instrucciones estn clasificadas segn su operacin en orientadas a bytes, bits, literales y de control. La sintaxis denota el uso de los siguientes registros y definiciones: W: Es el registro de trabajo y almacena datos de forma temporal. f : Es la direccin de un registro que interviene en la ejecucin. d : Es el destino donde se guarda el resultado de una operacin, y puede ser W o f. b: Es el numero de bit de 0-7 del registro f sobre la cual se opera. k: Es una constante literal que puede tomar valores entre 0 y 255. Gua Didctica para Microcontroladores Universidad Evanglica Boliviana Ing. Pablo Zrate A. 16

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

Tcy 1 1 1 1 1 1 1,2 1 1,2 1 1 1 1 1 1 1 1 1

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

Ing. Pablo Zrate A. 17

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

BANDERAS C,DC,Z Z -TO,-TD Z

-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.

II ACTIVIDADES DE PROFUNDIZACION E INTEGRACIONCul es la diferencia entre los modos de reloj XT, HS, LP y RC? Realizar el montaje de la tarjeta F84 en una placa PCB o Protoboard. Estudiar la Sintaxis requerida para el uso de cada instruccin.

IV BIBLIOGRAFIAMicro-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

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

Ing. Pablo Zrate A. 18

UNIDAD 3

MANEJO DE LA MEMORIA Y PUERTOS DEL PIC16F84

I OBJETIVOS DEL TEMAPROFESIONAL: Conocer caractersticas generales del micro-controlador PIC16F84, as como su funcionamiento y composicin interna. PERSONAL: Despertar el inters en el estudiante para elaborar aplicaciones basadas en microcontroladores PIC. PRODUCTIVO: Conocer las capacidades integradas del PIC16F84 que nos ayuden en la elaboracin de aplicaciones utilizando al mximo sus recursos.

II DESARROLLO DEL TEMAARQUITECTURA INTERNA DEL PIC16F84Este trmino se refiere a los bloques funcionales internos que conforman el MCU y la forma en que estn conectados la memoria de programa, memoria de datos, los puertos de entrada y salida, la lgica de control, temporizadores, etc.

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

19

Ing. Pablo Zrate A.

UNIDAD 3

MANEJO DE LA MEMORIA Y PUERTOS DEL PIC16F84

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.

DESCRIPCION Y USO DE LA MEMORIA DE PROGRAMAEs una memoria de 1K byte de longitud con palabras de 14 bits. Como es del tipo FLASH se puede programa y borrar elctricamente, lo que facilita el desarrollo de los programas y la experimentacin. Aqu se graba o almacena el programa que el MCU debe ejecutar. Dado que el PIC16F84 tiene un contador de programa de 13 bits, su capacidad de direccionamiento es de 8Kx14 pero solo tiene implementado 1Kx14 de 0x000 a 0x3FF, si se direccionan posiciones de memoria superior a 0x3FF se causara un solapamiento con el espacio del primer 1K. La siguiente figura ilustra el mapa de la memoria de programa Vector Reset: Cuando ocurre un reinicio al MCU, el contador de programa se pone en cero 0x000. Por esta razn, en la primera direccin del programa se debe escribir todo lo relacionado con el inicio del mismo Vector de Interrupcin: Cuando el MCU recibe una seal de interrupcin, el contador de programa apunta a la direccin 0x004 de la memoria de programa, por eso, all se debe escribir toda la programacin necesaria para atender dicha interrupcin. Existen instrucciones que modifican el valor del contador de programa, para realizar saltos, llamadas y retornos a direcciones definidas donde se encuentran rutinas de cdigo. Un ejemplo es la instruccin goto 0x10, que realiza un salto a una direccin 0x010 en la memoria de programa.

DESCRIPCION Y USO DE LA MEMORIA DE DATOSEl PIC16F84 puede direccionar 128 posiciones de memoria RAM, pero solo tiene implementados fsicamente los primeros 80 bytes de 0x00 a 0x4F. De estos los primeros 12 son registros que Gua Didctica para Microcontroladores Universidad Evanglica Boliviana 20 Ing. Pablo Zrate A.

UNIDAD 3

MANEJO DE LA MEMORIA Y PUERTOS DEL PIC16F84

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.

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

21

Ing. Pablo Zrate A.

UNIDAD 3

MANEJO DE LA MEMORIA Y PUERTOS DEL PIC16F84

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.

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

22

Ing. Pablo Zrate A.

UNIDAD 3

MANEJO DE LA MEMORIA Y PUERTOS DEL PIC16F84

OPERACIN DE INSTRUCCIONES Y REGISTRO DE TRABAJOEl registro de trabajo W se comporta de manera similar al acumulador en los microprocesadores. Este registro participa en la mayora de las instrucciones. Ejemplos de su uso son: MOVF STATUS,W: Mueve el valor del registro STATUS al registro W MOVLW 0x10: Carga el registro W con el valor 0x10 MOVWF 0x0D: Mueve el valor del registro W al registro 0Ch. ADDWF 0x0C,W: Suma el registro 0Ch y W, el resultado se almacena en W

MANEJO Y USO DE LOS PUERTOS

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

23

Ing. Pablo Zrate A.

UNIDAD 3

MANEJO DE LA MEMORIA Y PUERTOS DEL PIC16F84

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

ELABORACION DE CODIGO ASM EJEMPLO SUMACon la finalidad de introducirnos en la edicin de programas ASM en MPLAB y el uso de las instrucciones, elaboraremos un programa que realice la suma dos registros _a y _b ubicados en las diferentes posiciones de la memoria de programa de propsito general GPR , cada instruccin tiene su comentario precedido por el smbolo ; el cual explica la operacin que realiza el resultado se almacenara en otro registro _r. Las instrucciones se visualizan con color azul oscuro, cabe mencionar que el modo de operacin del reloj y la configuracin de los fuses es realizado al momento de la programacin, habilitando o deshabilitando de manera individual mediante el programa utilizado para la grabacin del PIC. Gua Didctica para Microcontroladores Universidad Evanglica Boliviana 24 Ing. Pablo Zrate A.

UNIDAD 3

MANEJO DE LA MEMORIA Y PUERTOS DEL PIC16F84

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

PROGRAMACION DE CODIGO EN CIRCUITO CON LED Y PULSADOREl segundo ejemplo consisten en realizar un programa que lea el estado del pulsador SW1 y nos muestre el valor mediante el led L1, para la practica utilizaremos la tarjeta F84 junto al modulo I/O list p=16F84 ;Identifica el tipo de MCU utilizado #include "P16F84.INC" ;Incluye la lista de definiciones para el PIC L1 equ .0 ; define el valor de D1 SW1 equ .0 ; define el valor de S1 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 bsf STATUS,RP0 ;Selecciona banco 1 bsf TRISA,S1 ;Configura pin RA0 como entrada bcf TRISB,D1 ;Configura pin RB0 como salida bcf STATUS,RP0 ;Selecciona banco 0 btfss PORTA ,S1;Verifica si pin RA0 es 1? salta a la siguiente instruccin goto s1_presionado ;el botn es presionado, salta a la etiqueta bcf PORTB,D1 ;el botn no est presionado, apaga el led D1 goto inicio ;retorna a inicio s1_presionado bsf PORTB,D1 ;el botn presionado, enciende el led D1 goto inicio ;retorna a inicio end ;fin del programa Gua Didctica para Microcontroladores Universidad Evanglica Boliviana Ing. Pablo Zrate A.

25

UNIDAD 3

MANEJO DE LA MEMORIA Y PUERTOS DEL PIC16F84

DESCRIPCION Y USO DE LA MEMORIA DE DATOS EEPROMEl PIC16F84 posee una memoria EEPROM de 64 bytes para almacenar datos no voltiles, y se puede acceder indirectamente mediante 4 registros SFR detallados a continuacin. 08h EEDATA: Contiene el dato que se escribir o se leer de la memoria EEPROM 09h EEADR: Contiene la direccin de la memoria EEPROM con la cual se trabaja 88h EECON1: Es el registro para el control de la memoria EEPROM de datos. 89h EECON2: Es el registro auxiliar para el control de la memoria EEPROM La memoria EEPROM de datos tiene un ciclo de aproximadamente 10.000.000 lecturas y escrituras y el tiempo de escritura est controlado por un temporizador interno, el proceso de escritura en esta memoria requiere una secuencia especial de instrucciones adems de un tiempo de espera determinado que puede ser manejado por la interrupcin EEIE o verificacin continua de la bandera EEIF. A continuacin se ejemplariza las rutinas necesarias para poder leer y escribir datos en la memoria EEPROM, tambin se detallan los bits del registro EECON1.

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

26

Ing. Pablo Zrate A.

UNIDAD 3

MANEJO DE LA MEMORIA Y PUERTOS DEL PIC16F84

;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

II ACTIVIDADES DE PROFUNDIZACION E INTEGRACIONAprendizaje del lenguaje ASM para MCU PIC. Realizar el Montaje de circuito electrnico F84 para pruebas. Uso de la memoria EEPROM de datos.

IV BIBLIOGRAFIAMicro-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

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

27

Ing. Pablo Zrate A.

UNIDAD 4

UTILIZACION DE LOS RECURSOS DEL PIC16F84

I OBJETIVOS DEL TEMAPROFESIONAL: Conocer las caractersticas generales del micro-controlador PIC16F84, as como su funcionamiento y composicin interna. PERSONAL: Despertar el inters en el estudiante para elaborar aplicaciones basadas en microcontroladores PIC. PRODUCTIVO: Conocer las tcnicas y herramientas necesarias para la elaboracin de aplicaciones basadas en micro-controlador PIC.

II DESARROLLO DEL TEMAMODOS DE DIRECCIONAMIENTOLos modos de direccionamiento tratan la forma de mover los datos de unas posiciones de memoria a otras, Para el PIC16F84 existen 4 modos Direccionamiento inmediato: El dato manipulado por la instruccin se codifica con la propia instruccin. En este caso, el dato en cuestin se denomina literal. MOVLW .20; Mueve un valor literal 20 al registro W Direccionamiento directo: La memoria interna se direcciona de forma directa por medio de los 8 bits f contenidos en las instrucciones que operan sobre registros. De esta manera se puede direccionar cualquier posicin desde la 00h a la FFh. En los MCU que tengan ms de un banco, antes de acceder a alguna variable el programador deber asegurarse de haber programado los bits de seleccin de banco en el registro OPTION. Este modo consiste en codificar el nombre del o de los registros en cuestin directamente en la instruccin. MOVWF PORTB; Mueve el registro W al puerto B Direccionamiento bit a bit: Mediante este direccionamiento se manipula un bit individual en cualquier registro, este modo siempre va emparejado con el modo de direccionamiento directo. BCF PORTB,0; Coloca en 0 el pin RB0 Direccionamiento indirecto: Utiliza los registros INDF y FSR, en el registro FSR se introduce la direccin del registro que se quiere leer cuando se accede a INDF. FSR acta como un puntero. Si aumentamos o disminuimos con cualquier operacin el contenido de FSR nos moveremos entre las posiciones de memoria. MOVLW 06h; Coloca el valor 06h en el registro W MOVWF FSR; Mueve el valor del registro W al registro FSR CLRF INDF; Borra el contenido de la direccin 06h PORTB

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

28

Ing. Pablo Zrate A.

UNIDAD 4

UTILIZACION DE LOS RECURSOS DEL PIC16F84

INSTRUCCINES DE LLAMADA Y SALTO (PILAS)El PIC16F84 incluye en su repertorio, instrucciones que permiten saltar a una rutina, y cuando se complementa su ejecucin, retornar al programa principal. El empleo de subrutinas aporta muchas ventajas entre la que se destacan las siguientes: Se pueden escribir como rutinas, secciones de cdigo empleadas en muchos programas. Dan a los programas un carcter modular. Se reduce notablemente el tiempo de programacin y la deteccin de errores, usando repetidamente una subrutina. El cdigo es ms fcil de interpretar, dado que las instrucciones de las subrutinas no aparecen en el programa principal. La instruccin GOTO consigue que la ejecucin del programa contine en la direccin donde se encuentra la subrutina a la que hace referencia una etiqueta. La instruccin CALL es similar a GOTO pero coloca en la pila la direccin de la siguiente instruccin que se debe ejecutar despus de CALL. Adems la subrutina finaliza con la instruccin RETURN que retorna la direccin guardada en la pila y la coloca en el contador de programa PC continuando el flujo con la instruccin que sigue a CALL. El PIC16F84 tiene disponible una pila de ocho niveles tipo FIFO. Si se produce la llamada a una subrutina durante la ejecucin de otra subrutina, la direccin de retorno de esta segunda es colocada en la cima de la pila sobre la direccin anterior. Esta segunda direccin es la primera en salir de la pila mediante la instruccin RETURN. Con la pila de ocho niveles, una subrutina puede llamar a otra y esta, a su vez, llamar a otra hasta un mximo de ocho niveles. En las instrucciones GOTO y CALL los 11 bits de menos peso del PC se suministran desde el cdigo OP. Los dos bits de ms peso del PC se cargan con los bits PCLATH 4:3. Como la memoria de programa se organiza en pginas de 2K, la posicin la seleccionan los 11 bits de menos peso, mientras que con los 2 bits de ms peso del PC se elige la pgina.

EDICION DE PROGRAMAS EN ENSAMBLADOR MPASMComo se menciono anteriormente la programacin del cdigo, requiere editar lnea a lnea de forma ordenada toda la secuencia de instrucciones necesarias para que el MCU pueda ejecutar la operacin requerida en el sistema. Esta secuencia de instrucciones es el llamado cdigo fuente ASM, y el entorno MPLAB nos facilita su edicin a travs de herramientas que nos permiten identificar, simular y corregir errores antes de grabar el MCU. El cdigo fuente de un programa ASM contiene bastantes lneas entre las cuales podemos distinguir 4 tipos que son interpretados por el compilador para generar al cdigo HEX.

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

29

Ing. Pablo Zrate A.

UNIDAD 4

UTILIZACION DE LOS RECURSOS DEL PIC16F84

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.

ELABORACION DE CODIGO ASM EJEMPLO LLAMADAS Y SALTOSTitle Suma del Puerto A y B list p=16F84; #include "P16F84.INC" resul equ 0x0e org 0x00 goto inicio org 0x05 inicio bsf STATUS,RP0 movlw FFh movwf TRISA movwf TRISB repetir bcf STATUS,RP0 call suma goto repetir suma: movf PORTA,W addwf PORTB,W movwf result return a end

;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

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

30

Ing. Pablo Zrate A.

UNIDAD 4

UTILIZACION DE LOS RECURSOS DEL PIC16F84

INTRODUCCION A LAS INTERRUPCIONESEl PIC16F84 incluye el manejo de interrupciones, lo cual representa grandes ventajas. Dispone de 4 fuentes de interrupcin que son: Interrupcin externa en el pin RB0/INT, que puede configurarse para activarse con un flanco de subida o bajada con el bit INTEDG. Finalizacin del temporizador contador TMR0, la superacin del conteo mximo FFh en el registro TMR0 colocara el bit T0IF en uno. Finalizacin de escritura en la EEPROM de datos. Cuando la escritura de un dato en la EEPROM finaliza, se coloca en 1 el bit EEIF. Cambio de nivel en los pines RB4 a RB7. Un cambio en los pines del PORTB 7:4 colocara en uno el bit RBIF.

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

31

Ing. Pablo Zrate A.

UNIDAD 4

UTILIZACION DE LOS RECURSOS DEL PIC16F84

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.

ELABORACION DE CODIGO ASM USO DE INTERRUPCION EXTERNAUn claro ejemplo de cmo elaborar la rutina de servicio a la interrupcin ISR, se observa a continuacin, bsicamente consiste en un pulsador conectado al pin RB0, el cual genera una seal de interrupcin cuando es presionado y carga al PC con la direccin 004h. Previamente en el programa principal se debern habilitar los bits RBIE y GIE, adems de colocar en 0 el bit INTEDG del registro OPTION porque se trata de un flanco descendente. El programa enciende un led cuando el pulsador es presionado de acuerdo al siguiente circuito. list p=16F84 #include "P16F84.INC" org 0 goto inicio org 4 btfss INTCON,INTF goto final call retardo_10ms continuar btfsc PORTB,0 goto int_final bsf PORTA,1 goto continuar final bcf INTCON,INTF bcf PORTA,1 retfie

; 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

; Limpia el flag ; Desactiva el led

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

32

Ing. Pablo Zrate A.

UNIDAD 4 inicio

UTILIZACION DE LOS RECURSOS DEL PIC16F84

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

II ACTIVIDADES DE PROFUNDIZACION E INTEGRACIONConocer las ventajas que tiene el direccionamiento indirecto. Realizar el Montaje para pruebas de interrupcin. Estudiar detalladamente el uso de cada interrupcin.

IV BIBLIOGRAFIAMicro-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

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

33

Ing. Pablo Zrate A.

UNIDAD 5

USO DE LOS TEMPORIZADORES

I OBJETIVOS DEL TEMAPROFESIONAL: Conocer el manejo y uso de los temporizadores utilizados en el micro-controlador PERSONAL: Despertar el inters en el estudiante para elaborar aplicaciones basadas en microcontroladores PIC. PRODUCTIVO: Brindar los conocimientos necesarios para la elaboracin de rutinas de tiempo utilizados en las aplicaciones actuales.

II DESARROLLO DEL TEMACuando se requiere control del tiempo en el MCU, puede emplearse rutinas de retardo utilizando cdigo(bucle), o mediante el Temporizador TMR0.

ELABORACION DE RUTINAS DE RETARDO BASADAS EN BUCLELa generacin de retardo basado en bucle, consiste en contar la cantidad de ciclos utilizados por una rutina y los tiempos necesarios para su ejecucin provocando una demora controlada. Bsicamente es un contador tal como se observa a continuacin: retardo_100us: movlw .30 movwf t0 retardo_100us_b decfsz t0,F goto retardo_100us_b return ; Rutina para retardo de 100uS ; Carga registro W con valor .30, 1Tcy ; Mueve W al registro t0, 1Tcy ; Etiqueta de bucle ; Decremento y saltar si t0=0, 1Tcy ; Repetir otra vez, 2Tcy ; Retorno, 2Tcy

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.

INTRODUCCION AL TEMPORIZADOR TMR0El temporizador contador TMR0 es un particular tipo de registro cuyo contenido es incrementado con una cadencia regular y programable (Preescalar) directamente por el hardware del PIC. En la prctica, a diferencia de los otros registros, el TMR0 no mantiene constante el valor que posee memorizado, si no que los incrementa continuamente y totalmente independiente de la ejecucin del resto del programa. Una vez alcanzado el valor 255, el registro TMR0 es puesto a cero automticamente iniciando nuevamente el conteo desde 0, la frecuencia de conteo es directamente proporcional a la frecuencia de reloj aplicada al chip y puede ser modificada programando adecuadamente algunos bits de configuracin. En la siguiente figura se representa la cadena de bloque internos del PIC que determina el funcionamiento del registro TMR0. Gua Didctica para Microcontroladores Universidad Evanglica Boliviana Ing. Pablo Zrate A.

34

UNIDAD 5

USO DE LOS TEMPORIZADORES

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 ;

MANEJO DE LA INTERRUPCION CON EL TEMPORIZADOR TMR0El modulo contador temporizador dispone de una interrupcin que es generada cuando el registro TMR0 sobrepasa de FFh a 00h, activndose la bandera T0IF del registro INTCON, esta bandera debe ser borrada por programa antes de habilitar la interrupcin con el bit T0IE o antes de finalizar la rutina ISR con la finalidad de evitar un reingreso. Con el uso de interrupcin las rutinas de tiempo trabajaran sin afectar la ejecucin del programa principal. Gua Didctica para Microcontroladores Universidad Evanglica Boliviana Ing. Pablo Zrate A.

35

UNIDAD 5

USO DE LOS TEMPORIZADORES

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

; Variable utilizada para retardo 0,5 Seg

; 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

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

36

Ing. Pablo Zrate A.

UNIDAD 5

USO DE LOS TEMPORIZADORES

II ACTIVIDADES DE PROFUNDIZACION E INTEGRACIONCules son las ventajas y desventajas de utilizar bucles o el TMR0? Realizar el Montaje para pruebas de interrupcin. Qu ventajas se tiene al utilizar la interrupcin del TMR0?

IV BIBLIOGRAFIAMicro-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

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

37

Ing. Pablo Zrate A.

UNIDAD 6

MANEJO DEL DISPLAY DE 7 SEGMENTOS

I OBJETIVOS DEL TEMAPROFESIONAL: Obtener conocimiento sobre el manejo del display de 7 segmentos. PERSONAL: Despertar el inters en el estudiante para elaborar aplicaciones basadas en microcontroladores PIC utilizando display de 7 segmentos. PRODUCTIVO: Conocer las tcnicas y herramientas necesarias para la elaboracin de aplicaciones basadas en micro-controlador PIC utilizando display de 7 segmentos.

II DESARROLLO DEL TEMAINTRODUCCION AL DISPLAY DE 7 SEGMENTOSLos display de 7 segmentos, son componentes que se utilizan para la representacin de nmeros en muchas aplicaciones electrnicas. Son por dems conocidos y muy usados en los equipos electrnicos desde hace aos, y no ofrecen ningn tipo de dificultad. Se los utiliza, en general, en forma directa o multiplexada. Sus principales caractersticas son:

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

MANEJO DEL DISPLAY DE 7 SEGMENTOS

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

CONEXIN FISICA Y MODOS DE OPERACINLos Display de 7 segmentos vienen en variadas presentaciones variando en tamao, color, orientacin y arreglos que constan de ms de un digito para facilitar el diseo de un proyecto, para nuestro aprendizaje utilizaremos un Display de un solo digito del tipo ctodo comn cuya configuracin fsica de los segmentos se observa en la figura de abajo. Para la practica e implementacin del circuito utilizaremos la tarjeta Base F84 y el modulo DISPLAY 7 SEG, la cual Gua Didctica para Microcontroladores Universidad Evanglica Boliviana Ing. Pablo Zrate A.

39

UNIDAD 6

MANEJO DEL DISPLAY DE 7 SEGMENTOS

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.

PROGRAMACION DE CIRCUITO CON DISPLAY DE 7 SEGMENTOSAhora se realizara la programacin necesaria para el uso del Display de 7 Segmentos, conforme al esquema del circuito. Bsicamente consistir en un contador que mostrara los nmeros del 0 al 9 con intervalos de 1 segundo. Como cada nmero debe mostrarse en el Display, debemos realizar una codificacin para cada letra y su respectivo valor binario que enviara el MCU. En el tipo ctodo comn un valor lgico 1 encender el segmento de esta manera nuestra tabla ser: Display: addwf PCL,F retlw b'00111111' retlw b'00000110' retlw b'01011011' retlw b'01001111' retlw b'01100110' retlw b'01101101' retlw b'01111101' retlw b'00000111' retlw b'01111111' retlw b'01101111' Digito 0 1 2 3 4 5 6 7 8 9 p 0 0 0 0 0 0 0 0 0 0 g 0 0 1 1 1 1 1 0 1 1 f 1 0 0 0 1 1 1 0 1 1 e 1 0 1 0 0 0 1 0 1 0 d 1 0 1 1 0 1 1 0 1 1 c 1 1 0 1 1 1 1 1 1 1 b 1 1 1 1 1 0 0 1 1 1 a 1 0 1 1 0 1 1 1 1 1

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

40

Ing. Pablo Zrate A.

UNIDAD 6

MANEJO DEL DISPLAY DE 7 SEGMENTOS

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

MANEJO DE VARIOS DISPLAY DE FORMA MULTIPLEXADACuando se desea representar dgitos en dos o ms Display de 7 segmentos, es comn utilizar la tcnica de multiplexar, donde el MCU genera las seales para manejar los puntos comunes nodo o ctodo por un lado y los segmentos por el otro, de esta manera es posible conectar varios Displays al mismo puerto o bus de datos del MCU.

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

41

Ing. Pablo Zrate A.

UNIDAD 6

MANEJO DEL DISPLAY DE 7 SEGMENTOS

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.

II ACTIVIDADES DE PROFUNDIZACION E INTEGRACIONRealizar programa para manejar varios display simultneamente. Realizar el montaje y programacin en circuito para pruebas. Realizar la codificacin para un display CA.

IV BIBLIOGRAFIAMicro-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

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

42

Ing. Pablo Zrate A.

UNIDAD 7

MANEJO DEL LCD

I OBJETIVOS DEL TEMAPROFESIONAL: Tener conocimiento para manejo del modulo LCD. PERSONAL: Despertar el inters en el estudiante para elaborar aplicaciones basadas en microcontroladores PIC utilizando modulo LCD. PRODUCTIVO: Conocer las opciones y ventajas que brinda integrar un modulo LCD en un sistema de control automtico o monitoreo.

II DESARROLLO DEL TEMAINTRODUCCION AL LCDCuando se disea un circuito electrnico es frecuente encontrarse con la necesidad de visualizar un mensaje que tiene que ver con el estado y mostrar instrucciones para el usuario. Ej. Si se trata de un instrumento de medida ser necesario mostrar valores registrados. Los mdulos de cristal lquido o LCD son una buena opcin para solucionar estos inconvenientes presentando algunas ventajas como ser:

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.

CONEXIN FISICA Y MODOS DE OPERACINA continuacin se describe en la siguiente tabla los pines y sus respectivas funciones. PIN No 1 2 3 4 5 6 PIN ID VSS VDD VO RS RW E FUNCION Tierra 0V Alimentacin +5V Ajuste de contraste Seleccin de Registro Dato=1 Control=0 Operacin de Lectura=1 Escritura=0 Seal de habilitacin Ing. Pablo Zrate A.

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

43

UNIDAD 7 7-14 15 16 DB0-DB7 A K

MANEJO DEL LCD

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.

SET DE INTRUCCIONES DE CONTROL Y DATOSEl modulo LCD responde a un conjunto especial de instrucciones, estas deben ser enviadas por el MCU al display segn la operacin que se requiera. Los pines de control RS, RW y E deben tener un estado determinado. Adems el bus debe mantener el cdigo de control o dato requerido para su procesamiento. Seguidamente se detallan las instrucciones que nos permitir iniciar y configurar el modulo LCD. Clear Display: Borra el modulo LCD y coloca el cursor en la primera posicin 0. Return Home: Coloca el cursor en la posicin 0 y hace que el display comience a desplazarse desde la posicin original, no se modifica el contenido de la DDRAM. Entry Mode Set: Establece la direccin de movimiento del cursor y especifica si la visualizacin se va desplazando a la siguiente posicin de la pantalla o no. Estas operaciones se ejecutan durante la lectura o escritura de la CGRAM o DDRAM ID=1: Auto incremento en la posicin del cursor. ID=0: Auto decremento en la posicin del cursor. S=1: Incluye Desplazamiento del Display. Display On/Off Control: Activa o desactiva el Display, Cursor y parpadeo del Cursor. D: Activa D=1 y Desactiva D=0 el Display C: Activa C=1 y Desactiva C=0 el Cursor B: Activa B=1 y Desactiva B=0 el parpadeo del Cursor. Cursor Shitf: Mueve el cursor y desplaza el display sin cambiar el contenido de la DDRAM. SC: Desplaza la visualizacin SC=1, desplaza el cursor SC=0. RL: Desplaza a la derecha RL=1, desplaza a la izquierda RL=0.

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

44

Ing. Pablo Zrate A.

UNIDAD 7 INSTRUCCIONClear Display Return Home Entry Mode Display On/Off Cursor Shift Function Set Set CGRAM Set DDRAM

MANEJO DEL LCDD7 0 0 0 0 0 0 0 1 BF D7 D7 D6 0 0 0 0 0 0 1 AD AC D6 D6 D5 0 0 0 0 0 1 AG AD AC D5 D5 D4 0 0 0 0 1 DL AG AD AC D4 D4 D3 0 0 0 1 SC N AG AD AC D3 D3 D2 0 0 1 D RL F AG AD AC D2 D2 D1 0 1 ID C AG AD AC D1 D1 D0 1 S B AG AD AC D0 D0 FUNCIONLimpia el Display Inicia el Display Inicia Cursor y Direccin Control del Display y Cursor Desplazamiento del Cursor Configuracin del Display Iniciar direccin CGRAM Iniciar direccin DDRAM Lectura de Ocupado Escribir en GC o DDRAM Leer de CG o DDRAM

RS 0 0 0 0 0 0 0 0 Read Busy 0 Write CG DDRAM 1 Read CG DDRAM 1

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.

Gua Didctica para Microcontroladores Universidad Evanglica Boliviana

45

Ing. Pablo Zrate A.

UNIDAD 7

MANEJO DEL LCD

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 Li