# Matriz de led 7x32 con pic16f628a



## dayanmata (Jul 18, 2010)

Funcionando con el pic  16F628A porcia hay algun usuario interesado les dejo el codigo final  .asm y el achivo .inc con los retardos anexo circuito y archivo leeme  donde aparecen los valores de todos los componentes a y por ultimo  recuerden colocar la R de 10 K en RA4 que es salida de colector abierto "   por fin mi matriz  funciona  " a el mensaje que  puse para que mostrara la matriz es personal lo pueden cambiar por  cualquiera que deseen suerte.


----------



## gmraymon (Jul 19, 2010)

Estaria genial que pudieras poner el circuito para simulacion. Saludos ! y Felicitaciones por tu aporte.


----------



## edix/09 (Ago 31, 2010)

hola subi el archi final... y te pregunto cuales son los valores de los capacitores que no los pusiste en el leame...

saludos


----------



## electronicaeselfuturo (Feb 14, 2011)

colle hermano estoy tambien haciendo una matriz a leds de 8X64 pero me gustaria que me ayudaran con las letras en minusculas ,  mayusculas  y numeros...xq es mi tesis de grado...todo lo estoy haciendo en proteus y utilizando PIC-C para la programacion...


saludos


----------



## 1119677 (Abr 25, 2011)

dayanmata dijo:


> Funcionando con el pic  16F628A porcia hay algun usuario interesado les dejo el codigo final  .asm y el achivo .inc con los retardos anexo circuito y archivo leeme  donde aparecen los valores de todos los componentes a y por ultimo  recuerden colocar la R de 10 K en RA4 que es salida de colector abierto "   por fin mi matriz  funciona  " a el mensaje que  puse para que mostrara la matriz es personal lo pueden cambiar por  cualquiera que deseen suerte.



hola amigo me podrias ayudar con el proteus... lo implemente tal y como dice en el diagrama y me aparece un error... quiero saber si me puedes ayudar con el proteus... o si tines el sch. para ver si me lo puedes pasar
 please


----------



## cristian76 (Jul 17, 2011)

agradecer primero ah dayanmata por la molestia que se tomo en publicar su proyecto , en estos momentos me arme la matriz pero lamentablemente no logro que funcione , la simulacion en el proteus sale perfecto sin ningun error pero como comento no prende , segui los pasos que se mencionaron en este post lo unico que no segui fue poner los transistores los pnp y los npn pero en la simulacion no me señalo error , quizas ese sea mi error quisisera porfavor me ayuden ah solucionar mi problema.


el esquema es el siguiente

Ver el archivo adjunto panel.rar


----------



## yager (Jul 17, 2011)

hola,la simulacion es muy diferente al circuito real ,personalmente a me dieron mucho trabajo los de los matriz de leds incorporados en el proteus, yo lo hice en el ckto real en forma artesanal con leds individuales  y tambien lo cambie en en  el proteus con leds individuales y ya funciono de manera diferente ,por que no te enfocas mas en el circuito real.


----------



## cristian76 (Jul 18, 2011)

ok,gracias por la respuesta 

cualquier cosa paso ah consultar


----------



## ramor (Ago 4, 2011)

Aca les dejo una matriz led 8X32 muy fasil de ensamblar tambien el ex de prueba


----------



## ramor (Ago 6, 2011)

Matriz de leds circuito practico para simulacion en proteus y archivo hex
mas adelante lo reformare para que tambien muestre mensajes


----------



## fidelito (Dic 21, 2011)

amigo los transistores nos los npn no te equivoque
y utiliza el manual de cualquier componete o busca en inter y li encontraras como son las coexiones suetre

los transitores son los npn por si las dudas
suerte


----------



## fey116 (Dic 23, 2011)

*Matriz de leds 7X32.
Pic 16f628a + 74lc164*

*Mi contribucion al foro por  toda la ayuda brindada y espero que les sirva y por favor cuando compartan informacion compartan completo y no a medias(egoismo).
Cualquier duda al correo Como no cumplo las políticas del Foro me editaron el mensaje @ políticas del Foro.Com​Proyecto completo codigo fuente + simulacion + proteus.*

