Microcontroladores PIC Parte 3

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 70

150

MTCROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

tiempo que se malgasta en situar y conectar los componentes, los posibles exores de montaje, el coste similar de ambas tarjetas y la mediocre presentacin del prototipo no hacen recomen-dable utilizar este procedimiento. Usando la tarjeta de prototipos PIC18-ME se reducen al mnimo el tiempo y los fallos del montaje. Las patitas de E/S del PIC estn perfectamente sealizadas y accesibles, haciendo inmediata la conexin de los perifricos. El coste de la tarjeta PICIS-ME es similar a la de una de propsito general del mismo acabado. Finalmente, la presentacin tiene una imagen ms profesional y el riesgo de averas es nulo (Figura 10.12). Otra ventaja de las tarjetas de prototipo es que pueden usarse para muchos diseos, ya que finalizado uno de ellos pueden desoldarse los componentes. Con este fin es recomendable montar los perifricos con rapinado. En este proyecto el mdulo principal consiste en conseguir un tiempo patrn de 1 segundo que vaya incrementando el contador de segundos. Al alcanzar el valor de 60 se pondr a cero cl contador de segundos y se incrementar el de minutos. El de minutos pasar a cero al llegar a 60 e incrementar las horas, y stas pasarn a cero al llegar a 24. No hemos juzgado interesante incluir el programa, pero si le interesa puede solicitarlo a Ingeniera de Microsistemas Programados, S. L., que tambin comercializa el kit y el PIC16C54 grabado.

HERRAMIENTAS Y DISEO DE PROYECTOS

15 1

10.5.

UN DADO ELECTRNICO

Se describe la construccin de un dado electrnico que simula las seis caras de los reales y que tambin puede tirarse para sacar un nmero aleatorio del 0 al 6. Para la interpretacin electrnica usaremos un display de 7 segmentos sobre el que se visualizar el nmero de cada tirada y, tambin, un pulsador que indique el momento de la tirada. En la Figura 10.13 se muestra la fotografa de un kit comercial basado en el PIC16C54, que implementa esta aplicacin sobre una cajita de baquelita que contiene la pila de 9 V que precisa su alimentacin.

La Puerta B del PIC, que en la fase de diseo y en la comprobacin en el Micro'PIC Trainer puede ser un PIC 16X84, se configura como salida y sus lneas se aplican a los segmentos del display, como se refleja en la Figura 10.14. La lnea de menos peso de la Puerta A recibe el nivel lgico del pulsador de tirada.

152

MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

En la Figura 10.15 se presenta el organigrama resumido para el programa del dado. En la Figura 10.16 se ofrece una fotografa de la implementacin especial del dato sobre una tarjeta de prototipos PIC18-ME. Lo ms llamativo es la sustitucin del display de 7 segmentos por un presentador que simula al display a base de numerosos leds. El programa lo encontrar en el CD. En los juegos de azar hay jugadores de ventaja que hacen trampas. Una podra consistir en modificar el programa para que cada cierto nmero de veces salga un nmero dado, o incluso para generar una secuencia de nmeros preestablecida. Usted no debe emplear sus conocimientos para lucrarse de forma poco honesta.

HERRAMIENTAS Y DISEO DE PROYECTOS

153

Hay infinidad de juegos que estn esperando su aportacin para que se jueguen ms, sean ms atractivos y hagan disfrutar ms a la gente. Las quinielas, la lotera primitiva, la bonoloto, las damas, la oca, el mus y el ajedrez le necesitan. Aydelos; adems de entretenerse puede entretener a los dems y, de paso, ganar algn premio por su trabajo.

10.6.

SEMFORO REGULABLE

Este sencillo proyecto va a permitir manejar tiempo y usar la memoria de datos EEPROM. Se trata de un semforo corriente con tres luces (roja, verde y mbar), que estn simuladas por tres diodos led de dichos colores. La luz mbar se enciende durante un segundo en la transicin de las otras dos (vase Figura 10.17). Mediante tres pulsadores, conectados a las tres lneas de menos peso de la Puerta A, se regula el tiempo que estarn encendidas las luces roja y verde. Interruptor RAO: Cuando introduce un nivel lgico alto el sistema funciona en modo AJUSTE y se pueden modificar los tiempos de las luces. Si introduce un nivel bajo, funciona en modo NORMAL. Interruptor RAI: Con nivel alto regula el tiempo de la luz roja y con nivel bajo el de la verde. Interruptor RA2: Con nivel alto incrementa el tiempo de la luz seleccionada y con nivel bajo se decrementa.

15 4

MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

Las 8 lneas de la Puerta B se conectan a 8 diodos led integrados en una barra que tienen l a misin de visualizar el nmero de segundos, de 1 a 8, que est encendida la luz. bajo prueba (Figura 10.18).

La duracin establecida para el encendido de las luces roja y verde se registra en posiciones de la memoria de datos EEPROM para no realizar una nueva reprogramacin cuando se desconecta la alimentacin.

10.7.

PRESENTADOR DE MENSAJES

Es un buen ejercicio para experimentar el manejo de pantallas LCD, que en este proyecto se usan para visualizar diversos mensajes previamente grabados. Concretamente, se pueden visualizar hasta 8 mensajes diferentes de acuerdo con el cdigo binario que introduzcan tres interruptores, conectados a las tres lneas de menos peso de la Puerta A. La Figura 10.19 muestra el aspecto de esta aplicacin montada sobre una tarjeta de prototipos PIC 18-ME y la Figura 10.20 el esquema de conexionado. El programa de esta aplicacin, debidamente comentado, se halla en el CD, donde tambin podr encontrar el programa HOLA, que contiene las principales rutinas hsicas que se necesitan para manejar la pantalla LCD.

10.8.

CLAVE DE ACCESO

Como ltimo proyecto se describe una aplicacin que emplea a los dos perifricos ms clsicos en el control de los microcontroladores: teclado y pantalla LCD.

156

MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

HERRAMIENTAS Y DISEO DE PROYECTOS

157

Para controlar el acceso a un recinto se debe pulsar sobre el teclado la tecla A seguida de otras cuatro con diferentes dgitos, que constituyen la clave. Si la clave es correcta se activa durante un segundo un rel, conectado a la lnea RAd, que abre la puerta. Se dan tres oportunidades para introducir la clave correcta. Adems, se utiliza un zumbador piezoelctrico que genera un sonido beep tras la pulsacin de cada tecla. Con la tecla C se puede cambiar la clave y la pantalla LCD genera una serie de mensjes durante la operacin. La clave queda registrada en la memoria EEPROM de datos de forma permanente. La Figura 1021 muestra la disposicin de los perifricos sobre la tarjeta PIC I S-ME y la Figura 10.22 ofrece el esquema de conexionado de los mismos con el PIC. El programa de la clave se ha incluido en el CD.

158

MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

12.1.

PRESENTACIN

Nuestra experiencia profesional nos ha impulsado a seleccionar una herramienta que nos ha proporcionado excelentes resultados didcticos y tcnicos en el desarrollo de proyectos reales basados en microcontrolador. Se trata del laboratorio Universal Trainer, de Ingeniera de Microsistemas Programados, S. L., que dispone de la instrumentacin bsica para la implementacin de diseos electrnicos (fuentes de alimentacin, generadores de funciones, etc.) as como todo tipo de perifricos habituales en las aplicaciones industriales (interruptores, leds, displays de 7 segmentos, zumbadores, potencimetros, etc.) y una amplia placa protoboard para conexionar todos los elementos sin necesidad de soldadura. Junto a dicho laboratorio el fabricante ha desarrollado 7 mdulos de aplicacin desde la Electrnica Digital y los Semiconductores hasta los microcontroladores, pasando por la Electrnica Analgica y los dispositivos lgicos programables PLD. Para el trabajo con microcontroladores existen tres mdulos, uno de los cuales est destinado a trabajar con los PIC desde los dispositivos de Parallax y el lenguaje PBASIC, mientras que los otros dos se orientan a trabajar con el lenguaje Ensamblador sobre el PIC 16F84 o sobre los PIC ms avanzados. Hemos escogido algunas de las aplicaciones contenidas en el mdulo PIC1 destinadas a trabajar en Ensamblador con el PIC 16F84 para iniciar en la implementacin real de aplicaciones a nuestros lectores. Dicho mdulo consta de una coleccin de experiencias, una tarjeta para la grabacin desde el PC del PIC16F84 y un conjunto de componentes auxiliares que conjuntamente con los existentes en el Universal Trainer permiten llevar a cabo todas las prcticas. En el volumen 2 de la obra a todo col or titulada Laboratorio de Prcticas de Microelectrnica, editada por McGraw-Hill, se recogen todas las caractersticas y proyectos destinados a los mdulos con microcontroladores y con PLD. En el CD que acompaa a este libro se incluyen los programas fuente en Ensamblador de los ejercicios que se comentan a continuacin. 12.2. 12.2.1. PRCTICA 0: HERRAMIENTAS DE DESARROLLO Objetivos

