Anda di halaman 1dari 9

En la figura se muestra un ejemplo de la forma de controlar un display de 8 x 8 (64 puntos) por medio de un controlador PIC 16F84/16F628/F88, usando las

8 salidas del puerto B (las cuales alimentan los renglones), y 2 del puerto A, las cuales controlan a un contador de dcadas 4017 ( 14017), el cual a su vez activa a cada una de las columnas a travs de transistores. El diseo puede modificarse a matrices de 8 x 6 y 7 x 5 puntos.

Circuito electrnico para matriz de 7 x 5: En la figura de abajo se muestra el circuito que debe alambrarse para implementar el control de un solo mdulo de matriz de 7 x 5 leds. Las salidas RB7...RB1 alimentan, a travs de resistencias limitadoras de 560 ohms, a los nodos de los 5 leds del rengln correspondiente. Los 5 transistores BC337 activan a cada una de las 5 columnas. Las salidas RA1 y RA2 controlan al contador de dcadas. Diseo electrnico: la matriz est conectada de la forma en que se indica en la figura. Cada uno de los 8 renglones se conecta con sus 8 leds en nodo comn los cuales se conectan a su vez a cada una de las salidas del puerto B (RB0...RB7). En cuanto a las 8 columnas, stas se conectan con sus 8 leds en ctodo comn. Cada columna es activada por un transistor BC337. La base de cada transistor se conecta a cada una de las 8 salidas de un contador de dcadas 4017, tambin conocido como "Johnson counter", el cual activa sucesivamente una a una cada salida (Q0...Q7) despus de un pulso en la pata CP0. Un pulso en la pata MR (master reset) reinicia la cuenta en la salida Q0.

El diagrama electrnico detallado se muestra aqu: DIAGRAMA ELECTRONICO MATRIZ DE 7 x 5.PDF

Persistencia luminosa: el funcionamiento del display se basa en la activacin cclica de cada columna, durante un perodo no mayor a los 10 milisegundos. La persistencia en la luminosidad de los leds durante algunos milisegundos despus de desactivarse y la incapacidad del ojo para percibir cambios a una frecuencia superior a los 25 hz, hacen que el humano perciba una imagen fija, a pesar de que cada columna se est activando en tiempos diferentes. Clculo de corrientes en los circuitos: cada salida del puerto B, manejar una corriente instantnea mxima de unos 10 miliamperes. A su vez, cada transistor BC337 manejar una corriente instantnea mxima en su columna, igual a la suma de todas las corrientes en las salidas RB7...RB1 activadas, es decir, un mximo de 70 miliamperes. Compatibilidad con EDUPIC 16F84/16F628: como se muestra en la figura de abajo, el mdulo de LEDS es compatible con el conector para LCD del sistema EDUPIC. El programa de prueba se realiz en lenguaje ensamblador y enciende la letra "A", pero puede fcilmente modificarse para escribir cualquier otro caracter. Asimismo, el programa puede modificarse para controlar una matriz de 8 x 6 de 8 x 8 leds.

Posibilidad de expansin: pueden aadirse mdulos adicionales de 5 x 7, idnticos al propuesto, conservando la misma filosofa de funcionamiento del circuito. El carry del primer contador 4017 ingresa al pin CP0 del segundo mdulo y as sucesivamente. Las salidas RB7...RB1 alimentarn a los todos los leds en cada rengln. Con el objeto de conservar la misma brillantez del circuito de un solo mdulo, las resistencias limitadoras deben de bajar su valor en una forma proporcional al nmero de mdulos, razn por la cual el consumo de corriente ser mayor.

Programas bsicos de control, en lenguaje ensamblador y ANSI C EDUPIC EVOLUPIC EVOLUPIC Bootloader 16F628 FUNCION 16F628 Muestra letras A...Z y nmeros 0...9 en mdulo leds 5x7 Muestra una "A" en el mdulo de expansin matriz de leds 5x7 Muestra letras A...Z y nmeros 0...9 en mdulo leds 5x7, programa en ANSI C. Incluye librera letras.h Muestra una

MATRIZF628.asm