video corriendo:http://www.youtube.com/v/108jzdzfBNw&hl


codigo fuente:

```
DEFINE OSC 4


LINEA            var byte[32]
CHAR             VAR BYTE[7]
CHAR_ACT         VAR BYTE ' puntero de caracter
CHAR_LENGTH_ACT  VAR BYTE 'puntero de la longitud del caracter
CHAR_LENGTH      var byte ' longitud de la longitud
Caracter         var byte
Counter1         var byte
Counter2         var byte
Counter3         var byte
Counter4         var byte



'declaracion de alias

DATOS            var PORTA.0
CLOCK            var PORTA.1

'Inicializacion de los datos


TRISB = 0
TRISA = 0

linea[1]=$FF
linea[2]=$FF
linea[3]=$FF
linea[4]=$FF
linea[5]=$FF
linea[6]=$FF
linea[7]=$FF
linea[8]=$FF
linea[9]=$FF
linea[10]=$FF
linea[11]=$FF
linea[12]=$FF
linea[13]=$FF
linea[14]=$FF
linea[15]=$FF
linea[16]=$FF
linea[17]=$FF
linea[18]=$FF
linea[19]=$FF
linea[20]=$FF
linea[21]=$FF
linea[22]=$FF
linea[23]=$FF
linea[24]=$FF
linea[25]=$FF
linea[26]=$FF
linea[27]=$FF
linea[28]=$FF
linea[29]=$FF
linea[30]=$FF
linea[31]=$FF
linea[32]=$FF

char_act=0
counter3=0
counter4=0
counter2=1
char_length_act = 1
low clock
low datos

DATA @0,"CRISTO VIENE PRONTO PREPARATE      FELIZ NAVIDAD 2011 FOROS UCONTROL  " 'aca guardamos nuetro programa, es modificable al gusto
read char_act,caracter
gosub tabla_char

'inicio del programa
Inicio:

MENSAJE:
        linea[1]=char[char_length_act]
        IF CHAR_LENGTh_act = char_length  then
           char_act = char_act + 1  
Mens_Salto1:
           read char_act,caracter
           if caracter=$FF then 
              char_act=0
              goto mens_salto1
           endif   
           gosub tabla_char
           char_length_act=0
        endif   
Img:
        counter1=0
                
LineH:
         PORTB = $FF
         counter1 = counter1 + 1      'envia LA ACTIVACION del registro
         if counter1 = counter2 then  'serial paralelo
            gosub send_data0          'para activar la linea vertical
         else
             gosub send_data1
         endif
         if counter1 = 32 then goto LineV
         goto lineh
LineV:
      PORTB = LINEA[COUNTER2]    'determina la posicion activa horizontal
      pauseus 500              'y genera la activacion de los leds verticales
      if counter2 = 32 then
           counter2 = 1
         gosub send_data0   
      ELSE
            counter2 = counter2 + 1
            gosub send_data1
      endif
 
      
Shift_Left:
           if counter3 = 35 then
                counter3 = 0
                COUNTER4 = COUNTER4 + 1
                if counter4 = 2 then ' 250 del counter3 *4 del 
                
                   linea[32]=linea[31]'                   
		           linea[31]=linea[30]'
                   linea[30]=linea[29]'counter4 es aprox 0.5seg
                   linea[29]=linea[28]'si hay mas lineas 
                   linea[28]=linea[27]'hay q agrandar losvectores
                   linea[27]=linea[26]'y cambiar por un for   
                   linea[26]=linea[25]  
                   linea[25]=linea[24]  
                   linea[24]=linea[23]
                   linea[23]=linea[22]'counter4 es aprox 0.5seg
                   linea[22]=linea[21]'si hay mas lineas 
                   linea[21]=linea[20]
                   linea[20]=linea[19]'y cambiar por un for   
                   linea[19]=linea[18]  
                   linea[18]=linea[17]  
                   linea[17]=linea[16]    
       			   linea[16]=linea[15]'
                   linea[15]=linea[14]'counter4 es aprox 0.5seg
                   linea[14]=linea[13]'si hay mas lineas 
                   linea[13]=linea[12]'hay q agrandar losvectores
                   linea[12]=linea[11]'y cambiar por un for   
                   linea[11]=linea[10]  
                   linea[10]=linea[9]  
                   linea[9]=linea[8]  
                   linea[8]=linea[7]'counter4 es aprox 0.5seg
                   linea[7]=linea[6]'si hay mas lineas 
                   linea[6]=linea[5]'hay q agrandar los vectores
                   linea[5]=linea[4]'y cambiar por un for   
                   linea[4]=linea[3]  
                   linea[3]=linea[2]  
                   linea[2]=linea[1]
                   counter4 = 0
                   char_length_act = char_length_act+1
                   GOTO INICIO
                endif
            ELSE
                counter3 = counter3 + 1
            endif
            goto IMG
                      
SEND_DATA0:
           low datos
           pauseus 2
           low clock
           pauseus 2
           high clock
           RETURN

SEND_DATA1:
           HIGH DATOS
           pauseus 2
           low clock
           pauseus 2
           high clock
           RETURN

'tabla de seleccion de caracter
           
TABLA_CHAR:
    select case caracter
            case " "
                char_LENGTH=5
                char[5]=$FF
                char[4]=$FF
                char[3]=$FF
                char[2]=$FF
                char[1]=$FF
            
            
            
           
           case "C"
                char_LENGTH=5
                char[5]=$FF
                char[4]=%1011101
                char[3]=%0111110
                char[2]=%0111110
                char[1]=%1000001 
            
                
              
            case "R"
                char_LENGTH=5
                char[5]=$FF
                char[4]=%1001000
                char[3]=%0110111
                char[2]=%0110111
                char[1]=%0000000  
                
            
            
            case "I"
                char_LENGTH=4
                char[4]=$FF
                char[3]=%0111110
                char[2]=%0000000
                char[1]=%0111110
                
            
            case "T"
                char_LENGTH=5
                char[5]=$FF
                char[4]=%0111111
                char[3]=%0000000
                char[2]=%0000000
                char[1]=%0111111
                       
                     
                
            
            case "O"
                char_LENGTH=6
                char[6]=$FF
                char[5]=%1000001
                char[4]=%0111110
                char[3]=%0111110
                char[2]=%0111110
                char[1]=%1000001
            
             ...........caracteres del A a la Z + numeros 
           
                
            case else
                char_LENGTH=5
                CHAR[1]=$FF
                CHAR[2]=$FF
                CHAR[3]=$FF
                CHAR[4]=$FF
                CHAR[5]=$FF

    end select
    return
             
                 
END
```