Describir las herramientas necesarias para desarrollar las prcticas propuestas en el presente mdulo de Microcontroladores 1, dedicadas al dispositivo PIC 16F84. 207

208 12.2.2.

MICROCONTROLADORES PIC>. DISEO PRCTICO DE APLICACIONES

Herramientas hardware

Se han diseado dos tarjetas de prototipos llamadas PROTO'PIC y PROTO'PIC 2, a elegir por el usuario, y que se entregan totalmente montadas y comprobadas. Ambas incluyen el dispositivo PIC16F84 y son capaces de soportar los dispositivos PIC16F873 y 161`876 de mayores prestaciones. Mediante un sencillo sistema de conexin a base de una regleta de pinos, la tarjeta se inserta en el mdulo board del entrenador Universal Trainer. Sobre este entrenador, se realizan las conexiones elctricas necesarias entre los distintos perifricos y las seales de E/S del PIC en funcin de la aplicacin a realizar. La tarjeta PROTO'PIC o la PROTO'PIC2 se usan tambin en el Mdulo PIC2. La tarjeta PROTO'PIC Es la ms pequea, sencilla y econmica. Est pensada para aquellos usuarios que dispongan de algn tipo de circuito grabador como puede ser el Micro'PIC Trainer o el Micro'PIC Programmer (vase Figura 12.1).

El PIC 161`84 viene montado de serie, junto con el circuito oscilador a 4 MHz. Se ha previsto un zcalo de 28 patillas para insertar y experimentar con los dispositivos PIC de 28 patillas 16F873 y 161`876. De la misma forma, se incluye un cable ICSP (In Circuit Serial Pro que que se conecta en el zcalo apropiado de cualquier grabador de los anteriormente citados. Mediante una hilera de 26 pinos quedan a disposicin del usuario todas las lneas de E/S del PIC, incluidas las de alimentacin. De esta forma, la tarjeta se inserta sobre el mdulo board del entrenador Universal Trainer y de forma rpida y fcil se conectan los perifricos deseados. El PIC puede grabarse sin necesidad de retirar la tarjeta del circuito en el que se est experimentando. Cuando se acciona el conmutador S W l la tarjeta queda en el modo de PROGRAMACIN. El PIC recibe informacin desde el PIC a travs del grabador (Micro'PIC

LOS PRIMEROS DISEOS PRCTICOS

209

Trainer, Micro'PIC Programmer, etc.). Cuando SW1 est sin accionar, el PIC queda en el modo EJECUCIN. Todas las lneas de E/S del mismo estn disponibles en la hilera de pines. La Figura 12.2 muestra la serigrafa con la disposicin de componentes de la tarjeta de prototipos PROTO'PIC. Se puede apreciar claramente la distribucin de las seales presentes en la hilera de pines de conexin.

La tarjeta PROTO'PIC 2 La finalidad y manejo de esta tarjeta es similar a la anterior. Est diseada para aquellos usuarios que no dispongan de ningn tipo de circuito para la grabacin de dispositivos PIC. Dicho circuito de grabacin est incluido en la propia tarjeta lo que la hace totalmente autnoma y funcional (vase Figura 12.3). Se incluye el cable para la conexin con el canal paralelo de un PC a travs del cual y, mediante el software de grabacin adecuado, se proceder a la grabacin del dispositivo PIC que se vaya a emplear. La tarjeta incluye tambin los circuitos de alimentacin y estabilizacin necesarios para obtener las tensiones de trabajo y grabacin. Es necesario alimentarla desde un transformador que suministre 12 VAC. Dicho transformador no est incluido en el kit.

210

MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

La serigrafa de la Figura 12.4 muestra la disposicin de compomentes de la tarjeta y la distribucin de lneas de E/S a travs de la regleta de conexin de 26 pines. Dicha distribucin es idntica a la de la tarjeta PROTO'PIC 2.

12.2.3.

Herramientas software

Con objeto de proporcionar a los usuarios un kit de prcticas totalmente funcional, se incluye, adems de una de las dos tarjetas anteriormente explicadas, los componentes adicionales necesarios as como el CD que contiene lo siguiente:

Los programas fuente Son ficheros de tipo texto editados con cualquier procesador de textos. El EDIT es el procesador de textos integrado en el MS-DOS ms extendido y fcil de emplear, cuya pantalla de trabajo se muestra en la Figura 12.5. No obstante, cualquier otro procesador del entorno Windows puede ser utilizado. La nica condicin es que los ficheros se guarden en formato ASCII. Se recomienda usar los programas ms actuales recogindolos de la pgina web de Microchip. Los programas fuente se guardan en ficheros con extensin ASM y contienen las instrucciones, directivas, etiquetas, mensajes, etc., con las cuales el PIC desarrollar una determinada aplicacin. Un programa fuente en s mismo no puede ser grabado directamente sobre la me-

LOS PRIMEROS DISEOS PRCTICOS

21 1

moria de programa del PIC. Es necesaria una traduccin previa de dicho programa fuente a cdigo mquina o hexadecimal. Dicha traduccin recibe el nombre de ensamblado. En el CD de prcticas se proporcionan todos los programas fuente de los ejercicios propuestos. De esta manera, el usuario evita la tediosa tarea de tener que teclearlos. A pesar de todo, pueden ser editados para su modificacin, impresin, etc. El Ensamblador MPASM Es el encargado de traducir las instrucciones del programa fuente en sus equivalentes en cdigo mquina para su posterior grabacin sobre la memoria intena del PIC. En el CD de prcticas se suministra el Ensamblador MPASM de Microchip en su versin MS-DOS. Este fabricante ofrece, en su pgina web, constantes actualizaciones y mejoras. Tambin contiene ensambladores y entornos de trabajo para Windows, as como los respectivos manuales. Todo ello se puede recoger desde la pgina http://www.microchip.com. L e recomendamos utilizar la ltima versin disponible. El MPASM se ejecuta desde MS-DOS tecleando MPASM desde la lnea de comandos en el directorio actual o indicando la ruta donde se encuentre. Aparece una pantalla de trabajo como la mostrada en la Figura 12.6. En el campo superior Source File se indica ruta y/o el nombre del fichero fuente (*.ASM) a ensamblar. El resto de campos se completa con una serie de valores por defecto, como se ve en la figura anterior. El proceso de ensamblado se inicia al pulsar la tecla F10. Tras ensamblar un fichero fuente se obtienen otros tres ficheros de idntico nombre pero con extensiones diferentes:

21.2

MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

El software de grabacin Mediante este software es posible proceder a la grabacin del PIC con el fichero de cdigo mquina obtenido tras el ensamblado. Los usuarios que adquieran la tarjeta de prototipos PROTO'PIC se les supone en disposicin de los grabadores Micro'PIC Trainer y/o Micro'PIC Progranuner (entre otros), y deben estar familiarizados con el correspondiente software de grabacin. Por su parte, aquellos usuarios que hayan adquirido la tarjeta de prototipos PROTO'PIC 2 pueden utilizar el software PROTOPIC que se incluye en el CD de prcticas y que se explica a continuacin. La pantalla de trabajo se muestra en la Figura 12.7 y es muy similar al software de grabacin de Micro'PIC Trainer y Micro'PIC Programmer. En la ventana SELECCIN DE MODELO se selecciona el tipo de PIC que se va a emplear. Las caractersticas ms relevantes del mismo se resumen en la ventana inferior MODELO ELEGIDO. Mediante COMPROBACIN DE BORRADO se activa o no la posibilidad de comprobar si un PIC est borrado antes de proceder a su grabacin. Con la ventana PALABRA DE CONFIGURACIN se seleccionan las distintas modalidades posibles para configurar el PIC: proteger o no el cdigo interno, activar o no el temporizador Watchdog (WDT), activar o no el temporizador de arranque (Power Timer), as como seleccionar el tipo de oscilador. La ventana superior representa el BUFFER DE MEMORIA DE PROGRAMA donde se visualiza los cdigos hex. que sern transferidos hacia o desde el PIC. Los ocho botones de la parte inferior permiten realizar una serie de tareas tpicas. Abrir Fichero permite seleccionar de entre los ficheros ejecutables *.HEX, el que se desea grabar,

LOS PRIMEROS DISEOS PRCTICOS 213

transfirindose al buffer de memoria. Programar Todo graba sobre el PIC tanto el contenido del buffer como la palabra de configuracin actual. Por su parte, el botn Programar Palabra slo graba la palabra de configuracin y no el buffer de memoria. El botn de Verificar comprueba si el contenido de la memoria de programa del PIC coincide con el del buffer de memoria. El botn Leer Pic lee el contenido de la memoria de programa de ste y lo visualiza en el buffer. El botn Borrar borra completamente el contenido actual del PIC. La comprobacin de borrado se realiza mediante el botn Comprobar Borrado. Finalmente, el botn Salir termina la ejecucin del software de grabacin devolviendo el control al sistema operativo.

12.2.4.

Tutorial

Mediante este sencillo tutorial se pretende resumir de forma clara y concisa todos los pasos que se deben llevar a cabo para realizar las prcticas propuestas. 1. Realizar las conexiones elctricas del montaje de la prctica en cuestin, siguiendo las instrucciones y esquemas en cada caso particular. Para ello se inserta la tarjeta de prototipos PROTO'PIC o PROTO'PIC2 en el entrenador Universal Trainer, donde se hace el tableado apropiado.

214 2.

MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

3.

4.

Ensamblar, mediante el ensamblador MPASM, el programa fuente correspondiente y que viene editado en el CD de prcticas. Dicho programa se puede editar y modificar mediante el editor EDIT o cualquier otro. Si hubiera errores de ensamblado se locali zan con ayuda del fichero *.ERR, se corrigen en el fuente *.ASM y se vuelve a ensamblar. Grabaremos sobre el PIC el cdigo mquina obtenido y que estar disponible en el fichero *.HEX. Para ello se sigue la siguiente secuencia: a) Se ejecuta el software de grabacin correspondiente. Si se emplea la tarjeta PROTO'PIC2, sta se debe conectar directamente al canal paralelo del PC y se ejecuta el programa PROTOPIC. En caso de utilizar la tarjeta PROTO'PIC, sta debe conectarse con el zcalo del grabador que se vaya a emplear (Micro'PIC Tramer, Micro'PIC Programmer, etc.), mediante el cable plano incluido. Se ejecuta el programa correspondiente. b) Conectar las alimentaciones tanto del Universal Trainer como del grabador (PROTO'PIC2, Micro'PIC Trainer, Micro'PIC Programmaer, etc.). c) Se pulsa el conmutador SW1 para poner la tarjeta de prototipos en el modo de programacin. Se recuerda a los usuarios de Micro'PIC Trainer que los jumpers J5, J6 y J7 deben estar abiertos. d) Se selecciona el modelo de PIC a emplear y se comprueba que est borrado. Se abre el fichero *.HEX deseado y, mediante la palabra de configuracin, se selecciona el oscilador XT y Watchdog como corresponda. Acto seguido se graba y verifica. e) Una vez grabado el programa, el conmutador SW 1 se pone en la posicin RUN de ejecucin. Comprobamos el correcto funcionamiento de la prctica y hacemos las modificaciones que en cada caso sugiera el apartado dedicado al trabajo personal.

12.3. 12.3.1.

PRCTICA 1: SENCILLO EJEMPLO DE MANEJO DE LA E/S Objetivos

Realizar un ejemplo, lo ms sencillo posible, que permita analizar la forma de programar las lneas de E/S de un PIC16F84, para el posterior control de los perifricos conectados a las mismas. 12.3.2. Fundamentos tericos bsicos

El microcontrolador PIC 16F84 dispone de un total de 13 patillas o lneas de E/S a travs de las cuales se conectan los distintos perifricos que se desean gobernar. Esas 13 lneas se agrupan en dos puertas. La puerta A est representada en la posicin 0x05 del rea de datos. Cualquier instruccin de un programa que implique leer o escribir sobre esta posicin, conlleva obtener o sacar informacin binaria por las cinco lneas que componen dicha puerta y que se denominan RA0-RA4. Los tres bits de ms peso de la posicin 0x05 no estn reflejados en ninguna lnea, por lo que no tienen ningn valor.

LOS PRIMEROS DISEOS PRCTICOS

215

Por su parte, la puerta B est representada en la posicin 0x06 del rea de datos. Al igual que en el caso de la puerta A, cualquier operacin de lectura o escritura sobre esta posicin permite obtener o sacar informacin binaria por las ocho lneas de que consta esta puerta y que se denominan 11130-11137. Paralelamente, asociados a estas puertas existen dos registros llamados TRISA y TRISB. Se localizan en las posiciones 0x05 y 0x06 del banco 1 del rea de datos, respectivamente. Segn el valor binario que se almacene en ellos se determinan si las lneas de las puertas A y B actuarn como entradas o salidas. Un bit 0 en cualquier posicin de cualquiera de estos registros, configura la lnea de la puerta correspondiente como salida, un bit 1 la configura como entrada. Cualquiera de las lneas de ambas puertas pueden configurarse, por tanto, como entrada o como salida de forma independiente.

12.3.3.

Esquema electrnico

La Figura 12.8 muestra el esquema de las conexiones a realizar entre el entrenador Universal Trainer y la tarjeta PROTO'PIC o PROTO'PIC2.

12.3.4.

Materiales necesarios

21 6

MICROCONTROLADORES

PIC. DISEO PRCTICO DE APLICACIONES

12.3.5.

Montaje prctico

Consiste en conectar cinco interruptores de entrada EO-E4 a las lneas RAO-RA4 y cinco Ieds de salida SO-S4 a las lneas RBO-RB4 de la tarjeta PROTO'PIC. La alimentacin de esta tarjeta se realiza por los pines I y 3 (GND) y por el pin 2 (+5 Vcc). La fotografa de la Figura 12.9 muestra el montaje del circuito.

12.3.6.

Desarrollo de la prctica

El programa que se presenta en el fichero PRACTI.ASM realiza la lectura de los cinco interruptores de entrada conectados a RAO-RA4. El estado lgico de los mismos se representa en l os cinco leds de salida conectados a RBO-RB4. La Figura 12.10 presenta el organigrama de trabajo correspondiente.

12.3.7.

Trabajo personal

En esta primera prctica, el trabajo personal consistir en realizar los pasos necesarios para la comprobacin del funcionamiento del programa propuesto. 1. Una vez editado el programa fuente (est editado en el fichero EJER1.ASM i ncluido en el CD de prcticas) se proceder a ensamblarlo. Para ello se utilizar el ensamblador MPASM incluido tambin en dicho disco. Se obtiene as el programa ejecutable EJERl .HEX. Mediante el software de grabacin PROTOPIC, tambin incluido, se proceder a grabar el PIC con el fichero ejecutable obtenido en el paso anterior. La palabra de configuracin debe establecer al WDT en OFF, el oscilador del tipo XT y la proteccin de cdigo en OFF.

2.

LOS PRIMEROS DISEOS PRCTICOS

217

3.

Suponiendo que el montaje del esquema de la Figura 12.8 ya est realizado sobre el Universal Trainer, se procede a verificar el correcto funcionamiento del programa. Basta cambiar de estado los interruptores EO-E4 del entrenador para apreciar el mismo cambio de estado en los leds SO-S4.

12.4. 12.4.1.

PRCTICA 2: CONTROL DE UNA LMPARA DESDE DOS INTERRUPTORES Objetivos

Realizar un programa que controle la salida en funcin de dos seales de entrada distintas. 12.4.2. Fundamentos tericos bsicos

Es muy frecuente tener que controlar una carga (motor, lmpara, etc.) desde dos puntos situados a cierta distancia entre ellos. Es el clsico caso de una habitacin con una instalacin conmutada en la que una lmpara se gobierna desde dos interruptores colocados en posiciones distantes entre s. Desde cualquiera de ellos, se puede gobernar el encendido o apagado de la lmpara.

218

MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

Inicialmente, cuando ambos interruptores estn en reposo (a nivel 0) la lmpara permanece apagada (a nivel 0). A partir de esta situacin, cada vez que cambie el estado de cualquiera de los interruptores, tambin cambiar el estado de la lmpara. La tabla de la verdad mostrada muestra los diferentes estados lgicos del sistema a realizar.

12.4.3.

Esquema electrnico

Se muestra en la Figura 12.11. Se aprecia cmo dos interruptores de entrada se conectan con l as lneas RAO y RA1. La salida a la lmpara se simula mediante un diodo del conectado en S0.

12.4.4.

Materiales necesarios

LOS PRIMEROS DISEOS PRCTICOS

219

12.4.5.

Montaje prctico

Se muestra en la fotografa de la Figura 12.12. Conectar la alimentacin del [ndulo PROTO'PIC. Las seales de entrada RA0 y RAl se conectan con los interruptores E0 y El respectivamente. La salida RBO se conecta con el led S0 que simula la Impara a gobernar.

12.4.6.

Desarrollo de la prctica

El organigrama de la Figura 12.13 representa la secuencia de trabajo que realiza el programa propuesto. Dicho programa est disponible en el CD de prcticas, en el fichero PRACTIASM.

12.4.7.

Trabajo personal

Analizar las instrucciones del programa para llegar a su total comprensin. Una vez ensamblado mediante el Ensamblador MPASM, proceder a grabarlo en el PIC y comprobar su correcto funcionamiento en base a la tabla de la verdad anterior.

12.5. 12.5.1.

PRCTICA 3: EJEMPLO COMBINACIONAL Objetivos

El ejemplo pretende mostrar cmo, mediante el programa adecuado, es posible resolver cualquier automatismo de tipo combinacionel. Un nmero determinado de salidas se activan en funcin de las combinaciones binarias presentes en un nmero determinado de lneas de entrada.

220

MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

12.5.2.

Fundamentos tericos bsicos

Como novedad, en esta prctica se propone el empleo del WDT. Se trata de un temporizador que est incluido en todos los modelos de dispositivos PIC. Su misin consiste en provocar un reinicio del sistema cada vez que se sobrepase un intervalo de tiempo determinado. Dicho intervalo es de 18,2 ms multiplicado por el valor del preescaler interno.

LOS PRIMEROS DISEOS PRCTICOS

221

Para evitar que haya sobrepasamiento, el programador debe intercalar estratgicamente en su programa, la instruccin de refresco del WDT (CLRWDT), evitando as el reinicio del sistema. En aplicaciones reales es muy interesante contemplar el empleo del WDT y su correspondiente refresco peridico. De esta manera, si el sistema por cualquier motivo se bloqueara, el programa deja de ejecutarse y con ello la ejecucin de la instruccin de refresco CLRWDT. El WDT sigue su temporizacin hasta que sobrepase el intervalo de tiempo, provocando un reinicio automtico del sistema sin intervencin humana de ningn tipo.

12.5.3.

Esquema electrnico

12.5.4.

Materiales necesarios

12.5.5.

Montaje prctico

Se presenta en la fotografa de la Figura 12.15. Como en ocasiones anteriores se debe asegurar la correcta alineacin de la tarjeta PROTO'PIC.

222

MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

12.5.6.

Desarrollo de la prctica

El programa fuente que resuelve el automatismo propuesto se encuentra en el CD de prcticas, en el fichero PRACTIASM.

12.5.7.

Trabajo personal

Se propone realizar un programa que, en funcin de las combinaciones presentes en las entradas RAO, RA 1 y RA2, gobierne las salidas RBO, RB 1, RB2 y RB3 de acuerdo a la tabla de la verdad mostrada en la pgina siguiente.

LOS PRIMEROS DISEOS PRCTICOS

22 3

12.6. 12.6.1.

PRCTICA 4: EJEMPLO SECUENCIAL Objetivos

Se pretende resolver un automatismo de tipo secuencial en el que la salida no depende del estado actual de las entradas, sino tambin del estado anterior de stas.

12.6.2.

Fundamentos tericos bsicos

Efectivamente, en ocasiones el control de una o varias salidas no depende del estado lgico actual de las entradas, tambin depende de la secuencia de estados lgicos que se produjeron sobre esas entradas. El ejemplo propuesto trata de gobernar un zumbador de alarma mediante dos pulsadores: ON y OFF. Cuando se activa durante un breve espacio de tiempo el pulsador ON, la alanna se activa y permanece activada aunque dicho pulsador se desactive. Si se activa el pulsador OFF, la alarma se desconecta y se mantiene en este estado aunque el pulsador OFF vuelva a la posicin de reposo y se desactive. Si ambos pulsadores permanecen activados simultneamente, la alarma permanecer desactivada. Realmente el ejemplo propuesto responde al funcionamiento de un flip-flop tipo R-S asncrono cuya tabla de la verdad se muestra:

12.6.3.

Esquema electrnico

Se muestra en la Figura 12.17. Los pulsadores El 0 y El 1 del entrenador Univeresal Trainer proporcionan las seales de entrada ON y OFF respectivamente, y se conectan a las seales

224

MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

RAO y RA 1. La seal de salida RBO se conecta con el zumbador del entrenador a modo de alarma sonora.

12.6.4.

Materiales necesarios

12.6.5.

Montaje prctico

Se muestra en la fotografa de la Figura 12.18. La tarjeta PROTO'PIC se alimenta con +5 Vcc. Los pulsadores E10 y E11 se conectan con las entradas RAO y RA1, respectivamente. La salida RBO se conecta bien con el zumbador presente en el Universal Trainer o bien con cualquiera de los led SO-S7.

12.6.6.

Desarrollo de la prctica

El programa fuente se encuentra en el fichero PRACT4.ASM del CD de prcticas y se corresponde con el organigrama de trabajo que se muestra en la Figura 12.19.

LOS PRIMEROS DISEOS PRCTICOS

225

226 12.6.7.

MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

Trabajo personal

Ensamblar el programa fuente y grabarlo sobre el microcontrolador situado en la tarjeta PROTO'PIC. Montar el circuito segn el esquema de la Figura 12.17 para verificar el funcionamiento. Inicialmente la salida permanece desconectada. Basta pulsar E10 para comprobar que la salida se activa y permanece en este estado a pesar de soltar E10. Cuando se acciona E l 1, la salida se desconecta y permanece en estado aun cuando E l 1 deje de accionarse. Finalmente, si se pulsan ambos pulsadores simultneamente, la salida queda desconectada. Al soltarlos, el estado de la salida depender del ltimo pulsador que se dej de accionar.

12.7. 12.7.1.

PRCTICA 5: EL TMR0, JUEGO DE LUCES Objetivos

Explicar el funcionamiento y el manejo del TMR0. Para ello se propone un sencillo ejemplo consistente en un juego de luces en el que cada lmpara permanece iluminada un determinado tiempo controlado por dicho TMR0.

12.7.2.

Fundamentos tericos bsicos

El TMR0 consiste en un temporizador de 8 bits que est presente en todos los miembros de la familia PIC. Puede trabajar en modo temporizador o en modo controlador. En el primero de los casos, el TMR0 evoluciona a la cuarta parte de la frecuencia de trabajo del sistema (Fosc/4 = 4Tosc), es decir, cada cuatro pulsos del oscilador principal. Suponiendo un PIC trabajando a una frecuencia de 4 MHz, la evolucin del TMR0 se produce cada 1 ps. El TMR0 puede trabajar asociado a un divisor o preescaler que divide los pulsos a contar por un valor seleccionable comprendido entre 2 y 256. De esta forma se puede aumentar el tiempo mximo de temporizacin. En general, dicho tiempo se calcula segn la siguiente frmula:

donde 4 x Tose es cuatro veces el perodo de la frecuencia de trabajo (4 x Tosc), N representa el valor de 8 bits que cuenta el propio TMR0 y P el valor del preescaler seleccionado. Cada vez que el TMR0, como consecuencia de su constante evolucin, alcanza el valor 0, se dice que se ha desbordado. Este suceso queda reflejado en el bit TOIF del registro INTCON, que se pone a nivel 1 . Este bit habr que reponerlo a nivel 0 si se desea controlar una nueva temporizacin. El TMR0 es un contador de tipo ascendente. Para hacer una correcta temporizacin, hay que cargar el complemento a 2 del valor deseado.

LOS PRIMEROS DISEOS PRCTICOS

227

12.7.3.

Esquema electrnico

Se muestra en la Figura 12.20. Es un circuito muy sencillo en el que basta conectar los led SO-S7 del entrenador Universal Trainer con las seales RB0-RB7 de la tarjeta de prototipos PROTO' PIC.

12.7.4.

Materiales necesarios

12.7.5.

Montaje prctico

Se muestra en la fotografa de la Figura 12.21. Se recuerda una vez ms la necesidad de alimentar correctamente la tarjeta de prototipos PROTO'PIC.

12.7.6.

Desarrollo de la prctica

El fichero PRACT5.ASM del CD de prcticas contiene el programa fuente correspondiente a esta prctica. El organigrama de trabajo se muestra en la Figura 12.22. Consiste en un juego de

22 8

MICROCONTROLADORES PI( -. DISEO PRCTICO DE APLICACIONES

l uces en el que las salidas se van activando secuencialmente una tras otra durante un intervalo de tiempo de 0,1" controlado por el TMRO, dando una sensacin de movimiento. El timer evo-luciona cada 1 microseg. dado que la frecuencia de trabajo es de 4 MHz. Se ha seleccionado un preescaler de 256 y el valor que se carga el TMRO es de 195. La temporizacin as obtenida es de 49,9 ms. Como esto no es suficiente, dicha temporizacin se manda repetir dos veces, con l o que el tiempo final transcurrido es de 99,9 ms (0,1 "). La activacin secuencia) de las salidas se realiza mediante la instruccin de rotacin de derecha a izquierda del valor binario inicial 00000001.

LOS PRIMEROS DISEOS PRCTICOS

229

12.7.7.

Trabajo personal

Se propone modificar el programa desde dos puntos de vista diferentes. Por un lado, variar la temporizacin que mantiene activada cada salida, haciendo que el efecto de movimiento sea ms o menos rpido. Por otra parte, el programa se puede mejorar haciendo que el sentido de l a rotacin se pueda seleccionar mediante un interruptor de entrada conectado, por ejemplo, a l a lnea RA4.

12.8. 12.8.1.

PRCTICA 6: Usando el preescaler, otro juego de luces Objetivos

Estudiar el funcionamiento y el manejo del preescaler mediante un ejemplo que permite modificar el valor del mismo con objeto de realizar temporizaciones variables.

12.8.2.

Fundamentos tericos bsicos

El preescaler no es ni ms ni menos que un divisor de frecuencia. El factor de divisin se puede ajustar entre una serie de valores. Todos los dispositivos de la familia PIC disponen de un preescaler con un factor de divisin de entre 1:2 y 1:256. Dicho preescaler se puede asociar al TMR0, o bien al WDT del PIC, pero no a los dos al mismo tiempo. Cuando se asocia al TMR0, se puede aumentar el valor mximo posible de la temporizacin, tal y como se analiz en la prctica anterior. El TMR0, evoluciona en funcin del valor seleccionado del preescaler. Si, por ejemplo, se selecciona el valor 1:2, el TMR0, evoluciona cada dos pulsos de reloj o eventos. Un preescaler de 1:256 har que el TMR0, evolucione cada 256 de esos eventos. El bit PSA del registro OPTION permite determinar a quin se asigna el preescaler, al TMR0, o al WDT. Igualmente los bits PS2, PSI y PSO de ese mismo registro permiten seleccionar el factor de divisin segn la tabla siguiente:

230 12.8.3.

MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

Esquema electrnico

Se muestra en la Figura 12.23. Los interruptores EO-E2 se conectan a las entradas RA0-RA2 respectivamente. Los led SO-S7 se conectan con las salidas RB0-RB7

12.8.4.

Materiales necesarios

12.8.5.

Montaje prctico

Se conectan los interruptores de entrada EO-E2 con las lneas RA0-RA2S, que sern utilizadas como entradas. Los led SO-S7 se conectan con las lneas RB0-RB7S, que se emplearn como salidas. Estos led se irn encenciendo secuencialmente a diferentes velocidades (vase Figura 12.24).

12.8.6.

Desarrollo de la prctica

El fichero PRACT6.ASM del CD de prcticas contiene el programa fuente con el ejemplo en cuestin. Habr que ensamblarlo y grabarlo en el PIC para, una vez realizado el montaje, comprobar el funcionamiento. El organigrama de la Figura 12.25 muestra el esquema de trabajo.

LOS PRIMEROS DISEOS PRCTICOS

2.31

Figura 12.25.

Organigrama

de trabajo del juego de luces.

Es muy similar al ejemplo de la prctica anterior. En esta ocasin el valor del preescaler no es fijo, viene determinado por el estado lgico de los i nterruptores EO-E2 de entrada. Segn dicho estado, se selecciona uno de los ocho posibles factores de divisin. Cuando estn a 000, se selecciona el factor 1:2, que corresponder con la temporizacin ms corta. Cuando estn a 111, se selecciona el factor 1:256, que se corresponder con la temporizacin ms larga.

232

MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

EL TMR0, se carga para contar 50 eventos de 1microseg.. Esta cuenta se repite 200 veces, lo que da un lapsus de 10 ms. Si el preescaler elegido es de 1:2, la temporizacin mnima ser de 20 ms. Con un preescaler de 1:256, dicha temporizacin aumenta hasta 2,56"". El efecto que estas variaciones producirn sobre las salidas estar relacionado con la velocidad a la que se van encendiendo secuencialmente cada una de las luces.

12.8.7.

Trabajo personal

Al igual que en la prctica anterior, se sugiere hacer las modificaciones de programa necesarias para variar los tiempos as como las secuencias de encendido de las lmparas de salida.

12.9. 12.9.1.

PRCTICA 7: MANEJANDO EL WDT Y EL MODO SLEEP Objetivos

Explicar el funcionamiento y manejo del temporizador WDT as como sus posibles aplicaciones. Igualmente se emplea la instruccin SLEEP como mtodo para colocar el PIC en el modo standby de bajo consumo.

12.9.2.

Fundamentos tericos bsicos

El WDT consiste en un temporizador cuya base de tiempos es totalmente independiente del resto del sistema. Esto quiere decir que, a pesar de que el PIC estuviera en standby, o bloqueado, o en cualquier otra situacin, el WDT seguir funcionando. La nica forma de conectarlo o desconectarlo es a travs de la palabra de configuracin durante el proceso de grabacin del dispositivo y no mediante el programa de aplicacin. La temporizacin nominal que realiza es de 18,2 ms. Dicha temporizacin puede verse aumentada si al WDT se le asocia el preescaler estudiado en la prctica anterior. Si durante este intervalo no es refrescado mediante la instruccin CLRWDT se produce o bien un reini cio general del sistema, o bien una reanudacin de la ejecucin del programa (WAKE-UP) si el dispositivo hubiera estado en standby. En el primero de los casos, el PC se carga con la direccin 0000 del vector de RESET. La ejecucin del programa comienza desde el principio. En cualquier caso el bit/TO# del registro STATUS se pone a 0 informando de alguna manera que el reinicio ha sido provocado por desbordamiento del WDT y no por que se acabe de encender el sistema o se haya accionado l a seal de entrada MCLR#, que es activa por nivel bajo. Si, por otra parte, el microcontrolador se encontraba en el modo standby de bajo consumo, el desbordamiento del WDT provoca su despertar (WAKE-UP) y reanuda la ejecucin desde donde se qued. La instruccin SLEEP pone al microcontrolador en el modo standby de bajo consumo. Su ejecucin en cualquier punto del programa detiene toda actividad del microcontrolador. Existen dos formas de cancerlar el modo standby: una por desbordamiento del WDT, como ya se ha comentado, y otra cuando se produce cualquier tipo de interrupcin.

LOS PRIMEROS DISEOS PRCTICOS

233

12.9.3.

Esquema electrnico

Se muestra en la Figura 12.26 y es idntico al de la Figura 12.23 de la prctica anterior.

12.9.4.

Materiales necesarios

12.9.5.

Montaje prctico

12.9.6.

Desarrollo de la prctica

La Figura 12.28 muestra el organigrama de trabajo al que responde el programa fuente incluido en el fichero PRACT7.ASM del CD de prcticas. Consiste en un contador binario cuya cuenta se refleja en los leds de salida. El preescaler queda asociado al WDT y el factor de divisin se establece segn el valor binario que se introduce mediante los interruptores EO-E2 a travs de RA0-RA2.

23 4

MICROCONTROLADORES <PIC>. DISEO PRACTICO DE APLICACIONES

El microcontrolador se pone en el modo standby al ejecutar la instruccin SLEER A pesar de ello el WEIT sigue funcionando. Cuando se desborda, se reanuda la ejecucin del programa. Se incrementa el contador binario, se lee el estado actual de las entradas RA0-RA2 y se actualiza el valor para el preescaler.

LOS PRIMEROS DISEOS PRCTICOS

235

IMPORTANTE: Una vez ensamblado el programa se proceder a grabar el microcontrolador asegurndose de que el WDT se activa mediante la palabra de configuracin. En caso contrario, si el WDT est desconectado, el modo standby se mantiene permanentemente no producindose cuenta binaria alguna.

12.9.7.

Trabajo personal

Analizar el funcionamiento del circuito comprobando que, segn el estado de EO-E2, la cuenta avanza ms o menos rpido. Si los tres interruptores estn a 0, el preescaler seleccionado para el WDT es de un factor de 1:1. La cuenta se incrementa cada 18,2 ms. Si por el contrario esos i nterruptores estn a 1 , el factor es de 128 y la cuenta evoluciona cada 2,3 (0,018 x 128).

12.10. 12.10.1.

PRCTICA 8: EL TMR0, COMO CONTADOR DE PULSOS EXTERNOS Objetivos

Analizar otro modo de funcionamiento del TMR0, que consiste en la posibilidad de contar eventos o pulsos externos.

12.10.2.

Fundamentos tericos bsicos

El TMR0, tiene dos modos de trabajo: modo temporizador y modo contador. Ambos modos son bsicamente iguales. Se dice que el TMR0, trabaja en el modo temporizador, tal y como se ha venido utilizando hasta ahora, cuando la base de tiempos es la propia frecuencia del sistema (Fosc/4 = 4Tosc). Dado que la frecuencia es conocida, resulta fcil controlar con exactitud el valor de una determinada temporizacin. Basta multiplicar 4 veces el perodo de dicha frecuencia de trabajo (4Tosc) por el valor cargado con el propio TMR0, y por el preescaler seleccionado (si ste est asignado al TMR0, Sin embargo, el TMR0, tambin puede temporizar en base a una frecuencia o pulsos externos que se introducen por la patilla RA4/TOCKI. Como esa frecuencia puede ser desconocida o los pulsos no tienen por qu ser peridicos, en lugar de temporizar se habla de contar. El bit TOCS del registro OPTION permite seleccionar entre estos dos modos de trabajo. Por otra parte, el bit TOSE del mismo registro permite establecer si los pulsos externos sern contados en cada flanco ascendente o descendente. El empleo del TMR0, en el modo contador es similar al ya conocido. Se selecciona el preescaler (si procede), se carga el TMR0, con el nmero de pulsos a contar (su complemento a 2, dado que es un contador ascendente) y se detecta el final de la cuenta cuando el bit TOIF del registro INTCON pasa a nivel 1.

12.10.3.

Esquema electrnico

Se muestra en la Figura 12.29.

236

MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

12.10.4.

Materiales necesarios

12.10.5.

Montaje prctico

Es el mostrado en la Figura 12.30. Se emplea el generador lgico del entrenador. Se encargar de suministrar los pulsos a contar. Se recomienda seleccionar la mnima frecuencia disponible. Tambin se pueden emplear pulsadores para generar los pulsos, pero stos producen el efecto rebote que se tratar ms adelante, y la cuenta puede verse alterada. 12.10.6. Desarrollo de la prctica

LOS PRIMEROS DISEOS PRCTICOS

237

El ejemplo emplea una vez ms al WDT como temporizador auxiliar. Efectivamente, el programa queda en standby tras ejecutar la instruccin SLEER El desbordamiento del WDT se producir aproximadamente al de 2" dado que se le asign un preescaler de 128 (0,0182 x 1 28). Cuando esto ocurre, se reanuda la ejecucin del programa habilitando nuevamente el generador lgico (RB 1 = 1) y desconectando el led S0 (RB0 = 0).

238

MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

12.10.7.

Trabajo personal

Ensamblar el programa fuente y grabarlo sobre el dispositivo PIC. Se recuerda que el WDT debe quedar activado, de lo contrario el led SO quedar activado permanentemente al no finalizar nunca la situacin de standby producida por la instruccin SLEER Comprobar igualmente que, variando el valor binario de los interruptores EO-E3 de entrada, se vara el nmero de pulsos a contar.

12.11. 12.11.1.

PRCTICA 9: LA INTERRUPCIN DEL TMRO Objetivos

Ensear el concepto de las interrupciones y manejar la interrupcin que puede producir el TMRO cada vez que desborde y alcance el valor 0.

12.11.2.

Fundamentos tericos bsicos

Una interrupcin provoca que el procesador cancele temporalmente el trabajo en curso, tambin llamado programa principal, y pase a ejecutar otra tarea o programa, llamado programa de tratamiento de la interrupcin. Cuando se produce una interrupcin, el sistema guarda, de forma automtica, la direccin actual del PC sobre un rea de registros especiales llamada pila. Dicha pila consta de 8 niveles o registros que se gestionan automticamente y no son accesibles por los programas del usuario. Seguidamente, el PC se carga con una direccin fija llamada vector de interrupcin, que en el caso de los PIC es la 0x004. A partir de esta direccin comienza el programa de tratamiento oportuno. Al final de ste se coloca la instruccin RETFIE, que recupera desde la pila y devuelve al PC la direccin de donde parti. Se contina as con la ejecucin del programa principal. El TMRO es uno de los perifricos que pueden provocar, si se desea, interrupcin cada vez que finalice la temporizacin. Para ello basta activar el bit GIE del registro INTCON, que otorga un permiso general de interrupciones, y el bit TOIE que habilita la interrupcin del TMRO en particular. Cuando se provoca y acepta una interrupcin, el bit GIE se pone a 0 automticamente, volviendo a 1 cuando se ejecuta la instruccin RETFIE al final del tratamiento. De esta forma se garantiza que durante un tratamiento de interrupcin no pueda provocarse ninguna otra.

12.11.3.

Esquema electrnico

Para hacer una demostracin del funcionamiento de la interrupcin del TMRO, se propone montar el circuito representado en la Figura 12.32.

LOS PRIMEROS DISEOS PRCTICOS

239

12.11.4.

Materiales necesarios

12.11.5.

Montaje prctico

Es el mostrado en la Figura 12.33. Basta conectar los interruptres EO y El a las entrads RAO y RA l. Las salidas RBO y RB l se conectan a los leds SO y SI, que reflejarn el estado lgico de los interruptores anteriores. Finalmente, la salida RB7 se conecta al led S7, que producir intermitencia cada vez que haya una interrupcin.

12.11.6.

Desarrollo de la prctica

El organigrama de trabajo se representa en la Figura 12.34 y se corresponde con el programa fuente del fichero PRACT9.ASM del CD de prcticas. El TMR0, se programa para que provoque una interrupcin cada 50 ms. Para ello se carga con el valor 195 y se le asocia un preescaler de 256. Cada vez que se provoquen 5 interrupciones, se produce un cambio de estado de la salida RB8. Este cambio se realiza, por tanto, cada 250 ms (50 ms -5). Al margen de ello, el programa est leyendo constantemente el estado de las entradas RAO y RA 1 y reflejndolo sobre las salidas RBO y RB 1.

240

MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

12.11.7.

Trabajo personal

Ensamblar el programa fuente, grabarlo sobre el PIC y montar el circuito propuesto para comprobar el funcionamiento. Se puede observar que la reaccin de las salidas RBO y RB 1 en respuesta a las entradas RAO y RA l es prcticamente instantnea, pero no por ello la intermitencia de la salida RB7 deja de producirse. Se sugiere aumentar el tiempo de esa intermitencia, hacindola ms lenta. Se observar que l a reaccin de las salidas a l as entradas sigue siendo instantnea.

LOS PRIMEROS DISEOS PRCTICOS

241

12.12.

PRCTICA 10: MS INTERRUPCIONES

12.12.1. Objetivos
Conocer el resto de interrupciones que el dispositivo PIC16F84 es capaz de reconocer.

12.12.2. Fundamentos tericos bsicos


Efectivamente, el PIC16F84 puede reconocer tres tipos de interrupciones adems de la del TMR0, ya estudiada. Son las siguientes: Interrupcin externa aplicada por la patilla RBO/INT. Se habilita mediante el bit INTE del registro INTCON y cuando se produce queda reflejada en el bit INFT del mismo registro. Mediante el bit INTEDG del registro OPTION se puede seleccionar el tipo de flanco activo (ascendente o descedente) que se debe aplicar por la entrada RBO. Interrupcin por cambio de estado en las entradas RB4-RB7. Se habilita mediante el bit RBIE del registro INCTCON. Cuando en cualquiera de las entradas RB4-RB7 se produce un cambio de estado lgico respecto al ltimo valor ledo en las mismas, el flag RBIF del registro INTCON refleja dicho suceso. Para reponer esta interrupcin es necesario leer el puerto B de entrada y registrar el nuevo valor de RB4-RB7 as como poner a 0 el bit RBIF. Interrupcin al finalizar el ciclo de escritura en la memoria EEPROM de datos. Se habilita mediante el bit EEIE del registro INTCON y el bit EEIF del registro EECON 1 refleja el suceso.

12.12.3. Esquema electrnico


Se muestra en la Figura 12.35. Los interruptores EO-E3 se conectan a las entradas RB7-RB4 y a travs de ellos se proceder a cambiar el estado lgico de esas entradas. El pulsador El 0 por su parte se conecta con la entrada de interrupcin externa RBO/INT.

242

MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

Los led S0 y S7 se conectan a las salidas RAO y RA1 respectivamente. Se activarn durante un cierto tiempo cada vez que se provoque la interrupcin correspondiente.

12.12.4.

Materiales necesarios

12.12.5.

Montaje prctico

Se muestra en la fotografa de la Figura 12.36. Simplemente consiste en conectar los interruptores EO-E3 con las lneas de entrada RB4-RB7, el pulsador El 0 con la lnea de entrada de i nterrupcin externa RBO/INT y, finalmente, los led S0 y S7 se conectan con las lneas RAO y RA I que actuarn como salidas. Desarrollo de la prctica

12.12.6.

El fichero PRACT l O.ASM del CD de prcticas contiene el programa fuente al que responde el organigrama de trabajo en la Figura 12.37. Se trata de demostrar el funcionamiento y manejo de la interrupcin externa INTF y la de por cambio de estado en RB4-RB7. Cuando se produce una de las dos, se activa RAO (el led S0) y RAl (led S7) respectivamente.

LOS PRIMEROS DISEOS PRCTICOS

243

El programa principal, una vez inicializados los registros, pone al PIC en el modo standby de forma indefinida. Dicho modo queda cancelado cuando se produce una interrupcin. El programa de tratamiento analiza la fuente de interrupcin y realiza los tratamientos oportunos. En caso de producirse la interrupcin externa por RBO/INT se activa el led conectado a RAO. Si se produce la interrupcin por el cambio de estado de cualquiera de las lneas RB4-RB7 conectadas a sendos interruptores, se procede a activar el led conectado a RA1. Ambos led se desactivan tras una temporizacin de 1 segundo controlada por el TMRO. ste, con un preescaler de 256 y con un valor de 195, genera una temporizacin de 50 ms que se repite tantas veces como indique la variable Temp (20). Finalizada la temporizacin, ambas salidas se desconectan. Se reponen los correspondientes flags de interrupcin y se retorna al programa principal que coloca nuevamente al PIC en el modo standby. Merece la pena comentar que la reposicin de las interrupciones se realiza tras la temporizacin. De esta forma se evitan posibles falsas interrupciones provocadas por los rebotes tpicos de los interruptores del entrenador.

12.12.7.

Trabajo personal

Ensamblado el programa y grabado sobre el dispositivo, comprobar el correcto funcionamiento del mismo. El led SO se activa, durante 1", con cada pulsacin de E10. El led S7 se activar cada vez que uno de los cuatro interruptores EO-E3 conectados a RB4-RB7 cambia de estado lgico.

INTRODUCCIN
Todos los programas, ejercicios y proyectos de este libro pueden ser implementados con un PIC16X84, bien sea la versin EEPROM con el PIC16C84, o la versin FLASH con el PIC 16F84. La razn de esta eleccin es que sobre su memoria de instrucciones se pueden grabar y borrar los programas. Ambos modelos de microcontroladores son idnticos, excepto en los siguientes detalles:

Presentamos las caractersticas ms usadas en la programacin y manejo de estos modelos en las aplicaciones, para que al trabajar con ellos se localicen rpidamente los datos precisos. Sabiendo manejar el PIC16F84 es muy fcil pasar a usar los potentes PIC16F87X. CARACTERSTICAS GENERALES

245

246

MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

DIAGRAMA DE CONEXIONES La distribucin y denominacin de las patitas del PIC16X84 se presenta en la Figura A.1

MEMORIA DE PROGRAMA Tiene implementadas 1 K palabras de 14 bits cada una, ocupando las direcciones comprendidas entre la 0x0000 y la 0x03FF. Los modelos de la gama media alcanzan 8 K de capacidad mxima (vase Figura A.2).

APNDICE A - GULA RPIDA DEL PIC16X84

247

Las posiciones ID de Identificacin sirven para que el usuario grabe en sus cuatro bits de menos peso los cdigos que desee. La Palabra de Configuracin slo tiene 5 bits vlidos y sus smbolos y misiones se muestran en la Figura A.3.

MEMORIA DE DATOS RAM


Consta de dos bancos de 128 bytes cada uno. En el PIC 16C84 slo estn implementadas las 48 primeras direcciones de cada banco. En las 12 primeras se ubican los registros de propsito especfico (SFR) y en las 36 siguientes los registros de propsito general (GPR). Sin embargo, l os 36 registros de propsito general del Banco 1 se mapean sobre el Banco 0, dejando reducidos a 36 los registros operativos de este tipo. En el PIC16F84 la organizacin de la RAM es

248

MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

similar, pero los registros de propsito general son 68 en cada banco, siendo efectivos slo 68, puesto que los del Banco 1 se mapean sobre el Banco 0 (vase Figura A.4).

MEMORIA DE DATOS EEPROM


Los datos guardados en esta memoria no se pierden al quitar la alimentacin. Consta de 64 bytes que ocupan direcciones comprendidas entre la 0x00 y la 0x3F. Para acceder a esta memoria en lectura o escritura hay que utilizar los registros de control: EEDATA, EEADR, EECONI y EECON2. El proceso de escritura de una posicin de esta memoria es lento y dura unos 10 ms. Cuando finaliza se activa un sealizador y se puede provocar una interrupcin.

PUERTAS DE E/S
Hay dos puertas de E/S: Puerta A y Puerta B. Puerta A

Puerta B

APNDICE A - GUA RPIDA DEL PIC16X84

249

250

MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

REGISTROS DE CONTROL
En las Figuras A.5 a la A.9 se expone grficamente la distribucin y la misin de los bits de los registros de control (SFR) ms importantes, que son:

APNDICE A - GUA RPIDA DEL PIC 16X84

251

252

MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

APNDICE A - GUA RPIDA DEL PIC 16X84

253

JUEGO DE INSTRUCCIONES
En la Figura A.10 se ofrece el conjunto de las 35 instrucciones que componen el repertorio del PIC 16X84.

254

MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

PRESENTACIN
El SIM2000 es un programa de simulacin del PIC16F84 y del sistema de desarrollo Micro'PIC Trainer, desarrollado por Pablo Martnez Garca y Francisco Jos Hernndez Villaln, dirigidos por el profesor Manuel Snchez Alonso en la Escuela de Ingeniera Industrial de Cartagena. Est dirigido a quienes se inician en el diseo y programacin de aplicaciones con los microcontroladores PIC y en especial con el PIC16F84. Posee excelentes herramientas para la depuracin y seguimiento de los programas lo que le confiere un valor didctico excepcional. En el CD que acompaa a este libro se incluye una versin del mismo, pero los autores continuamente la actualizan y la potencian, por lo que es recomendable recogerla libremente de Internet en la direccin www.simupic.co m. All tambin se pueden encontrar numerosas ayudas y atencin tcnica. El entorno de programacin del SIM2000 es propio y desde l se puede invocar directamente al compilador MPSAM y se pueden corregir errores sobre el mismo cdigo que se utiliz inicialmente. Dispone de un Editor que mantiene la estructura general de las aplicaciones desarrolladas en el entorno Windows. Al cargar la aplicacin el editor posee un Explorador de Proyectos que muestra todas las unidades del PC en el que se ejecuta el programa. Adems el editor distingue claramente entre las instrucciones y los operandos con distintos colores. Un factor atrayente de este software es el Sistema de Ayuda en Lnea, que proporciona una extraordinaria informacin al usuario cuando se halla en la fase de desarrollo del programa. Tambin es novedosa la forma de gestionar los errores por la comodidad que supone al usuario no tener que consultar el archivo "<Nombre de_programa>.ERR, pues el editor saca una ventana con el listado de todas las incidencias generadas en el ensamblado. El entorno de simulacin del SIM2000 es uno de los ms completos y atractivos de los existentes en el mercado, pues muestra la mayor cantidad de informacin posible durante el tiempo de simulacin. De forma permanente se visualizan registros muy concretos: Banco actual de memoria en donde se encuentra el programa, Asignacin del Divisor de Frecuencia y Valores de la Palabra de Configuracin. 255

256

MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

La Consola de Control permite conocer el nmero de instrucciones ejecutadas, el tiempo de ejecucin del programa, la frecuencia de simulacin y los valores del PC, W, Estado, INTCON, WDT, etc. Adems de la posibilidad de mostrar todos los elementos detallados de la arquitectura del microcontrolador PIC 161784, es capaz de simular la ejecucin de programas sobre el sistema de desarrollo Micro'PIC Trainer presentando una fotografa de dicha placa en la cual el usuario puede seleccionar con el puntero del ratn una determinada zona y producir determinados eventos o llamadas a unos formularios que configuran el funcionamiento general. Dirigimos al lector a analizar y experimentar la instalacin y el manejo de este simulador en los diversos apartados que puede encontrar en el CD y en Internet donde sus autores se brindan a resolver los problemas que puedan surgir en su aplicacin ([email protected] m).

INTRODUCCIN
La prctica totalidad de los ejercicios propuestos en este libro se pueden realizar con el Micro'PIC Trainer (microPIC Trainer) de Ingeniera de Microsistemas Programados, S. L., que nos ha permitido incluir un breve resumen de uno de los captulos del Manual del Usuario que acompaa a dicho sistema de desarrollo. Slo se describe el esquema electrnico y el funcionamiento del sistema, que creemos puede ser de inters para los lectores como ejercicio de aplicacin. El sistema microPIC Trainer consiste en un equipo completo para la evaluacin de aplicaciones basadas en los microcontroladores PIC de gama media de Microchip. Dispone de una serie de perifricos bsicos de E/S con los que se puede verificar el funcionamiento de una aplicacin, as como la circuitera necesaria para la grabacin de todos los modelos de microcontroladores PIC de gama media de 18 y 28 patitas. Un tutorial multimedia de montaje y manejo est contenido en el CD que acompaa al libro. Se denomina sistema de desarrollo el equipo fsico y el conjunto de programas que conforman una herramienta capaz de desarrollar todas las operaciones necesarias para disear un proyecto basado, en este caso, en un microcomputador programable, que al estar incorporado en un circuito integrado recibe el nombre de microcontrolador. Las caractersticas del sistema son las siguientes:

257

258

MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

En la Figura C.1 se presenta el esquema elctrico de conexiones del sistema de evaluacin micro PIC Trainer. En los siguientes apartados se irn explicando las diferentes secciones que lo componen. En el CD existe un tutorial muy didctico que muestra el montaje, paso a paso, de este sistema de desarrollo.

LA FUENTE DE ALIMENTACIN

EL MICROCONTROLADOR
El sistema microPIC Trainer est diseado para trabajar con cualquier modelo de microcontrolador PIC de la gama media encapsulado con 18 o 28 patitas. sta es la razn de la existencia de dos zcalos para soportar ambos tipos. Segn el esquema de la Figura C. l , las diferencias bsicas entre los modelos de 18 y 28 patitas consiste en que los primeros disponen de una puerta A de 5 lneas (RA0-RA4) y una

260

MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

puerta B de 8 (RB0-RB7), mientras que los segundos disponen de una puerta A de 6 lneas (RAO-RB5), una puerta B de 8 (RBO-RB7) y una puerta C de 8 lneas (RCO-RC7). En pPIC Uainer se emplean las 5 lneas de la puerta A y las 8 de la puerta B, que son comunes a los dos modelos de PIC. En cualquier caso, las lneas de estas puertas, junto con las de la puerta C, estn disponibles para el usuario a travs del conector PIC-BUS de expansin. La frecuencia de trabajo para cualquiera de los dos tipos de PIC queda establecida mediante el cristal de cuarzo X1 y los condensadores C6 y C7. Esta es, por defecto, de 4 MHz, aunque el usuario puede modificarla cambiando los valores del cristal y los condensadores segn las caractersticas tcnicas del modelo de PIC elegido.

ENTRADAS DIGITALES
Estn formadas por 5 interruptores (SW2-SW6) conectados a las lneas RAO-RA4 de la puerta A, capaces de introducir niveles lgicos 1 y 0 por las mismas. Dichas lneas pueden programarse para actuar de diferentes formas. As, RAO-RA3 puede actuar, adems, como entradas analgicas y RA4 como entrada exterior de pulsos de reloj para el TMRO (TOCKI). Estas lneas tienen asociados unos jumpers con los que se selecciona el tipo de entrada que se les va a aplicar. Los jumpers J8(0)-J8(3) seleccionan individualmente si por RAO-RA3 se van a introducir entradas digitales con los interruptores SW2-SW5, entradas analgicas con los potencimetros P2-P5 o, simplemente, si estas lneas van a quedar desconectadas tanto de los interruptores como de los potencimetros y poder as usarse con otros perifricos distintos. Con el jumper J9 se selecciona si RA4 acta como entrada digital procedente del interruptor SW6, entrada de seal de reloj para el TMRO (TOCKI), que se aplica desde el exterior mediante el conector J2(1), o simplemente, si esta lnea va a quedar desconectada y libre, poder usarla con otro perifrico distinto.

ENTRADAS ANALGICAS
Estn formadas por 4 resistencias variables o potencimetros (P2-P5), que se alimentan con l a tensin general de +5 V. Segn se mueva el eje de cualquiera de estos potencimetros, se obtiene una tensin variable entre 0 y 5 V por los terminales centrales (cursores) de los mismos. La tensin variable presente en cualquiera de los 4 cursores de los potencimetros P2-P5 va a parar a los jumpers J8(0)-J8(3), respectivamente. Si cualquiera de ellos est en la posicin analgico, la lnea correspondiente (RAO-RA3) recibir dicha tensin para su posterior procesamiento. Conviene recordar que aunque a nivel de hardware una o ms lneas se configuren como entradas analgicas o digitales mediante los jumpers J8(0)-J8(3), el sofware de control del PIC debe ir acorde con las mismas, programando adecuadamente las caractersticas de dichas lneas de entrada.

SALIDAS DIGITALES
Estn conectadas a la puerta B y consisten, por una parte, en una barra de diodos leds luminosos (D8) que representan el estado lgico de las seales RBO-RB7, y por otra, un display alfanumrico de 7 segmentos.

APNDICE C - BREVE DESCRIPCIN DEL MICRO'PIC TRAINER

261

EL MDULO LCD
Se trata de un mdulo de visualizacin alfanumrico de cristal lquido, capaz de presentar 21neas con 16 caracteres cada una. Aplicndole los cdigos necesarios se puede provocar diferentes efectos de visualizacin como parpadeo, scroll, activacin de un cursor, etc. Incluso es posible la generacin de nuevos caracteres definidos por el usuario. Las 8 lneas de datos DO-D7 estn conectadas con las 8 lneas de la puerta B (RBO-RB7). Esta puerta, a veces, acta como salida del PIC y entrada hacia el mdulo. Por ella se le aplican los diferentes cdigos de control para realizar diferentes efectos de visualizacin, as como los cdigos ASCII de los caracteres a visualizar. En otras ocasiones la Puerta B debe actuar como entrada hacia el PIC, ya que a su travs el mdulo LCD devuelve cdigos indicando su estado interno, el contenido del buffer de memoria interna, etc. El mdulo est conectado a las lneas RAO, RA1 y RA2 de la puerta A del PIC. Estas lneas actan como salida y se emplean para enviar las siguientes seales de control al mdulo:

262

MICROCONTROLADORES PIC. DISEO PRCTICO DE APLICACIONES

El mdulo LCD es un perifrico de visualizacin muy utilizado en aplicaciones reales. Permite una cmoda, atractiva y verstil forma de visualizacin alfanumrica e incluso grfica.

EL CIRCUITO GRABADOR

APNDICE C - BREVE DESCRIPCIN DEL MICRO'PIC TRAINER EL CONECTOR DE EXPANSIN

263

265

También podría gustarte