MATRIZF88TINY.asm

MATRIZF628.hex

MATRIZF88TINY.hex

DOTMATRIXF628.asm DOTMATXF88TINY.asm

DOTMATRIXF628.hex DOTMATXF88TINY.hex

HITECHMATRIZ6TINY.c

HITECHMATRIZ6TINY.hex HITECHMATRIZTINY.c

"A" en el mdulo de expansin matriz de leds 5x7, programa en ANSI C HITECHMATRIZTINY.hex Escribe mensaje en CCSMENSAJEMATRIZ7X5.zip matriz de leds 7 x 5 MATRIZF628/F88: Programa que muestra en el display la secuencia de caracteres del 0...9 y de la A...Z. El perodo de tiempo para la secuencia puede modificarse dentro del programa fuente. El programa usa la interrupcin del temporizador 0 para generar la base de tiempo, mientras en el programa principal se realiza la tarea del multiplexaje para el encendido de las 5 columnas de 7 leds cada una. La aplicacin puede usarse como base para desarrollar displays industriales, ya sea de uno solo o de mltiples caracteres. El programa incluye las tablas con el patrn de encendido por columna para la generacin de cada caracter. El usuario puede aadir nuevos smbolos o caracteres a la tabla. HITECHMATRIZ6TINY.c: programa desarrollado en ANSI C, que muestra en el display la secuencia de caracteres del 0...9 y de la A...Z. Incluye las tablas con el patrn de encendido por columna para la generacin de cada caracter en una librera por separado llamada letras.h . El usuario puede aadir nuevos smbolos o caracteres a la tabla.

En el programa haremos 4 secuencias de un hombrecito levantado las manos, por lo que tendremos 4 repeticiones usando el FOR NEXT una para cada secuencia. El puerto

controla las columnas y solo activa o enciende una sola columna a la vez y luego hacelo mismo con la siguiente columna y asi sucesivamente hasta la 5 columna. Una vez que este activado una columna podemos encender los leds de las filas correspondientes a esa columna para formar la figura que deseamos, si se fijan en el puerto B se forma la figura que se mostrara en el display pero esta en forma horizontal o echada la matriz. cmcon=7 ;convierte el puerto A en digital trisa=0 ;hace salida todo el puerto A trisb=0 ;convierte en salidas el puerto B x VAR BYTE ;crea variable x de 255 inicio: FOR x = 1 TO 10 ;repetir esta secuencia 10 veces porta=%0000001 :portb=%0010000 :PAUSE 4 ;esperar 4 mls, total 20 mls porta=%0000010 :portb=%0100111 :PAUSE 4 porta=%0000100 :portb=%1111000 :PAUSE 4 porta=%0001000 :portb=%0100111 :PAUSE 4 porta=%1000000 :portb=%0010000 :PAUSE 4 NEXT FOR x = 1 TO 10 ;repetir esta secuencia 10 veces porta=%0000001 :portb=%0100000 :PAUSE 4 porta=%0000010 :portb=%0100111 :PAUSE 4 porta=%0000100 :portb=%1111000 :PAUSE 4 porta=%0001000 :portb=%0100111 :PAUSE 4 porta=%1000000 :portb=%0100000 :PAUSE 4 NEXT FOR x = 1 TO 10 ;repetir esta secuencia 10 veces porta=%0000001 :portb=%1000000 :PAUSE 4 porta=%0000010 :portb=%0100111 :PAUSE 4 porta=%0000100 :portb=%1111000 :PAUSE 4 porta=%0001000 :portb=%0100111 :PAUSE 4 porta=%1000000 :portb=%1000000 :PAUSE 4 NEXT FOR x = 1 TO 10 ;repetir esta secuencia 10 veces porta=%0000001 :portb=%0100000 :PAUSE 4 porta=%0000010 :portb=%0100111 :PAUSE 4 porta=%0000100 :portb=%1111000 :PAUSE 4 porta=%0001000 :portb=%0100111 :PAUSE 4 porta=%1000000 :portb=%0100000 :PAUSE 4 NEXT GOTO inicio ;volvemos a inicio END