----------



## inspector gadget (Abr 29, 2012)

amigo fey116 saludos, ya me funciona la simulacion pero,¿que debo hacer para que se vean las letras al derecho? porque solo funciona la simulacion con el hex que tu compilaste, y cuando compilo el otro codigo que tu pones en el archivo, (osea el que pones para que podamos modificar la comunidad)a pesar que la compilacion no genera errores, no funciona la simulacion en proteus?tiene colocado ese codigo algo para que no funcione? porque no nos compartes el codigo real que aparece en la simulacion y con las modificaciones que hagamos podamos entender tu programa ya que es ese el fin de tu aporte?


----------



## alejandrozama (Jun 19, 2012)

hola que tal, pues yo tratando de realizar este proyecto, solo que encuentras mucha informacion incompleta en internet,

yo encontre el siguiente archivo que dejo.


el problema es que las letras de ven al reves (efecto espejo).

y tambien cuando cambias cualquier cosa en las letras que se deven de desplegar y compilar el nuevo el programa, este nuevo programa no funciono



igual y si alguien nos quita las dudas que tenemos


----------



## juanc08 (Jul 24, 2012)

gracias al foro he encontrado soluciones a inconvenientes que he tenido por eso hago este aporte cabe aclarar que no es de mi autoria lo en contre en el foro de neoteo como dijo elamigo anterior mente el favor se hace completo ono se hace
adjunto archivos nesesarios para armar tu propia matriz no recuerdo el nonbre de el autor pero hay que agradecer su esfuerzo


----------



## SERGIOD (Jul 24, 2012)

juanc08 dijo:


