You are on page 1of 5

MANEJO DE MATRIZ DE LED'S 5x7 CON PIC 16F84A ------------------------------------------------------------------------------------------------------------------------------------------------------Una matriz de led's esta constituido por led's dispuestos

en filas y columnas, cada led se conecta a una fila y a una columna, el diagrama se muestra en la figura:

Existen varios mtodos para el manejo de una matriz de led's 5x7, nuestro mtodo se basa en el decodificador/demultiplexor 74LS 138, adems utilizaremos el transistorBC557 (pnp); con la siguiente forma de conexin entre los dispositivos antes mencionados y el microcontrolador:

Como se muestra en la figura las filas de la matriz de led's estn conectadas a los colectores de los transistores BC557, mientras que las columnas de la matriz se conectan al puerto B del microcontrolador. Su funcionamiento se basa como se dijo anteriormente en el integrado 74LS138,que es un decodificador /demultiplexor con la siguiente tabla de verdad:

Para que un led's se encienda tiene que recibir simultneamente un 0 en una columna y un 1 en una fila, en caso de las filas se posee transistores que al entrar en un estado de saturacin permiten que en los nodos de los led's de una de las filas se encuentre un 1 lgico, mientras que para las columnas el microcontrolador es el encargado de lograr un 0 lgico. Su manejo es similar al de los display's, lo que se trata de hacer es habilitar una la primera fila y luego enviar el dato a visualizar en esta fila, luego habilitar la segunda fila y enviar el dato a visualizar en esta fila, y as sucesivamente en forma de un bucle. Para habilitar una fila se debe logra que el transistor correspondiente a la fila pase a un estado de saturacin, y esto se logra mediante el decodificador/demultiplexor que al recibir en sus entradas (C B A) un numero binario determinado activara una de sus salida a nivel bajo que conseguir que el transistor correspondiente pase a un estado de saturacin; es as por ejemplo si el microcontrolador enva el dato a las entradas CBA = 011, el decodificador activara su salida Y3, produciendo que el cuarto transistor(cuenta de arriba a abajo) se sature, habilitando la cuarta fila de led's de la matriz lista para recibir el dato a visualizar en esta fila. Uno de los ltimos detalles: el pin RA3 se encarga de no habilitar ninguna fila, debido a que si este se encuentra en un nivel lgico 1 el decodificador tendr a todas sus salidas en un nivel alto, por lo consiguiente ninguna fila se habilitara. Resumiendo el puerto A del pic se encarga de habilitar los transistores, mientras que por el puerto B es enva el dato a visualizar. En el siguiente programa se realizara una explicacin mas detallada. ;AUTOR:CARLOS ALBERTO YACO TINCUSI ;RA3=HABILITAR AL DECODIFICADOR, RA2 RA1 RA0 ; PROGRAMA PARA VISUALIZAR LA LETRA "C" list P=16F84A include <P16F84.inc>

cblock 0x0C endc bsf STATUS,RP0 clrf PORTA ; todas las lneas como salida clrf PORTB; todas las lneas como salida bcf STATUS,RP0 visualizar movlw b'00001000' movwf PORTA; deshabilitar todas las filas movlw b'11111000' ; primer dato a visualizar bsf PORTA,3 ; deshabilitar todas las filas movwf PORTB; enviar dato bcf PORTA,3 ;habilitar primer transistor debido a que CBA=000, Y0=1 , Y1,Y2,.....Y7=1 call RETARDOS_50MICROS ; un pequeo retardo movlw b'11110111' ; segundo dato a visualizar bsf PORTA,3 ; deshabilitar todas las filas movwf PORTB ; enviar dato movlw b'00000001'; movwf PORTA ;habilitar segundo transistor debido a que CBA=001, Y1=1 , Y0,Y2,Y3.....Y7=1 call RETARDOS_50MICROS movlw b'11101111' ; tercer dato a visualizar bsf PORTA,3 ; deshabilitar todas las filas movwf PORTB; enviar dato movlw b'00000010' movwf PORTA ;habilitar tercer transistor debido a que CBA=010, Y2=1 , Y0,Y1,Y3.....Y7=1 call RETARDOS_50MICROS movlw b'11101111'; cuarto dato a visualizar bsf PORTA,3 ; deshabilitar todas las filas movwf PORTB; enviar dato movlw b'00000011' movwf PORTA ; habilitar caurto transistor debido a que CBA=011, Y3=1 , Y0,Y1,Y2.....Y7=1 call RETARDOS_50MICROS ; y asi sucesivamente movlw b'11101111' bsf PORTA,3 movwf PORTB movlw b'00000100' movwf PORTA call RETARDOS_50MICROS movlw b'11110111' bsf PORTA,3; des movwf PORTB movlw b'00000101' movwf PORTA

call RETARDOS_50MICROS movlw b'11111000' bsf PORTA,3 movwf PORTB movlw b'00000110' movwf PORTA call RETARDOS_50MICROS goto visualizar include<RETARDOS.inc> end Aqui una imagen del resultado final

El programa ejemplo puede descargarse de aqui Espero que les sirva de algo CARLOS YACO ELECTRONICA BASICA

You might also like