Integrado HIN232CP: Los circuitos con letra T son "Transmitters", que trasladan nivel TTL/CMOS en su entrada a nivel RS232 en su salida. Los circuitos con letra R son "Receivers", que trasladan seales RS232 en su entrada (que pueden ser de hasta +30/-30 V) a nivel TTL/CMOS en su salida. Aqu voy a hacer una pequea disgresin sobre por qu utilizo el PIC 16F628A en esta ocasin y en gran parte de los proyectos que encaro y encarar, excepto cuando las prestaciones de este microcontrolador no sean suficientes para la funcin requerida. La razn principal es que es pata a pata compatible con el ms antiguo pero ya clsico PIC 16F84A. Y es compatible en sus programas, con la nica salvedad de que la memoria RAM se encuenta en otra direccin. Transformar un programa hecho para el PIC 16F84A para utilizarlo en este microcontrolador es una cosa de segundos. Y hay miles de ejemplos en Internet y en libros y revistas para el 16F84A, porque hace aos que se disea sobre l, como procesador bsico.

El PIC 16F84A puede estar muy bien como eleccin para comenzar, pero la nica razn que va quedando para hacerlo es que la mayora de los ejemplos de programa y de circuito que se encuentran por all estn realizados sobre l. En base a lo dicho en el prrafo anterior, entonces el PIC 16F628A es igual de elegible, ya que es un reemplazo prcticamente directo de nuestro famoso microcontrolador "de batalla". Pero por qu cambiar, si ambos estn disponibles en el mercado? Por una razn muy simple: el PIC 16F628A tiene ms memoria de programa (el doble), ms RAM, ms EEPROM, ms modos de uso, ms timers, y ms prestaciones, incluyendo la que aprovechamos en este diseo, el puerto serie implementado por hardware... y el PIC 16F628A, por lo menos en Argentina, cuesta menos... Por qu no cambiar, entonces?

Ahora volvamos al circuito de esta prueba El microcontrolador se comunica utilizando su puerto serie. He programado este puerto a una velocidad de 9600 baudios, un formato de dato de 8 bits, sin paridad, un bit de parada, y sin ningn control de flujo. El programa en el microcontrolador se inicia enviando un mensaje a la PC que dice Hola amigo. Luego la rutina principal de este pequeo programa espera a recibir un caracter, lo devuelve como eco hacia la PC, y luego lo exhibe a travs de sus puertos, donde tenemos conectados LEDs indicadores. Esto nos permite comprobar la recepcin de los caracteres ASCII desde la PC, cuyo cdigo veremos sobre los LEDs. Tambin hace que nuestro circuito cumpla la funcin de transformar la salida serie de la PC en una salida de 8 bits en paralelo. A continuacin se puede observar el circuito que he utilizado: Circuito del interfaz de comunicacin RS232 entre un PIC y una PC

Algn lector observador habr notado que no se utiliza el Puerto A completo (1 byte) para manejar los LEDs que exhiben el caracter que se ha recibido desde la PC. Los bits 4 y 5 del Puerto A no se utilizan, y a cambio los LEDs que corresponden a estos bits se conectan al Puerto B. Por qu complicarse as? No es mejor escribir un byte completo en un puerto, sin tener que manejar dos bits por separado en otro puerto, que para peor tiene dos bits afectados a la comunicacin serie? Paciencia, todo tiene su explicacin: Tal como se ha configurado el microcontrolador, el Puerto A tiene, efectivamente, ocho bits de ancho, pero por caractersticas de circuito no se pueden utilizar los ocho como salida. El bit 5 solamente se puede utilizar como entrada, y el bit 4 tiene un circuito de salida de drenaje abierto, es decir, cuando est en alto no entrega corriente, de manera que no encendera el LED con el circuito que estamos utilizando. Antes que ponerme a hacer algunos malabarismos con el circuito, prefer solucionar esto por programa y "sacar" los dos bits faltantes a travs del Puerto B, bits 4 y 5. El "costo" de esta solucin son tres o cuatro lneas de programa, nada ms.

Anda mungkin juga menyukai