> gracias al foro he encontrado soluciones a inconvenientes que he tenido por eso hago este aporte cabe aclarar que no es de mi autoria lo en contre en el foro de neoteo como dijo elamigo anterior mente el favor se hace completo ono se hace
> adjunto archivos nesesarios para armar tu propia matriz no recuerdo el nonbre de el autor pero hay que agradecer su esfuerzo



Magnifico aporte pero no entiendo como esta programado ; pero igual muchas gracias; porciacaso no sabrás como cambiarle el texto(mensaje) a la matriz


----------



## juanc08 (Jul 25, 2012)

que pena no adjunte el .bas ay te que da mas comodo trabajar y cambiar el maensaje


----------



## SERGIOD (Jul 26, 2012)

juanc08 dijo:


> que pena no adjunte el .bas ay te que da mas comodo trabajar y cambiar el maensaje



Gracias ya lo vi eso se entiende más aunque sigue siendo algo complejo


----------



## oFRGOo (Sep 25, 2012)

Hola a todos bueno sobre el proyecto Matriz de leds 7X32 muy bueno me ayudaron bastante..pero al final no funciono..logre cambiar el texto y simulando funciona pero en físico no se porq*ue* no funciono .. de todas maneras gracias.


----------



## ricbevi (Sep 26, 2012)

oFRGOo dijo:


> Hola a todos bueno sobre el proyecto Matriz de leds 7X32 muy bueno me ayudaron bastante..pero al final no funciono..logre cambiar el texto y simulando funciona pero en fisico no se porq no funciono .. de todas maneras gracias.



Hola...es difícil ayudar si no aportas datos...montaste el oscilador a cristal de 12Mhz que no esta en la simulación, pusiste el pin Nº1 del MCLR a +B, colocaste los fusibles en el programador o al re-compilar el programa son posibles causasque se me ocurren en este momento por las cuales te puede funcionar la simulación y no en la realidad.
Saludos.

Ric.


----------



## Vergil (Nov 9, 2012)

juanc08 dijo:


> gracias al foro he encontrado soluciones a inconvenientes que he tenido por eso hago este aporte cabe aclarar que no es de mi autoria lo en contre en el foro de neoteo como dijo elamigo anterior mente el favor se hace completo ono se hace
> adjunto archivos nesesarios para armar tu propia matriz no recuerdo el nonbre de el autor pero hay que agradecer su esfuerzo



Hola juanc, estoy entrando en el hilo de las matrices led vi tu codigo y simulacion que estan muy buenos, pero la verdad no entiendo el programa, lo estoy intentando pasar a picc compiler pero como no entiendo la logica con la que programaste no he podido hacerlo si me das una ayuda te lo agradeceria un monton gracias.


----------



## oFRGOo (Nov 12, 2012)

Hola, verdad tiene razón , no subí ningún código de la matri*z* que hice, bueno en realidad era el aporte de uno de los compañeros del foro, yo solo pude cambiar el código, pero lo demás sobre el cristal del programa y el real , no entendía bien esa parte, por eso solo me simulo , pero no funciona¿o en físico, bueno les paso el código q*ue* use, esta para arreglar, ya q*ue* es una copia el otro q*ue* utilice, lo borre por equivocación, solo hay q*ue* cambiar los caracteres de las letras, ya que lo forman por filas y columnas, si miras un caracter y lo volteas a la derecha veras q*ue* la letras o caracter esta formado por ceros(0) en un fondo de unos(1) . ha verdad ..el código de programa es basic.


----------



## Vergil (Nov 15, 2012)

oFRGOo dijo:


> Hola, verdad tiene razón , no subí ningún código de la matri*z* que hice, bueno en realidad era el aporte de uno de los compañeros del foro, yo solo pude cambiar el código, pero lo demás sobre el cristal del programa y el real , no entendía bien esa parte, por eso solo me simulo , pero no funciona¿o en físico, bueno les paso el código q*ue* use, esta para arreglar, ya q*ue* es una copia el otro q*ue* utilice, lo borre por equivocación, solo hay q*ue* cambiar los caracteres de las letras, ya que lo forman por filas y columnas, si miras un caracter y lo volteas a la derecha veras q*ue* la letras o caracter esta formado por ceros(0) en un fondo de unos(1) . ha verdad ..el código de programa es basic.




Hola oFROGO, te agradezco toda la ayuda prestada, te cuento que todo este tiempo me la pase leyendo foros de otros lados y logre conseguir pasar el codigo a picc, es mas ahora le puedo programar el mensaje que quiero que salga desde el rs232 grabandolo en una eeprom externa, si necesitas ayuda con algo me avisas.. de nuevo muchas gracias por la ayuda


----------



## SERGIOD (Nov 22, 2012)

oFRGOo dijo:


> Hola, verdad tiene razón , no subí ningún código de la matri*z* que hice, bueno en realidad era el aporte de uno de los compañeros del foro, yo solo pude cambiar el código, pero lo demás sobre el cristal del programa y el real , no entendía bien esa parte, por eso solo me simulo , pero no funciona¿o en físico, bueno les paso el código q*ue* use, esta para arreglar, ya q*ue* es una copia el otro q*ue* utilice, lo borre por equivocación, solo hay q*ue* cambiar los caracteres de las letras, ya que lo forman por filas y columnas, si miras un caracter y lo volteas a la derecha veras q*ue* la letras o caracter esta formado por ceros(0) en un fondo de unos(1) . ha verdad ..el código de programa es basic.



Sube toda la información así como lo subió *juanc08*
 para darle una revisada



Vergil dijo:


> Hola oFROGO, te agradezco toda la ayuda prestada, te cuento que todo este tiempo me la pase leyendo foros de otros lados y logre conseguir pasar el codigo a picc, es mas ahora le puedo programar el mensaje que quiero que salga desde el rs232 grabandolo en una eeprom externa, si necesitas ayuda con algo me avisas.. de nuevo muchas gracias por la ayuda



Genial felicidades, sube toda la información que recopilaste , sera de muca ayuda para todos los foristas


----------



## cesarim (Nov 22, 2012)

oFROGO podrias subir el circuito del cual pones el codigo no logro entender cual es nuestro amigo juanc08 puso un circuito muy lindo pero en realidad no lo entiendo el programa por mas que lo estudio  como podria  modificarlo al programa basic  o programarlo en pic basic ojala puedas tomarte tu tiempo y adjuntar el codigo mas el proteus de tu simulacion


----------



## oFRGOo (Nov 23, 2012)

hola, he estado ocupado por eso no me conectaba, pero ya encontré mis archivos de la matri*z*, les adjunto el diseño original con el cual me guie, y el q*ue* modifique conectándole una fuente,y un diagrama en proteus de como funciona la multiplexión y también los archivos hex que hice para probarlos, si funcionan pero los hice de 4 y 8 mhz, espero les sirvan.


----------



## Vergil (Nov 27, 2012)

Hola a todos como van espero bien, les adjunto la simulación en proteus 7.8sp2, estoy trabajando aun en el código por que estoy limitado en la cantidad de texto a ingresar debido a que el texto lo voy guardando en un buffer de recepción, pero este buffer tiene limite y no he podido aprovechar al 100% la eeprom externa, cuando lo solucione lo publico saludos


----------



## cesarim (Nov 27, 2012)

amigo Ofroon te agradesco mucho el tiempo que nos das pero crees que podrias subir el codigo para poder estudiarlo y saber como trabaja tu circuito en verdad si no fuera muchas molestia hay mucho muchos diseños  con  palabras q salen en las matrices pero lo que no suben es el codigo y ni idea como hacerlo por favor puedes subir tus codigos para poder estudiarlo en verdad muchas gracias espero en verdad no incomodarte



amigo vergil como le cambio las palabras presione la tecla  # pero no logro escribir nada aun


----------



## Vergil (Nov 27, 2012)

Hola cesarim como vas para borrar el mensaje oprimes shift+(boton que te da el # mi caso numero 3) esdecir shift+3, por el virtual terminal te devuelve Y, con esto quiere decir que esta listo para ingresar el nuevo mensaje, espero que lo puedas ver y en cuanto al codig. como comente anteriormente cuando solucione mi problema lo publico esta a medias.. suerte....


----------



## oFRGOo (Nov 27, 2012)

bueno cesarim , si ves algunos comentarios atras, subi el codigo de la simulacion en un archivo doc.he subido la simulacion el codigo hex y el codigo en basic


----------



## juanc08 (Feb 6, 2013)

Vergil dijo:


> Hola juanc, estoy entrando en el hilo de las matrices led vi tu codigo y simulacion que estan muy buenos, pero la verdad no entiendo el programa, lo estoy intentando pasar a picc compiler pero como no entiendo la logica con la que programaste no he podido hacerlo si me das una ayuda te lo agradeceria un monton gracias.



amigo que pena no contestar mas rapido pero ya el trabajo me deja poco tiempo, te envio unos archivos que explican unpoco sobre la matriz , la verdad yo soy un principiante en estos temas pero investigue un poco y le queme pestañas cuando tube tiempo ojala te sirva 
SALUDES


----------



## Mushito (Feb 26, 2013)

fey116 dijo:


> *Matriz de leds 7X32.*
> *Pic 16f628a + 74lc164*
> 
> *cuando compartan informacion compartan completo y no a medias(egoismo).*
> ...


Mira que caiste en tus palabras...
Pero logre modificar tus adjuntos.
En la compilacion y simulacion todo okey, pero al montarlo en protoboard no funciona nada, ojo que medì la frecuencia de oscilacion del pic, salida de pulsos con el osciloscopio, probe el registro de desplazamiento del 74LS164 por separado, revise cableado, pero nada no funciona.  sera que tengo que usar transistores colector abierto, no creo por que con un inversor 7404 deberia de funcionar aunque con poco brillo. 
Adjunto los archivos modificados (desencriptados) gracias por compartir.


----------



## CKOMETAL (Sep 15, 2013)

dayanmata dijo:


> Funcionando con el pic  16F628A porcia hay algun usuario interesado les dejo el codigo final  .asm y el achivo .inc con los retardos anexo circuito y archivo leeme  donde aparecen los valores de todos los componentes a y por ultimo  recuerden colocar la R de 10 K en RA4 que es salida de colector abierto "   por fin mi matriz  funciona  " a el mensaje que  puse para que mostrara la matriz es personal lo pueden cambiar por  cualquiera que deseen suerte.




hola  e estado intentando hacer el programa de una matriz de leds  con un pic 16f877a y con un corredor de registro 74hc164 pero no me sale la simulacion no se si me pueds alludar diciendome que estoy hacendo mal te lo agradeceria mucho te dejo la simulacion en proteus y el codigo en asm


----------



## oFRGOo (Sep 15, 2013)

Hola CKOMETAL mira en primer lugar todo pic funciona con un oscilador , ademas del interno en cual lo programas, debes añadir a tu diseño un oscilador de cuarzo es mi sugerencia, tu simulación en proteus, debes alimentar a tu pic con 5 voltios y su toma a tierra(GND), también su toma a tierra de tus registros de desplazamientos  de los 74hc164, personalmente yo también hice el mismo panel pero modificando la programación de otro compañero de este foro, no funciono pero me ayudo a entender como funciona estos paneles, solo hay que tener en cuenta la frecuencia, el oscilador, el programa bien escrito, y mucha suerte.


----------



## jajecantt (Nov 25, 2014)

dayanmata dijo:


> Funcionando con el pic  16F628A porcia hay algun usuario interesado les dejo el codigo final  .asm y el achivo .inc con los retardos anexo circuito y archivo leeme  donde aparecen los valores de todos los componentes a y por ultimo  recuerden colocar la R de 10 K en RA4 que es salida de colector abierto "   por fin mi matriz  funciona  " a el mensaje que  puse para que mostrara la matriz es personal lo pueden cambiar por  cualquiera que deseen suerte.



hola amigo (DayanMata) quisiera agradecerle por compartir su proyecto y comentarle que intento realizarlo pero me encuentro atascado en un punto, y es en la simulación. no se porque no encienden los leds si los conecte tal cual como en la imagen que adjuntaste, por favor si puede ayudarme responda lo antes posible gracias...!!

adjunto la simulación para que puedas observarla y determinar cual es el error.


----------

