# Matriz de Leds PIC16f628a Controlada por Teclado PS2 - Consulta



## eskor_fdr (Sep 22, 2010)

Hola, bueno les comento, estoy cursando la carrera electrónica, y para fin de año tengo que presentar un proyecto. Elegí hacer una matriz de leds 7x80 controlada por un teclado PS2, exactamente igual a esta : 




Lamentablemente no pude contactarme con la persona que hizo esa matriz, y no pude sacarme un par de dudas.

Todas mis dudas son sobre la parte de software, ya que la parte de la matriz, multiplexado, y registros, esta terminada y  probada. Dada la conexion del hardware, para que encienda un led debe ingresarse un 1 en la fila y columna respectivamente. Ya averigue como funciona el teclado, como son sus secuencias.

Mi primer duda era sobre la eleccion del micro, no por la cantidad de pines de E/S, sino por la MEMORIA.

*¿Cómo calculo la memoria que necesito? Tanto para la matriz como para la decodificacion del teclado. ¿El pic16f628a me alcanza tiene suficiente memoria?.*

*En cuanto a la programacion, tengo pensada hacerla en C. Ya que tengo mas conocimientos de C que Assembler. Mis dudas eran sobre como realizo las rutinas, o funciones de cada letra.
Mejor si alguien tiene alguna rutina en C, o algun codigo que ustedes creen que me serviria, desde ya se los agradeceria.*

_Como es un proyecto, tengo pensado mostrar todos los avances que realize._


----------



## ByAxel (Sep 22, 2010)

Sobre el teclado para que no te hagas tantos líos que tal si usas el Compilador MikroC for PIC que tiene una librería para teclado PS2.
Sobre la memoria, que tal si pones en una sola tabla las letras minúsculas por ejemplo 26 letras de 5*7 = 130 caracteres en ingles, igual para mayúsculas y números. Luego una rutina que según la letra ingresada por el teclado, busque la unión de 5 caracteres que represente la letra para luego mostrar en la matriz... Es un idea que fácilmente cabe en el PIC que sugieres ya que tiene 2K de memoria de otro modo el PIC16F648A de 4K. O usar una memoria aparte controlada por I2C o SPI.

Un saludo.


----------



## eskor_fdr (Sep 22, 2010)

ByAxel dijo:


> Sobre el teclado para que no te hagas tantos líos que tal si usas el Compilador MikroC for PIC que tiene una librería para teclado PS2.
> Sobre la memoria, que tal si pones en una sola tabla las letras minúsculas por ejemplo 26 letras de 5*7 = 130 caracteres en ingles, igual para mayúsculas y números. Luego una rutina que según la letra ingresada por el teclado, busque la unión de 5 caracteres que represente la letra para luego mostrar en la matriz... Es un idea que fácilmente cabe en el PIC que sugieres ya que tiene 2K de memoria de otro modo el PIC16F648A de 4K. O usar una memoria aparte controlada por I2C o SPI.
> 
> Un saludo.



Muchísimas gracias por la info del MikroC, había escuchado de alguna librería que era para PS2, pero pensé que lo tenia el CCS.
Después me fijo como son las funciones y como trabajan. 

Cuando decís que busque la unión de 5 caracteres, a que caracteres te referís ?
Osea detecta la tecla presionada, busca la rutina de la letra o tecla presionada, y esa rutina se tiene que encargar de enviar al Registro los 5 bits de la primera fila, después activar la primer fila, y así con las 7 filas.


*Otra duda, para escribir un mensaje completo en la matriz, por ejemplo:
"TU"

La secuencia de envío de datos seria:
.Envío primera fila de la "U" al registro de desplazamiento
.Envío primera fila de la "T" al registro de desplazamiento
.Enciendo 20mS la primera fila
.Apago primera fila
.Reseteo Registro
.Vuelvo a repetir el proceso para las filas restantes.

Corrijan me si me equivoco por favor, Gracias !*


----------



## ByAxel (Sep 22, 2010)

Es un ejemplo, digamos que una sola letra cabe en una matriz de 5x7, entonces se sabe que 5 son los bytes a representar en la matriz para que dibuje una letra, entonces cuando la letra a mostrar ingrese por el teclado, el programa debe de coger esos 5 bytes de una tabla y ponerlo en la matriz para así representar la letra.

Ahora sobre escribir el mensaje se me ocurre dos métodos:
1) Modo espejo (Invento mio ya que no se como decirlo, similar a lo que hace un LCD...), donde el PIC debe tener libre una misma cantidad de RAM que la longitud de la matriz y una rutina que siempre haga el multiplexado usando los datos que se escriban en la RAM. Entonces si algo varias en la RAM será reflejado en la matriz. Esto no te libera de tener tablas con las letras y números.
2) Con las mismas tablas, almacenar en un array en ASCII las letras que ingresan por el teclado; luego en la rutina de multiplexado...
> Coger un ASCII
> Con el ascii, buscar en las tablas los 5 byte que representen la letra
> y mostrar uno a uno en la matriz
cosa algo complicada y redundante ya que usarías varios contadores, punteros y algunas variables de almacenamiento para cada letra en un momento determinado hasta terminar de mostrar todos los ASCII y volver a iniciar... (se usa menos RAM).

Cada método depende bastante de la velocidad del PIC y en la práctica habría que ver cual de los dos se ejecuta más rápido.

Sigo pensando

Un saludo.


----------



## eskor_fdr (Sep 22, 2010)

Dejo el conexionado de la matriz de leds solamente, ahí se muestra que se necesita un 1 en la fila y en la columna, ya que cuando el ULN2003 recibe un 1, en la salida muestra un 0, cerrando el cto del led. (Disculpas por la desprolijidad)

La rutina de la muestra del mensaje voy a analizar tu primer opcion. Lo que mas me importaba era la elección del PIC, supongo que con el 16f648a me alcanza no?


----------



## ByAxel (Sep 22, 2010)

Claro... y el PIC está bien...
Es una opinión pero que tal si revisas un par de librerías del PICC CCS "GLCD.c" y "GRAPHICS.c" la función 'void glcd_text57(...)'. te puede dar una idea para convertir el ASCII en valores para el matricial.

Un saludo


----------



## eskor_fdr (Sep 23, 2010)

Ahora voy a investigar eso, en cuanto tenga algo lo subo. Gracias !


----------



## jams90 (Oct 7, 2010)

hola, yo tambien estoy haciendo el mismo proyecto, solo que no se mucho de programacion de pics, me podrias ayudar?


te agradeceria toda la ayuda que me pudieras brindar....

si entiendo lo que han puesto aqui y la logica que tiene, pero no se mucho de programacion de pics asi que me resulta un poco complicado...


ojala que me puedas ayudar
gracias..



PD. ya tienes algun codigo simulado o algo?


----------



## proteus7 (Dic 25, 2010)

hola yo estoy haciendo mi matris ya he conseguido hacer algunos ejemplos de efectos
ya hice una matris para leer un sensor ds18b20 tambien pienso hacerla con reloj y pues los led me salieron baratos porque he estado comprando series navideñas de leds si necesitan los pcb avisenme y se los paso estas hechos con uln2008 y cmos4094 tengo varios tamaños a y los programas estan en assembler


----------



## PicC (Dic 25, 2010)

@proteus7 hola, serias tan amable de poner tu esquemático para poder ver lo.


----------



## proteus7 (Ene 1, 2011)

hola aqui tienes los esquemas del pcb el diagrama no lo tengo solo lo hice asi tambien te adjunto el de proteus y un pequeño efecto que hace que las letras se derrumben y tambien tiene el efecto inverso   estos programas estan en asm  y el muestreo es por columnas estoy trabajando en como hacerlo por filas pero nadie rola el codigo. tambien voy a hacer que lea un reloj ds1307 y con teclado ps2 pero eso sera despues porque solo cuento con un pic16f84a


----------



## PicC (Ene 3, 2011)

Gracias Proteus7, el efecto se ve chido y gracias por el codigo lastima que es asm, ya que yo asm sé poco y casi nada(da weba aprender) pero aun asi estoy tratando de comprenderlo y si es posible pasarlo a C.

lo del teclado no sé si ya viste esta pagina: http://picmania.garcia-cuervo.net/proyectos_teclado_ps2.htm
alli habla de como conectar el teclado al pic.

Saludos!


----------



## proteus7 (Ene 6, 2011)

gracias de hecho ya e usado el teclado lo use con un lcd 2x16


----------



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

Proyecto completo codigo fuente + simulacion + proteus.

Descarga link https://www.forosdeelectronica.com/attachment.php?attachmentid=64789&d=1324675703

video corriendo:







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


----------



## zhealot (Mar 7, 2012)

me parese muy interesante tu aporte pero tengo una pregunta en que vercion del proteus diseñastes tu circuito por que cuando lo deseo abrir me salta como un pequeño error.


----------



## Dario (Mar 7, 2012)

eso es cierto, ami tambien me hace lo mismo si cambio el mensaje ¿porque? saludosss


----------



## tecniloco80 (Abr 6, 2012)

yo hice esta simulación en el proteus es de una matrix de 7 x 40 con memoria i2c y se graba por el puerto serial de la pc es solo un ejemplo creo que no quedaria muy bien si la arman por que el barrido no es por filas les dejo un video y el material para que prueben




ya tengo una armada con teclado pero es en ccs


----------



## Dario (Abr 7, 2012)

tecniloco80 dijo:


> yo hice esta simulación en el proteus es de una matrix de 7 x 40 con memoria i2c y se graba por el puerto serial de la pc es solo un ejemplo creo que no quedaria muy bien si la arman por que el barrido no es por filas les dejo un video y el material para que prueben
> http://www.youtube.com/watch?v=drRo6ICWYcU&
> http://www.4shared.com/rar/_tfcSkDx/matrix_tecni_basic.html
> ya tengo una armada con teclado pero es en ccs



Exelente aporte amigo, lo he probado y funciona   la verdad, me asombra la simpleza del codigo comparado con lo que es capaz de hacer  
saludosss


----------



## tecniloco80 (Abr 7, 2012)

D@rio dijo:


> Exelente aporte amigo, lo he probado y funciona   la verdad, me asombra la simpleza del codigo comparado con lo que es capaz de hacer
> saludosss


hasta yo me asombre cuando me funciono la simulacion el codigo del pic es simple por que no hace mucho solo recibe y transmite bytes el verdadero trabajo lo hace la pc en el programa vb.net que transforma las letras en bytes


----------



## Dario (Abr 7, 2012)

tecniloco80 dijo:


> hasta yo me asombre cuando me funciono la simulacion el codigo del pic es simple por que no hace mucho solo recibe y transmite bytes el verdadero trabajo lo hace la pc en el programa vb.net que transforma las letras en bytes


es un trabajo exelente amigo, te felicito  . ahora, digamos que yo hago el diseño en la vida real, el programa en visual basic que realizaste ¿puede utilizar el puerto serie fisico de la pc para programarlo?
saludosss


----------



## fabio1 (Abr 7, 2012)

hola a todos quise simular el proyecto que dejo el amigo dario pero me salen todos estos errores que puede ser?? subo winrar con la falla


----------



## Dario (Abr 7, 2012)

fabio1 dijo:


> quise simular el proyecto que dejo el amigo dario



jeje... el aporte es del amigo tecniloco80 yo probaria bjando de nuevo, es raro que te haya hecho ese error. en mi caso, lo baje, lo probe y funciono. luego cambie el texto sin problemas obviamente antes, habia cargado el puerto serie virtual pero eso no debiera ser problema.
saludosss


----------



## tecniloco80 (Abr 7, 2012)

fabio1 dijo:


> hola a todos quise simular el proyecto que dejo el amigo dario pero me salen todos estos errores que puede ser?? subo winrar con la falla


 esa falla es de la version del proteus la 7.6 no simula los 74HC595 yo uso la 7.10


----------



## fabio1 (Abr 7, 2012)

ya instale el proteuz 7.10 pero ahora no me abre  el proyecto,alguien lo probo con 7.8?? o con que version lo estan asiendo funcionar


----------



## Dario (Abr 7, 2012)

yo lo estoy simulando con la version 7.8 de proteus y funciona bien.
saludosss


----------



## tecniloco80 (Abr 8, 2012)

Esta es la matrix con teclado esta si la arme diganme que tal




Tal vez la semana proxima si me da el tiempo arme la de vbnet yo les aviso como queda


----------



## fabio1 (Abr 8, 2012)

Gracias tecniloco80,una consulta como hay que hacer para simular tu ultimo proyecto que subiste??,tenes el circuito impreso para probalo en la vida real como vos lo haces,saludos


----------



## Dario (Abr 8, 2012)

muy bueno tecniloco ¿la programacion es en basic tambien?. amigo cevollin, tu proyecto tambien esta buenisimo ¿podrias compartir el codigo aqui? 
saludosss


----------



## tecniloco80 (Abr 9, 2012)

fabio1 dijo:


> Gracias tecniloco80,una consulta como hay que hacer para simular tu ultimo proyecto que subiste??,tenes el circuito impreso para probalo en la vida real como vos lo haces,saludos



para simularlo usa el proteus, si tengo el circuito impreso pero eso depende de los componentes que consigas modelo y marca quedaria mejor si lo haces en el ares con los componentes que encuentres en tu electronica local





D@rio dijo:


> muy bueno tecniloco ¿la programacion es en basic tambien?. amigo cevollin, tu proyecto tambien esta buenisimo ¿podrias compartir el codigo aqui?
> saludosss


No la programacion esta hecha con el PIC C Compiler , lo que subi es solo la parte de la matrix el teclado funciona con otro pic un 16fxxx ,lo hice primero con un solo pic pero no quedaba mucho espacio paro los mensajes ahora puedo usar las Fx del teclado para grabar en memoria interena del pic 4 mensajes con F1 F2 F3 F4 graba y con F5 F6 F7 F8 reproduce F9 es un efx f10 negativo
f11 velocidad - f12 velocidad + esc borra msj


----------



## Badurock (May 11, 2012)

Q tal, tecniloco queria pedirte el favor de q vuelvas a subir los archivos de la matriz q muestras en el video, pues estoy intentando hacerme una y me seria de gran ayuda


*COMO NO LEO LAS NORMAS ME EDITARON EL MENSAJE*​

Saul.


----------



## tecniloco80 (May 13, 2012)

Badurock dijo:


> Q tal, tecniloco queria pedirte el favor de q vuelvas a subir los archivos de la matriz q muestras en el video, pues estoy intentando hacerme una y me seria de gran ayuda
> 
> 
> 
> Saul.



simulación no mas

http://www.4shared.com/rar/MwwmM4s0/simulacion_proteus.html


----------



## Meta (Ago 4, 2012)

Buen trabajo con el teclado.

Para que se hagan una idea. Se guarda en la EEPROM 24LC256 por poner un ejemplo las frases que desees. Luego, según órdenes del PIC, haces lo que quieras. En cuanto al manejo del puerto serie, aquí y aquí hay manuales hasta con LCD.











http://www.pic16f84a.org/proteus.html#Proteus_Capitulo_22

Un saludo.


----------



## Norvator (Nov 29, 2012)

D@rio dijo:


> jeje... el aporte es del amigo tecniloco80 yo probaria bjando de nuevo, es raro que te haya hecho ese error. en mi caso, lo baje, lo probe y funciono. luego cambie el texto sin problemas obviamente antes, habia cargado el puerto serie virtual pero eso no debiera ser problema.
> saludosss




Hola, quisiera saber como haces para cargar el puerto serie virtual que dices, porque cuando quiero cambiar el texto me sale:

Muchas gracias


----------



## Jesebas (Mar 4, 2013)

Amigo tecniloco80,  tengo una matriz que hice de 90*8, y ahora quiero colocarle una interfaz en VB, me hubiera gustado hacerla con USB pero ni idea nunca e experimentado con ello, pense en RS232, pero no se cual seria mas viable, me preguntaba si podrias ayudarme con el diseño en Vb ya qe no se programar en visual,..... mil gracias por tu tiempo


----------



## Mushito (Mar 5, 2013)

Ya lo tengo descargado y no corre la simulacion, uso proteus 7.9, pero eso no importa, lo importante es que montado en proto o en placa funcione.
Tecnoloco, porfa podrias subir mas datos de la matriz de leds, en la simulacion no se puede ver bien, los catodos y anodos de los leds como deben ir conectados?


----------



## tecniloco80 (Mar 13, 2013)

Jesebas dijo:


> Amigo tecniloco80,  tengo una matriz que hice de 90*8, y ahora quiero colocarle una interfaz en VB, me hubiera gustado hacerla con USB pero ni idea nunca e experimentado con ello, pense en RS232, pero no se cual seria mas viable, me preguntaba si podrías ayudarme con el diseño en Vb ya que no se programar en visual,..... mil gracias por tu tiempo



Hola disculpe por la demora en responder es que tengo mucho trabajo y no me da tiempo, 
bueno si te puedo ayudar con la programación en vb solo tienes que darme mas datos de como funciona tu matrix donde guarda el mensaje antes de pasarlo en memoria externa o interna publica aquí la parte donde se comunica por rs232


----------



## xavierymiriam (Mar 24, 2013)

hola amigo tecniloco por favor podrías subir el pcb de la matriz de led que hiciste con teclado de computadora la he tratado de armar pero no he logrado hacerla funcionar, lamento la molestia, te agradezco de todo corazón gracias


----------



## eskor_fdr (Mar 25, 2013)

Buenas, hace mucho que no paso por aca. Disculpas a los que no respondi.
Lamentablemente los PCB es muy dificil conseguirlos debido a que los realizo otro integrante del grupo hace como 3 años y no tengo mas contacto con el. 

En cuanto a la programacion yo fui el encargado. 
Lo realice en un PIC628A, el compilador fue el MikroC debido a que tenia la libreria PS2 ya armada (estaba corriendo con los tiempos y no pude desarrollarla).
Esa libreria me comia bastante flash, no es un micro preparado para la programación en C definitivamente. Desde la familia PIC16F1XXX que se empezo a pensar en la programacion en C y mejoraron sus posibilidades de trabajar.

Volviendo al tema, realice una tabla en la flash con las letras y simbolos, era un array algo rebuscado, paso a explicar..
Debido a que cada caracter estaba formado por 7 filas y ocho columnas, en la tabla cada caracter iba a tener asociado 7 bytes (cada byte son las filas, y sus respectivos bits las columnas), entonces el array estaba formado asi

unsigned char caracteres[] = {

'a', FILA1A, FILA2A, FILA3A, FILA4A, FILA5A, FILA6A, FILA7A,
'b', FILA1B, FILA2B, FILA3B, FILA4B, FILA5B, FILA6B, FILA7B, ... }

donde las constantes son el dibujo en la matriz...

FILA1A = 0b0111110
FILA2A = 0b0000001
... vamos dibujando el caracter fila por fila...
FILA7A = 0b0111110  

Y despues de hacer esto, yo sabia que en la posicion 0, 8, 16, 24... iban a estar ubicados los codigos ASCII del caracter, y las 7 ubicaciones siguientes iban a ser las filas de ese caracter.

Entonces cuando yo sabia que caracter queria representar, con un bucle For lo buscaba en la tabla, osea que comparaba el caracter que tenia con las posiciones multiplo de ocho de la tabla, si en alguna posicion coincidia sabia que esa ubicacion + 1 seria la primera fila a tirar en la matriz, esa ubicacion + 2 seria la segunda fila de ese caracter, y cada byte lo tiraba en los registros de desplazamiento.

Despues estaba todo el tema de cuando tenia un mensaje, al tener varios caracteres buscaba la primera fila de todos los caracteres y los iba tirando uno al lado de otro, y encendia esa fila, despues la apagaba y buscaba las segundas filas de todos los caracteres, y los tiraba en los registro de desplazamiento y encendia la segunda fila... asi con todo.

Era mi primer proyecto despues de encender un led con un PIC, asi que el codigo recuerdo que era asqueroso y la forma tambien. Creo que ahora lo hubiese hecho algo distinto, con punteros y manejando la memoria (en caso de seguir usando ese micro) pero si tuviera que hacer la matriz de nuevo lo haria con otro micro con un poco mas de flash, y la velocidad es fundamental para que no repercuta en los leds.

Cualquier cosa consulten ! Abrazo !


----------



## tecniloco80 (Mar 29, 2013)

xavierymiriam dijo:


> hola amigo tecniloco por favor podrías subir el pcb de la matriz de led que hiciste con teclado de computadora la he tratado de armar pero no he logrado hacerla funcionar, lamento la molestia, te agradezco de todo corazón gracias


 Lamentablemente los archivos de esa matrix no los puedo publicar, aun tengo que esperar que al que se los vendi se canse de hacer dinero con mi idea, dejare que pase un tiempo para publicar todo, lo que si puedo subir es una foto de como va la conexion espero que te ayude algo 
Ver el archivo adjunto conexion.rar


----------



## xavierymiriam (Mar 29, 2013)

hola amigo tecniloco te agradezco de todo corazón la gran aportación que has hecho, realmente me ha servido muchísimo el diagrama de conexión, tengo una duda el pic16f716  lo colocaste solo para utilizar la memoria que posee para almacenar los mensajes o también tiene su programación aparte al igual que el pic18f452  no había notado el pic16f716 en la simulación, gracias amigo te mando un gran abrazo


----------



## tecniloco80 (Mar 29, 2013)

xavierymiriam dijo:


> hola amigo tecniloco te agradezco de todo corazón la gran aportación que has hecho, realmente me ha servido muchísimo el diagrama de conexión, tengo una duda el pic16f716 lo colocaste solo para utilizar la memoria que posee para almacenar los mensajes o también tiene su programación aparte al igual que el pic18f452  no había notado el pic16f716 en la simulación, gracias amigo te mando un gran abrazo


 
No es para la memoria es para manejar el teclado ps2 aqui esta el hex 


```
:1000000000308A00542A0000831A0A28A500030E33
:10001000A6000F288312A500030EA600A6140A0846
:10002000AD008A018313A50E0408A7002008A800CC
:100030002108A9002208AA002308AB002408AC006C
:1000400083120B1E25288B18B02927088400280846
:10005000A0002908A1002A08A2002B08A3002C0850
:10006000A4002D088A00260E83008312250EA618F0
:10007000831609000A108A100A1182070D34093408
:100080000E34BA3415347134163431341A347A34A7
:100090001B3473341C3461341D3477341E343234D1
:1000A0002134633422347834233464342434653482
:1000B0002534343426343334293420342A34763405
:1000C0002B3466342C3474342D3472342E3435345D
:1000D00031346E3432346234333468343434673417
:1000E000353479343634363439342C343A346D344A
:1000F0003B346A343C3475343D3437343E34383420
:1001000041342C3442346B344334693444346F34D6
:10011000453430344634393449342E344A342D345D
:100120004B346C344C34F1344D3470344E3422340E
:100130005234B434543460345534A1345A340D3408
:100140005B342B345D34E73461343C34663408343A
:10015000693431346B3434346C3437347034303483
:100160007134E634723432347334353474343634A2
:100170007534383479342B347A3433347B342D3439
:100180007C342A347D34393476341B3405340534D8
:1001900006340634043404340C340C34033403348D
:1001A0000B340B34833483340A340A34013401347D
:1001B00009340934783402340734073411344034B4
:1001C000003400340A108A100A11E93E03188A0A22
:1001D00082000D3409340E34AA34153451341634E7
:1001E00021341A345A341B3453341C3441341D34F2
:1001F00057341E34223421344334223458342334C7
:10020000443424344534253424342634B734293452
:1002100020342A3456342B3446342C3454342D3480
:1002200052342E34253431344E3432344234333463
:100230004834343447343534593436342634393438
:100240004C343A344D343B344A343C3455343D34E8
:100250002F343E34283441343B3442344B3443341D
:10026000493444344F3445343D34463429344934D8
:100270003A344A345F344B344C344C34D1344D34FA
:1002800050344E343F345234A83454345E345534F0
:10029000BF345A340D345B342A345D34C73461348E
:1002A0003E3466340834693431346B3434346C345D
:1002B0003734703430347134E63472343234733459
:1002C0003534743436347534383479342B347A34E4
:1002D00033347B342D347C342A347D3439347634D1
:1002E0001B340534053406340634043404340C3429
:1002F0000C34033403340B340B34833483340A3426
:100300000A340134013409340934783402340734AE
:10031000073411344034003400348316061183123C
:1003200006110830A10094290000A117A529A113E6
:10033000BE0C03180615031C06112117A52921134D
:10034000A10B9829A329000006158C308400840B8A
:10035000A729AA290000A11B9729211B9F29003446
:1003600030080A3C031CC3293008023C0318C32987
:100370000310B90C831686158312B3018619B30ACC
:10038000330BC329B917B00B352A3908BA00B408A2
:10039000031D232A3A08F03A0319D829E23A03192F
:1003A000DB294B3A0319DE29033A0319E129E32932
:1003B0000130B400222A0130B500222A0130B500F4
:1003C000222AB501222AB508031D042ABB01031005
:1003D0003B0D3A203A020319F62903103B0D3A204F
:1003E000A100A1080319F629BB0AE72903103B0D58
:1003F0003A203A02031D032A03103B0D013E3A2026
:10040000BD00BE008D21212ABB0103103B0DE2205F
:100410003A020319142A03103B0DE220A100A1089F
:100420000319142ABB0A052A03103B0DE2203A02E5
:10043000031D212A03103B0D013EE220BD00BE003A
:100440008D21222A302AB4013A08123A03192C2AA3
:100450004B3A03192E2A302AB501302AB501302A29
:10046000B9010B30B0000130B1000130B100B20A67
:100470000B128B108A112528383084008313000852
:100480000319502A0530A100A001A00B452AA10B99
:10049000442A7C30A000A00B4B2A4E2A800B422A13
:1004A00000340B30B0007F2A03081F3983005F300F
:1004B000A0002130840083138001840AA00B5C2AF1
:1004C0002030A000A030840083138001840AA00B98
:1004D000652AA001840183131F308305831606114A
:1004E0008312061583161F149F141F158312B4015F
:1004F000B501B601B7016430B8003C22512A831619
:10050000061486151F308500811306308312A00063
:10051000A00B882A8B2AB201B101B3018316011303
:1005200083128B100B16C0308B04310B9A2AB10149
:100530008B100B168316851483128518D72A37085B
:10054000FC3E0318D42A043ED92AAE018B1BAE17F9
:100550008B130330BE008D21AE1B8B170130B70704
:10056000D42AAE018B1BAE178B130B30BE008D212E
:10057000AE1B8B170130B707D42AAE018B1BAE1709
:100580008B138330BE008D21AE1B8B170130B70754
:10059000D42AAE018B1BAE178B130A30BE008D21FF
:1005A000AE1B8B17B701D42AFA30B8003C22952A2B
:1005B00063000A108A140A118207A52AB12ABD2AEB
:0205C000C92A46
:02400E00BA3FB7
:00000001FF
;PIC16F716
```
 
no esta en la simulacion porque el proteus no simula teclado este es el hex para el 16f716 use ese pic porque era el unico que tenia cerca con un cristal de 16,9344 reciclado de un toca cd


----------



## xavierymiriam (Mar 31, 2013)

hola amigo tecniloco perdona por no responderte, nueva mente te agradezco por esta gran aportación espero que a todos los demás miembros del foro les sea útil esta gran aportación y resuelvan todas sus dudas respecto a la matriz de led al igual que ami me fue de gran ayuda, sinceramente te felicito por tu proyecto es excelente. de todo corazón gracias te mando un gran abrazo y un  te lo mereces.


----------



## chilin294 (May 1, 2013)

amigo tecniloco80 me podrias decir algun reemplazo del pic 16f716?


----------



## Barceleo (May 3, 2013)

Buenos dias amigo tecniloco80, en la matrix de 7x40, la memoria i2c que maneja en el proyecto? es para almacenamiento de mensajes o tiene programación aparte?


----------



## xavierymiriam (Ago 2, 2013)

hola amigo tecniloco perdona la molestia, me ha surgido una duda del diagrama de conexión que nos compartiste, los 6 circuitos integrados horizontales son registros de desplazamiento cd4094 sino me equivoco por ser de 8 pines, pero mi duda es los 5 circuitos integrados verticales que están justo alado de los transistores de que tipo son? no logro descifrar su tipo por que son de 9 pines hehe, te agradezco de todo corazón la ayuda amigo muchas gracias.


----------



## ledfly (Ago 7, 2013)

tecniloco80 dijo:


> Esta es la matrix con teclado esta si la arme diganme que tal
> http://www.youtube.com/watch?v=_uZCoS9WH9w&
> Tal vez la semana proxima si me da el tiempo arme la de vbnet yo les aviso como queda



Amigo podrías su*b*ir el código en picc ??? por_fa*vor*


----------



## tecniloco80 (Ago 13, 2013)

xavierymiriam dijo:


> hola amigo tecniloco perdona la molestia, me ha surgido una duda del diagrama de conexión que nos compartiste, los 6 circuitos integrados horizontales son registros de desplazamiento cd4094 sino me equivoco por ser de 8 pines, pero mi duda es los 5 circuitos ............



Esos son transistores darlington en arrays es el ULN2803an





ledfly dijo:


> Amigo podrías su*b*ir el código en picc ??? por_fa*vor*



este el codigo del pic 16f716 solo cambie el include y el use delay por uno que pueda conseguir como el 16f628 

```
#include "16F716.h"
#fuses HS,NOWDT,NOPROTECT,NOPUT,NOBROWNOUT
#use Delay(Clock=16934400)
#use rs232(baud=9600, xmit=PIN_B2, rcv=PIN_B1)
#zero_ram
unsigned char edge, bitcount;
char got_interrupt;
char interrupt_count;
char status_b3;
#bit INTF_BIT = 0x0B.1 
unsigned char const unshifted[82][2] = { 
0x0d,9, 
0x0e,'º', 
0x15,'q', 
0x16,'1', 
0x1a,'z', 
0x1b,'s', 
0x1c,'a', 
0x1d,'w', 
0x1e,'2', 
0x21,'c', 
0x22,'x', 
0x23,'d', 
0x24,'e', 
0x25,'4', 
0x26,'3', 
0x29,' ', 
0x2a,'v', 
0x2b,'f', 
0x2c,'t', 
0x2d,'r', 
0x2e,'5', 
0x31,'n', 
0x32,'b', 
0x33,'h', 
0x34,'g', 
0x35,'y', 
0x36,'6', 
0x39,',', 
0x3a,'m', 
0x3b,'j', 
0x3c,'u', 
0x3d,'7', 
0x3e,'8', 
0x41,',', 
0x42,'k', 
0x43,'i', 
0x44,'o', 
0x45,'0', 
0x46,'9', 
0x49,'.', 
0x4a,'-', 
0x4b,'l', 
0x4c,'ñ', 
0x4d,'p', 
0x4e,'"', 
0x52,'´', 
0x54,'`', 
0x55,'¡', 
0x5a,13, 
0x5b,'+', 
0x5d,'ç', 
0x61,'<', 
0x66,8, 
0x69,'1', 
0x6b,'4', 
0x6c,'7', 
0x70,'0', 
0x71,'æ', 
0x72,'2', 
0x73,'5', 
0x74,'6', 
0x75,'8', 
0x79,'+', 
0x7a,'3', 
0x7b,'-', 
0x7c,'*', 
0x7d,'9',
0x76,0x1b,//esc
0x05,0x05,//f1
0x06,0x06,//f2
0x04,0x04,//f3
0x0c,0x0c,//f4
0x03,0x03,//f5
0x0b,0x0b,//f6
0x83,0x83,//f7
0x0a,0x0a,//f8
0x01,0x01,//f9
0x09,0x09,//f10
0x78,0x02,//f11
0x07,0x07,//f12
0x11,'@',
0,0 
}; 

unsigned char const shifted[82][2] = { 
0x0d,9, 
0x0e,'ª', 
0x15,'Q', 
0x16,'!', 
0x1a,'Z', 
0x1b,'S', 
0x1c,'A', 
0x1d,'W', 
0x1e,'"', 
0x21,'C', 
0x22,'X', 
0x23,'D', 
0x24,'E', 
0x25,'$', 
0x26,'·', 
0x29,' ', 
0x2a,'V', 
0x2b,'F', 
0x2c,'T', 
0x2d,'R', 
0x2e,'%', 
0x31,'N', 
0x32,'B', 
0x33,'H', 
0x34,'G', 
0x35,'Y', 
0x36,'&', 
0x39,'L', 
0x3a,'M', 
0x3b,'J', 
0x3c,'U', 
0x3d,'/', 
0x3e,'(', 
0x41,';', 
0x42,'K', 
0x43,'I', 
0x44,'O', 
0x45,'=', 
0x46,')', 
0x49,':', 
0x4a,'_', 
0x4b,'L', 
0x4c,'Ñ', 
0x4d,'P', 
0x4e,'?', 
0x52,'¨', 
0x54,'^', 
0x55,'¿', 
0x5a,13, 
0x5b,'*', 
0x5d,'Ç', 
0x61,'>', 
0x66,8, 
0x69,'1', 
0x6b,'4', 
0x6c,'7', 
0x70,'0', 
0x71,'æ', 
0x72,'2', 
0x73,'5', 
0x74,'6', 
0x75,'8', 
0x79,'+', 
0x7a,'3', 
0x7b,'-', 
0x7c,'*', 
0x7d,'9',
0x76,0x1b,
0x05,0x05,
0x06,0x06,
0x04,0x04,
0x0c,0x0c,
0x03,0x03,
0x0b,0x0b,
0x83,0x83,
0x0a,0x0a,
0x01,0x01,
0x09,0x09,
0x78,0x02,
0x07,0x07,
0x11,'@',
0,0 
}; 
void init_kb(void);
void decode(unsigned char sc);
#int_ext
void int_ext_isr(void){
unsigned char data;
   if(bitcount < 11 && bitcount > 2){
      data = (data >> 1);
      status_b3 = input(PIN_B3);
      if((status_b3) == 1){
          data = data | 0x80;
      }
   }
   if(--bitcount == 0){
      decode(data);
      data = 0;
      bitcount = 11;
      got_interrupt = TRUE;
   }
   got_interrupt = TRUE;
   interrupt_count++;
   disable_interrupts(INT_EXT);
}

void main(void)
{
int value = 0;
   delay_ms(100);
   init_kb();
   output_float(PIN_B0);
   output_float(PIN_B3);
   set_tris_a (0x1f);
   port_b_pullups(TRUE);
   delay_us(5);
   interrupt_count = 0;
   got_interrupt = FALSE;
   status_b3 = 0;
   ext_int_edge(H_TO_L);
   INTF_BIT = 0;
   enable_interrupts(INT_EXT);
   enable_interrupts(GLOBAL);
   while(1){
      if(got_interrupt == TRUE){
            got_interrupt = FALSE;
            INTF_BIT = 0;
            enable_interrupts(INT_EXT);
         } 
        if( input(PIN_A1)==0 ){
       
        
        switch( value ){
        case 0:printf("%c",0x03);
        value=value+1;
        break;
        case 1:printf("%c",0x0b);
        value=value+1;
        break;
        case 2:printf("%c",0x83);
        value=value+1;
        break;
        case 3:printf("%c",0x0a);
        value=0;
        break;
        }
        delay_ms (250);
        }
      } 
} 

void init_kb(void){
   bitcount = 11;
   printf("" );
}

void decode(unsigned char sc){
   static unsigned char is_up=0, shift = 0, mode = 0;
   unsigned char i;

   if (!is_up){
         switch (sc){
               case 0xF0 :
                  is_up = 1;
                  break;
               case 0x12 :
                  shift = 1;
                  break;
               case 0x59 :
                  shift = 1;
                  break;
               case 0x5A :
                  shift = 0;
                  printf ("");
                  break;
               default:
                  if(!shift)
                     {
                        for(i = 0; unshifted[ i ][ 0 ]!=sc && unshifted[ i ][ 0 ]; i++);
                        if (unshifted[ i ][ 0 ] == sc)
                           {
                              printf("%c", unshifted[ i ][ 1 ]);
                           }
                     }
                  else
                     {
                        for(i = 0; shifted[ i ][ 0 ]!=sc && shifted[ i ][ 0 ]; i++);
                        if (shifted[ i ][ 0 ] == sc)
                           {
                              printf("%c", shifted[ i ][ 1 ]);
                           }
                     }
                     break;
               } 
         }
      else
         {
         
         is_up = 0;
         switch (sc)
            {
               case 0x12 :
                  shift = 0;
                  break;
               case 0x59 :
                  shift = 0;
                  break;
            } 
         }
}
```


----------



## juanc08 (Ago 15, 2013)

buenas tardes amigo tecniloco80, el codigo que tenes para el pic 18f452 en la simulacion no tiene transistores ni los uln 2803 , al montar el circuito ya con los transistores funciona igual o tenes otro para ello
 de antemano muchas gracias por tu respuesta
juanc08
cali colombia


----------



## tecniloco80 (Ago 19, 2013)

Hola  aqui les subo todos los archivos que encontre de esta matrix para que puedan hacerla funcionar disculpen por no subirlos antes es que me dio flojera reunir todos los archivos 
son libres de modificar lo que quieran del codigo por que creo que se puede hacer mejor 
yo lo hice asi por limite de tiempo 
Ver el archivo adjunto matrix.part01.rar

Ver el archivo adjunto matrix.part02.rar

Ver el archivo adjunto matrix.part03.rar

Ver el archivo adjunto matrix.part04.rar 

Ver el archivo adjunto matrix.part05.rar

Ver el archivo adjunto matrix.part06.rar

Ver el archivo adjunto matrix.part07.rar

Ver el archivo adjunto matrix.part08.rar


----------



## carlos jara (Oct 4, 2013)

Muchas gracias amigo por tu aportacion en verdad voy a descargar tus archivos subidos los para poder simularlos y armarlo muchas gracias amigo


```
#include "16F716.h"
#fuses HS,NOWDT,NOPROTECT,NOPUT,NOBROWNOUT
#use Delay(Clock=16934400)
#use rs232(baud=9600, xmit=PIN_B2, rcv=PIN_B1)
#zero_ram
unsigned char edge, bitcount;
char got_interrupt;
char interrupt_count;
char status_b3;
#bit INTF_BIT = 0x0B.1 
unsigned char const unshifted[82][2] = { 
0x0d,9, 
0x0e,'º', 
0x15,'q', 
0x16,'1', 
0x1a,'z', 
0x1b,'s',
```
si quisiera compilarlo para el pic16F628A como lo modificaria en los fuses amigo ya que es mas comercial y mas barato creo yo. ups creo que tbm necesito el programa C para poder modificarlo y compilarlo

---------- Actualizado después de 2 horas ----------



> No la programacion esta hecha con el PIC C Compiler , lo que subi  es solo la parte de la matrix el teclado funciona con otro pic un  16fxxx ,lo hice primero con un solo pic pero no quedaba mucho espacio  paro los mensajes ahora puedo usar las Fx del teclado para grabar en  memoria interena del pic 4 mensajes con F1 F2 F3 F4 graba y con F5 F6 F7  F8 reproduce F9 es un efx f10 negativo
> f11 velocidad - f12 velocidad + esc borra msj 0


Amigo TECNILOCO80  gracias por tu aporte de los archivos que has subido, en verdad esta  muy bueno. me hubiera gustado que la programación sea en pic basic ya  que ese es el que practico  quisiera saber como se programa esta matriz a través del teclado ps2 o se necesita algo mas te agradecería mucho  puedas darnos esa ultima pausa. Yo tengo un circuito que estuve haciendo  con un amigo del foro, pero el ya no se conecta y en verdad me agradaría postearlo. no se logro terminar el proyecto, pero lo que  falta del programa es muy poco esta en picbasic y Vb para la creación de  nuevas letras dibujos o imágenes espero subirlo pronto y si mi amigo  quien junto a el  hicimos este proyecto no se enoja o se enfada pues no  veo motivos de no adjuntarlo y poder terminarlo espero puedan ayudarme a  terminarlo amigos


----------



## decpiste (Oct 4, 2013)

Buen trabajo

Una duda, sabéis si el cristal de 16.93 MHz hay que ponerlo si o si, o se puede poner uno de 16.000 MHz o cual, por que no lo encuentro por ningún lado


----------



## decpiste (Oct 5, 2013)

Hola, me he dado cuenta que es cerámico, es esto cierto, existen cristales cerámicos?

Un saludo


----------



## Chico3001 (Oct 5, 2013)

Si existen... se les conoce como resonadores ceramicos

http://es.edaboard.com/topic-3970539.0.html


----------



## decpiste (Oct 5, 2013)

Ok gracias

Un saludo



Nada, no lo encuentro por ningún lado, sabéis donde puedo encontrar un resonador cerámico de 16.93 MHz online?







Un saludo


----------



## CYCA (Oct 5, 2013)

Hola compañero tecniloco80 agradesco tu gran aporte, leyendo tu mensaje para los cambios del pic del teclado estos serian los cambios    #include "16F716.h" por  #include "16F628.h" y #use Delay(Clock=16934400)  por  #use Delay(Clock=20000000) o abria otro cambio en el codigo, agradesco su respuesta de antemano.


----------



## tecniloco80 (Oct 5, 2013)

CYCA dijo:


> Hola compañero tecniloco80 agradesco tu gran aporte, leyendo tu mensaje para los cambios del pic del teclado estos serian los cambios    #include "16F716.h" por  #include "16F628.h" y #use Delay(Clock=16934400)  por  #use Delay(Clock=20000000).



Si esos serian los cambios para un cristal 20Mhz





decpiste dijo:


> Nada, no lo encuentro por ningún lado, sabéis donde puedo encontrar un resonador cerámico de 16.93 MHz



yo lo saque de un toca cd danado


----------



## decpiste (Oct 5, 2013)

OK gracias



Seria este el resonador? http://www.sourcingmap.es/100-unidades-pines-1693-mhz-radio-receptor-filtros-ceramica-p-147813.html


----------



## CYCA (Oct 5, 2013)

Gracias compañero tecniloco 80 ahora tengo que armar un grabador de pic  para el pic 18f452 ya que solo poseo un jdm ya que solo he utilizado pic 16f628 , he estado probando un proyecto de matriz de leds con teclado de una pagina rusa pero no funciona , les adjunto el diagrama que estaba desarrolando.


----------



## decpiste (Oct 6, 2013)

Sabéis si es el resonador que necesitamos este?http://www.sourcingmap.es/100-unidades-pines-1693-mhz-radio-receptor-filtros-ceramica-p-147813.html

Un saludo


----------



## CYCA (Oct 6, 2013)

Hola ,por las imagenes y por lo dicho por el compañero tecniloco8o ese es el mismo ,estos los encuentras en aparatos reproductores de c.d.


----------



## decpiste (Oct 6, 2013)

Ok gracias , intentare pillarlo de un aparato de cd por que el del enlace hay que pillar mínimo 100 y no estoy por la labor, además no lo encuentro por ningún otro lado

un saludo


----------



## SERGIOD (Oct 6, 2013)

tecniloco80 dijo:


> yo hice esta simulación en el proteus es de una matrix de 7 x 40 con memoria i2c y se graba por el puerto serial de la pc es solo un ejemplo creo que no quedaria muy bien si la arman por que el barrido no es por filas les dejo un video y el material para que prueben
> http://www.youtube.com/watch?v=drRo6ICWYcU&
> ya tengo una armada con teclado pero es en ccs



Cuando ejecuto el emulador del virtual serial port; en la raiz de virtual ports no aparece nada, al hacer clic add pair sale error ; mi PC solo reconoce un puerto com1 (físico)


----------



## xavierymiriam (Oct 8, 2013)

hola amigo tecniloco 80 crees que el puerto ps/2 de la matriz de led pueda ser sustituido por un puerto usb, tengo entendido que estos dos puestos son plug and play no se si me equivoque, gracias por tu respuesta


----------



## tecniloco80 (Oct 9, 2013)

xavierymiriam dijo:


> hola amigo tecniloco 80 crees que el puerto ps/2 de la matriz de led pueda ser sustituido por un puerto usb..........



Yo creo que si se puede pero solo con ciertas marcas de teclado por que yo le probe con un convertidor usb de estos y funcianaba con los de marca genius con los logitec no.....










SERGIOD dijo:


> Cuando ejecuto el emulador del virtual serial port; en la raiz de virtual ports no aparece nada, al hacer clic add pair sale error ; mi PC solo reconoce un puerto com1 (físico)



No te recomiendo esa matrix por que no la pude probrar no pude hacer que el programa vb grabe la memoria y me dio flojera terminarlo yo ejecutaba el emulador en windows7 en modo compatible para xp


----------



## decpiste (Oct 13, 2013)

Hola, podrías explicar la función del puente del primer display, esta en color verde el puente y la verdad no le veo la función ya que esta ya puenteado.

Un saludo


----------



## tecniloco80 (Oct 15, 2013)

decpiste dijo:


> Hola, podrías explicar la función del puente del primer display, esta en color verde .......



Ese puente no va, al parecer no uni bien los puntos con el ares por eso sale eso.

Lo que si tienes que tener en cuenta es cuando compres los dispay por que hay anodo comun y catodo comun si le pones el que no es no te va a funcionar los display son de estos





Yo use el hs-2057b aqui esta como va por dentro


----------



## Mushito (Oct 23, 2013)

para el circuito del mensaje 17 tambien son el mismo tipo de matriz?


----------



## decpiste (Oct 26, 2013)

Hola, cuantas letras o espacios se pueden poner? a mi no me deja mas de 15 es así?


----------



## tecniloco80 (Nov 1, 2013)

decpiste dijo:


> Hola, cuantas letras o espacios se pueden poner? a mi no me deja mas de 15 es así?



Si es asi yo cambie el codigo para alguien que me lo pidio asi, solo tienes que cambiarle el valor a una variable en la parte que dice "char demo [15];" por "char demo [99];" con eso ya escribe mas letras de todas formas aqui te pongo el hex compilado.


```
:020000040000FA
:0400000089EF06F08E
:08000800056ED8CF06F0E0CF31
:1000100007F00001E9CF0DF0EACF08F0E1CF09F0D9
:10002000E2CF0AF0D9CF0BF0DACF0CF0F3CF14F017
:10003000F4CF15F0FACF16F000C00FF001C010F0A9
:1000400002C011F003C012F004C013F0F2AA2CEFAA
:1000500000F0F2B461EF03F09DAA32EF00F09EBA17
:1000600068EF03F00FC000F010C001F011C002F003
:1000700012C003F013C004F00E8E0DC0E9FF08C0DB
:10008000EAFF09C0E1FF0AC0E2FF0BC0D9FF0CC0C4
:10009000DAFF14C0F3FF15C0F4FF16C0FAFF0550D5
:1000A00007C0E0FF06C0D8FF1000F2CF0EF0F29EAE
:1000B000F76AC40FF66E000EF7220900F5500EBE67
:1000C000F28E12000000F2CF0EF0F29EDE0FF66EFE
:1000D000000EF7220900F5500EBEF28E120000004D
:1000E0000000000000000000000000000000000010
:1000F0000000000000000000000000000000000000
:1001000000000000000000000000000000000000EF
:1001100000000000000000000000000000000000DF
:1001200008000D0013001B0022002A0032003600D8
:100130003B00400048004F0054005B005E0066003A
:100140006E0075007C0083008B0092009900A00077
:10015000A700AE00B100B500BB00C200C800CF00D0
:10016000D700DF00E700EF00F700FF0007010F01F5
:1001700016011B0123012B0133013B0143014B01FC
:1001800053015A0162016901700177017E01860104
:100190008E0195019D01A201AA01AF01B701BF0126
:1001A000C301CB01D301DA01E201E901F001F80159
:1001B000000205020C0214021902210228022F0279
:1001C00037023F0247024E0254025C0263026B0296
:1001D00073027A02810288028B0292029A02A202C0
:1001E000A302A402A502A602A702A802A902AA02CB
:1001F000AB02AC02AD02AE02AF02B002B102B2027B
:10020000B302B402B502B602B702B802B902BA022A
:10021000BB02BC02BD02BE02BF02C002C102C202DA
:10022000C302C402C502C602C702C802C902CA028A
:10023000CB02CC02CD02CE02CF02D002D102D2023A
:10024000D302D402D502D602D702D802D902DA02EA
:10025000DB02DC02DD02DE02DF02E002E102E2029A
:10026000E302E402E502E602E702E802E902EA024A
:10027000EB02EC02ED02EE02EF02F002F102F202FA
:10028000F302FB02FC02FD02FE02FF020003010377
:10029000020303030403050306030703080309031A
:1002A0000A030B030C030D030E030F0310031103CA
:1002B000120313031403150316031703180319037A
:1002C0001A03210322032303F2CF0EF0F29EE00F64
:1002D000F66E020EF7220900F5500EBEF28E1200E5
:1002E0000000000000000000065F5F060007070036
:1002F000070700147F7F147F7F1400242E6B6B3A56
:100300001200466630180C666200307A4F5D377A0C
:100310004800040703001C3E63410041633E1C008B
:10032000082A3E1C1C3E2A0808083E3E0808000019
:1003300080E060000808080808080060600060307D
:10034000180C060301003E7F71594D7F3E0040426C
:100350007F7F404000627359496F660022634949BC
:100360007F3600181C16537F7F5000276745457D58
:1003700039003C7E4B49793000030371790F070047
:10038000367F49497F3600064F49693F1E00666641
:100390000080E66600081C366341002424242424DF
:1003A00024004163361C0800020351590F06003E29
:1003B0007F5D555D4F5E007C7E13137E7C000041A7
:1003C0007F7F49497F36001C3E63414163220041E3
:1003D0007F7F41633E1C00417F7F495D4163004157
:1003E0007F7F491D0103001C3E6341517372007FF2
:1003F0007F08087F7F00417F7F4100307040417F50
:100400003F0100417F7F081C776300417F7F4140AF
:100410006070007F7F0E1C0E7F7F007F7F060C18B0
:100420007F7F001C3E6341633E1C00417F7F490982
:100430000F06001E3F21717F5E00417F7F09197FFB
:100440006600266F4D5973320003417F7F410300E0
:100450007F7F40407F7F001F3F60603F1F007F7FA6
:100460003018307F7F0043673C183C674300074FDC
:1004700078784F0700476371594D6773007F7F415C
:1004800041000103060C1830600041417F7F0008E5
:100490000C0603060C08004040404040404040032A
:1004A000070400207454543C784000417F3F484882
:1004B000783000387C44446C2800307848493F7FCD
:1004C0004000387C54545C1800487E7F4903020089
:1004D000285C5454787C0400417F7F08047C7800B9
:1004E000447D7D4000307040407D3D00417F7F1065
:1004F000386C4400417F7F40007C7C18381C7C783D
:10050000007C7804047C7800387C44447C380044C7
:100510007C7854141C0800081C1454787C44004453
:100520007C784C041C1800485C5454742400043E2D
:100530007F4424003C7C40403C7C40001C3C60608C
:100540003C1C003C7C7038707C3C00446C3810389B
:100550006C44000C5C50507C3C004C64745C4C64FB
:100560000008083E774141007777004141773E0817
:100570000800020301030203010070784C464C7826
:1005800070000000000000000000000000000000FB
:10059000000000000000000000000000000000005B
:1005A000000000000000000000000000000000004B
:1005B000000000000000000000000000000000003B
:1005C000000000000000000000000000000000002B
:1005D0000000007E7E1931617E7E00000000000078
:1005E000000000000000000000000000000000000B
:1005F000000000000000000000007C7905057C7808
:1006000000000000185204E1C06B270EBF6F04D039
:10061000010E185CBF6FC06BBE6BBD6BBE5324E197
:10062000BD51270821E3190EBF25E96E000EC02138
:10063000EA6EEF50411403E09292898202D09292C6
:1006400089929294898492948994BF51C01104E153
:10065000C06B270EBF6F04D0BF51D8B4C007BF070F
:10066000BD2BD8B4BE2BDAD741C0C1F0C11FC26BBD
:10067000C207BE6BBD6BBE5315E1BD51070812E347
:10068000C1AF03D09292898202D0929289929294C1
:10069000898492948994D890C137C237BD2BD8B43D
:1006A000BE2BE9D7929689869296899641507F080B
:1006B00004E2010E416E4C8202D0D890413665EFC3
:1006C00003F0D76A9D0ED66E9DD7F29432EF00F0FC
:1006D000036A49504D0FE96E000E0320EA6E9EAA90
:1006E000FED7AECFEFFF036A49504D0FE96E000E03
:1006F0000320EA6EEF5008080AE14906036A4950F0
:100700004D0FE96E000E0320EA6EEF6A4906036A98
:1007100049504D0FE96E000E0320EA6EEF501B08A2
:100720000FE1BD6B4950BD5D0AE2036ABD514D0F3B
:10073000E96E000E0320EA6EEF6ABD2BF3D7496A1B
:10074000036A49504D0FE96E000E0320EA6EEF5028
:10075000050825E1BE6B4950BE5D21E2036ABE512A
:100760004D0FE96E000E0320EA6EEFCFCCF0BEC055
:10077000A9FFCCC0A8FFA69CA69EA684F2CF00F03D
:10078000F29E0F01550EA76EAA0EA76EA682A6B204
:10079000FED7A6940050F2120001BE2BDCD7036AEC
:1007A00049504D0FE96E000E0320EA6EEF50060827
:1007B00028E1630EC06FBF6B4950BF5D22E2036A40
:1007C000BF514D0FE96E000E0320EA6EEFCFCCF063
:1007D000C0C0A9FFCCC0A8FFA69CA69EA684F2CF4D
:1007E00000F0F29E0F01550EA76EAA0EA76EA6820C
:1007F000A6B2FED7A6940050F2120001C02BBF2B68
:10080000DBD7036A49504D0FE96E000E0320EA6EF4
:10081000EF50040828E1970EC26FC16B4950C15DCB
:1008200022E2036AC1514D0FE96E000E0320EA6E09
:10083000EFCFCCF0C2C0A9FFCCC0A8FFA69CA69E5B
:10084000A684F2CF00F0F29E0F01550EA76EAA0EFD
:10085000A76EA682A6B2FED7A6940050F21200019F
:10086000C22BC12BDBD7036A49504D0FE96E000E36
:100870000320EA6EEF500C0828E1CB0EC46FC36B67
:100880004950C35D22E2036AC3514D0FE96E000E69
:100890000320EA6EEFCFCCF0C4C0A9FFCCC0A8FF04
:1008A000A69CA69EA684F2CF00F0F29E0F01550EE4
:1008B000A76EAA0EA76EA682A6B2FED7A694005077
:1008C000F2120001C42BC32BDBD7036A49504D0F32
:1008D000E96E000E0320EA6EEF5003083BE1496A1F
:1008E000C56BC551620836E3036A49504D0FE96E86
:1008F000000E0320EA6EF2CFCEF0F29E49C0A9FFAF
:10090000A69CA69EA680A850CEBFF28EEF6E036A6C
:1009100049504D0FE96E000E0320EA6EEFCFCCF088
:10092000CC519EA8FED7AD6E036A49504D0FE96EBB
:10093000000E0320EA6EEF3C0AD0036A49504D0FC7
:10094000E96E000E0320EA6EEF6A630EC56F492A56
:10095000C52BC7D7036A49504D0FE96E000E03201F
:10096000EA6EEF500B083EE1630EC76F496AC66B33
:10097000C651330837E3036A49504D0FE96E000E44
:100980000320EA6EF2CFCEF0F29EC7C0A9FFA69C6C
:10099000A69EA680A850CEBFF28EEF6E036A495085
:1009A0004D0FE96E000E0320EA6EEFCFCCF0CC5174
:1009B0009EA8FED7AD6E036A49504D0FE96E000E3A
:1009C0000320EA6EEF3C0AD0036A49504D0FE96EEE
:1009D000000E0320EA6EEF6A340EC66F492AC72B59
:1009E000C62BC6D7036A49504D0FE96E000E03208F
:1009F000EA6EEF5083083EE1970EC96F496AC86BF3
:100A0000C851330837E3036A49504D0FE96E000EB1
:100A10000320EA6EF2CFCEF0F29EC9C0A9FFA69CD9
:100A2000A69EA680A850CEBFF28EEF6E036A4950F4
:100A30004D0FE96E000E0320EA6EEFCFCCF0CC51E3
:100A40009EA8FED7AD6E036A49504D0FE96E000EA9
:100A50000320EA6EEF3C0AD0036A49504D0FE96E5D
:100A6000000E0320EA6EEF6A340EC86F492AC92BC4
:100A7000C82BC6D7036A49504D0FE96E000E0320FC
:100A8000EA6EEF500A083EE1CB0ECB6F496ACA6BA3
:100A9000CA51330837E3036A49504D0FE96E000E1F
:100AA0000320EA6EF2CFCEF0F29ECBC0A9FFA69C47
:100AB000A69EA680A850CEBFF28EEF6E036A495064
:100AC0004D0FE96E000E0320EA6EEFCFCCF0CC5153
:100AD0009EA8FED7AD6E036A49504D0FE96E000E19
:100AE0000320EA6EEF3C0AD0036A49504D0FE96ECD
:100AF000000E0320EA6EEF6A340ECA6F492ACB2B30
:100B0000CA2BC6D7036A49504D0FE96E000E032069
:100B1000EA6EEF50070806E1B22BB2511E0802E15F
:100B20001F0EB26F036A49504D0FE96E000E03208D
:100B3000EA6EEF50020806E1B207B251050802E181
:100B4000060EB26F036A49504D0FE96E000E032086
:100B5000EA6EEF5009080AE14A5003E0010A04E096
:100B600005D0010E4A6E02D04A6A00D0492A9E9AE8
:100B700032EF00F0010E416E4C920F0EB26FAFEFEC
:100B800006F0BAC0B4F04C84B1EF06F04650445CB5
:100B900007E303E14550435C03E3000E016E19D007
:100BA00044C003F04350432AD8B4442ABA6F03C068
:100BB000BBF003C003F0BA51F2CFBCF0F29E03C009
:100BC000F7FF64EC01F0BCBFF28E486A476E010E7D
:100BD000016E2FEF06F0D8904234036AF2CFBCF0DA
:100BE000F29E55EC00F00900F5CF03F0BCBFF28E89
:100BF000456E03C046F0BB514526000E4622D890F4
:100C00004534026E4634036E0250F2CFBCF0F29EC1
:100C100003C0F7FF63EC00F00900F5CF03F0BCBFA1
:100C2000F28E436E03C044F0452AD8B4462AD890C9
:100C30004534026E4634036E0250F2CFBCF0F29E91
:100C400003C0F7FF63EC00F00900F5CF03F0BCBF71
:100C5000F28E456E03C046F073EF06F097D701524F
:100C600027E0182A18502708D8A0186A185205E05B
:100C7000010E185CB56FB66B03D0B66B270EB56F5F
:100C80004A5209E1190EB525E96E000EB621EA6E49
:100C900047C0EFFF0CD0190EB525E96E000EB62146
:100CA000EA6E48C003F0031E4750FF0AEF6E1BD0E8
:100CB0004CB403D0B02BD8B4B12B4C944D0EB0250E
:100CC000E96E000EB121EA6EEF5202E1B16BB06B3A
:100CD0004D0EB025E96E000EB121EA6EEFCFBAF0ED
:100CE000BAC0BBF078D787EF06F04CB202D00FD075
:100CF00001D04C92B351B307000A03E1B2C0B3F084
:100D000001D005D0B45101E001D0A8D700D0C3EF85
:100D100006F0F86AD09E0D8EFE0E006E060E016E75
:100D2000020EE96E000EEA6EEE6A002EFDD7012E6D
:100D3000FBD7EA6AE96A810EAF6EA60EAC6E900E22
:100D4000AB6EC180C182C184C196C00ED56ECD6A22
:100D5000000ECA6E000ECB6E926E936E0BD7BA6BFE
:100D600010D7F28AC00EF2129D8A4C804CA00CD093
:100D70004B50020807E1B96BB951010802E3B92BE6
:0A0D8000FBD74B6AB2D7F2D703008D
:020000040030CA
:0E00000000220E0E000181000FC00FE00F4025
:00000001FF
;PIC18F452
```


----------



## decpiste (Nov 2, 2013)

OK , gracias por compartir


----------



## CYCA (Dic 12, 2013)

Saludos a los compañeros del foro y un agradecimiento muy especial al amigo tecniloco80 por su aportacion , les comento que estoy desarrollando este proyecto con cambios para un pic 16f628A  y cristal de 20 mhz para el teclado . resulta que en las pruebas al escribir el numero 1 comienza a visualizar  algo asi como un test de prueba y luego se pierde todo el texto escrito, le agradeceria al amigo tecniloco si podria decirme como solucionar este pequeño problema .  gracias de antemano , luego subire unas fotos de este proyecto.


----------



## DOMINGOS (Ene 30, 2014)

Olá amigos,sou novo aqui, e gostei muito do projeto , montei todo circuito da matriz mais o hex não funcionou,obs,grava direitinho nos dois pics sem erros, na hora de multiplexar ai ta o problema,nada funciona.
No pic18f452 ta faltando oscilar , o hex não ta completo parece ta faltando o cristal de 20mhz.
Por isso pesso uma ajudinha para meu projeto, se possivel montar o hex do pic completo pramim testar a ideia, de já agradeço.

Vou postar meu esquema e pcb do projeto da matriz com teclado ps2 e adaptado para usb.

*
---- Traduccion de Google por Chico3001 ----*

Hola amigos, soy nuevo aquí, y me gustó el diseño, me puse toda matriz de circuito más el hex no funcionó, obs, escribe derecho con errores en las dos fotos en tiempo multiplex problema ai ta, nada funciona.
En PIC18F452 ta falta hexagonal oscilar no parece ta ta completar la 20mhz cristal desaparecidos.
Así peopl un poco de ayuda para mi proyecto, si es posible montar el pic completo hexagonal pramim probar la idea, te lo agradezco.

Voy a publicar mi esquema y pcb teclado matricial diseño ps2 a usb y adaptado.


----------



## DOMINGOS (Feb 7, 2014)

Aos organizadores deste forum.
Em primeiro lugar, desculpas, mil desculpas! Eu sei que errei e que a situação desagradável e desconfortável que enfrento (ou enfrentamos...) foi provocada por mim mesmo.  Por isso é que começo com um pedido de desculpas.
Todos nós corremos o risco de errar algumas vezes na vida. Apesar da tradicional desculpa de que “errar é humano”, precisamos estar preparados para assumir nossas falhas e corrigir possíveis erros ao longo de nossa vida profissional.
Aos Amigos do forum , minhas mil desculpas pelo erro, isso não acontecerá mais.
Espero eu so colaborar com todos com muitas sinceridades e responsabilidades.

Grato;Domingos Melo.


Matriz de leds contrlado por teclado usb
Olá amigos,sou novo aqui, e gostei muito do projeto , montei todo circuito da matriz mais o hex não funcionou,obs,grava direitinho nos dois pics sem erros, na hora de multiplexar ai ta o problema,nada funciona.
No pic18f452 ta faltando oscilar , o hex não ta completo parece ta faltando o cristal de 20mhz.
Por isso pesso uma ajudinha para meu projeto, se possivel montar o hex do pic completo pramim testar a ideia, de já agradeço.

Vou postar meu esquema e pcb do projeto da matriz com teclado ps2 e adaptado para usb.

*---- Traduccion de Google por Chico3001 ----*

Los organizadores de este foro.
En primer lugar, disculpas, mil disculpas! Yo sé que estaba equivocado y que la situación desagradable e incómoda que me enfrento (o la cara ...) fue causado por mi mismo. Por eso empiezo con una disculpa.
Todos corremos el riesgo de cometer errores a veces en la vida. A pesar de la tradicional excusa de que "errar es humano", debemos estar preparados para asumir nuestras fallas y corregir los errores posibles en toda nuestra vida profesional.
Amigos del foro, mil disculpas por mi error, no va a suceder de nuevo.
Sólo espero cooperar con todas las sinceridades y con muchas responsabilidades.

Agradecido; Domingos Melo.


----------



## JOSE JAVIER BAEZ (Abr 10, 2014)

hola amigo tecniloco80, Gracias por el gran aporte que has echo. Por favor necesito de tu ayuda. He estado intentando montar el proyecto pero tengo algunos inconvenientes. Lo primero es que no consigo el 16f716 aquí en Quito. cambie el código de programa para un 16f628 y un cristal de 20Mhz pero no consigo ningún resultado. Estoy haciendo mis primeras pruebas utilizando solo 2 cd4094 un ULN2803A y un Display 7x5.
sera que tengo que montar todos los IC y displeys que faltan?. esta bien utilizar un cargador de un pc portatil para generar los 5v? .Disculpa las molestias Gracias.


----------



## juanc08 (Abr 13, 2014)

tecniloco80 dijo:


> Si es asi yo cambie el codigo para alguien que me lo pidio asi, solo tienes que cambiarle el valor a una variable en la parte que dice "char demo [15];" por "char demo [99];" con eso ya escribe mas letras de todas formas aqui te pongo el hex compilado.
> 
> 
> ```
> ...



buenas noches amigo, por favor me podrias explicar, comopaso este compilado a .hex para pasarlo por pickit de antemano muchas gracias por tu respuesta


----------



## JOSE JAVIER BAEZ (Abr 14, 2014)

Gracias nuevamente tecniloco80 por tu gran aporte. anoche después de varios intentos logre hacer funcionar el proyecto, utilizando un pic16f628a y un cristal de 20Mhz. ademas de cambiar el código de programa, también hay que cambiar la configuración de bits, ya que el 16f716 no se configura igual al 16f628, ahora voy a probar cambiando el código al 18f452 para poder escribir mas caracteres y luego también intentare cambiar el código para un 16f877. Solo me queda una duda, ¿como hago para que los caracteres sean en mayúsculas?.   gracias


----------



## juanc08 (Abr 18, 2014)

juanc08 dijo:


> buenas noches amigo, por favor me podrias explicar, comopaso este compilado a .hex para pasarlo por pickit de antemano muchas gracias por tu respuesta



muchas gracias amigo y disculpa la molestia , ya encontre la solucion





jose javier baez dijo:


> gracias nuevamente tecniloco80 por tu gran aporte. Anoche después de varios intentos logre hacer funcionar el proyecto, utilizando un pic16f628a y un cristal de 20mhz. Ademas de cambiar el código de programa, también hay que cambiar la configuración de bits, ya que el 16f716 no se configura igual al 16f628, ahora voy a probar cambiando el código al 18f452 para poder escribir mas caracteres y luego también intentare cambiar el código para un 16f877. Solo me queda una duda, ¿como hago para que los caracteres sean en mayúsculas?.   Gracias



buenas noches amigo ,me podrias regalar el . Hex del 16f628, solo manejo pic basic y nolohe podidocompilar para arrancar con el proyecto , aunque he preguntado por el 18f452 y no lohe conseguido , muchas gracias por tu respuesta


----------



## JOSE JAVIER BAEZ (Abr 22, 2014)

claro, para eso estamos, disculpa amigo juanc08 estoy de viaje por colombia,,,,,si todavía te sirve el jueves 23 te subo lo que me pides....


----------



## JOSE JAVIER BAEZ (Abr 27, 2014)

hola juanc08, este es el ex para remplazar el 16f716 por el 16f628, para el 18f452 tienes que utilizar el ex de tecniloco80... saludos


----------



## juanc08 (Abr 28, 2014)

JOSE JAVIER BAEZ dijo:


> hola juanc08, este es el ex para remplazar el 16f716 por el 16f628, para el 18f452 tienes que utilizar el ex de tecniloco80... saludos



amigo ,muchas gracias por tu aporte. te quedo altamente agradecido


----------



## Marto09 (May 2, 2014)

Hola quiero felicitar a todos los que han aportado a este tema, tambien estoy intentando hacer una matriz de le hice una de 8 x 56 pero tengo algunos inconveniente; me queda la tercera fila encendida levemente y no he podido hacer apagar tambien intente ponerle la hora con un ds1307 pero no he podido si me pueden dar una ayuda se los agradezco mucho lo desarrolle en pbp.


----------



## tecniloco80 (May 6, 2014)

JOSE JAVIER BAEZ dijo:


> ,.........Solo me queda una duda, ¿como hago para que los caracteres sean en mayúsculas?.   gracias


 Para escribir en mayúsculas tienes que tener presionada la tecla mayúsculas o shift


----------



## jucaceledon (Jul 25, 2014)

JOSE JAVIER BAEZ dijo:


> hola juanc08, este es el ex para remplazar el 16f716 por el 16f628, para el 18f452 tienes que utilizar el ex de tecniloco80... saludos



Gracias Jose, es factible que subas el archivo en ccs para ver las modificaciones plis

Gracias 

Juka



Tecniloco80, muy bueno su trabajo, excelente, estoy en la face de simulacion todo bien hasta que marco el 1, marca cualquier cosa y luego se queda detenido, pasado un tiempo largo vuelve y lo hace (yo probe con el 12) que puede ser.

Ademas en proteus aparece dos pulsadores que en su main son los de reset y para mostra mensajes grabados (este ultimo falto conectar a negativo en el ares, verdad), estoy en lo correcto

Estare atento a sus respuestas

Juka


----------



## juanc08 (Ago 7, 2014)

JOSE JAVIER BAEZ dijo:


> hola juanc08, este es el ex para remplazar el 16f716 por el 16f628, para el 18f452 tienes que utilizar el ex de tecniloco80... saludos



buena tarde amigo , te consulto en la practica te funciono el codigo hex para el 16f628 o solo en proteus,no logro echarlo a andar


----------



## talquino2012 (Sep 13, 2014)

hola amigos, empece a hacer los pcb del amigo tecnilo80 ( que de paso se le agradece todo su ayuda), pero me encontré con el problema que no puedo conseguir el cristal de 19.63, por lo que he leído se puede cambiar el pic por 16f628 y cambiar el cristal por 20 M, alguien lo ha hecho y ha funcionado en practico o hay que hacer otra modificación.

Espero puedan responder 

Taquino


----------



## xavierymiriam (Sep 13, 2014)

hola para el pic 16f628 puedes usar un cristal de 20 mhz para que el oscilador funcione a frecuencias superiores a 4Mhz, debes elegir el oscilador del tipo HS. Si no lo haces, el pic no funcionará! porque no andará el oscilador esto lo he hecho en otros proyectos, no lo he probado en la matriz de del gran amigo tecniloco. Espero y te sirva


----------



## talquino2012 (Sep 13, 2014)

xavierymiriam dijo:


> hola para el pic 16f628 puedes usar un cristal de 20 mhz para que el oscilador funcione a frecuencias superiores a 4Mhz, debes elegir el oscilador del tipo HS. Si no lo haces, el pic no funcionará! porque no andará el oscilador esto lo he hecho en otros proyectos, no lo he probado en la matriz de del gran amigo tecniloco. Espero y te sirva



Gracias, esto se refiere solo a la simulación verdad.

Alguien a hecho en fisico estos cambios

Talquino


----------



## Printpix (Sep 14, 2014)

Buenos dias!! Yo lo he hechos circuito real como no quiere dar el codigo hex por eso los deje abandonado y me decidi aprender atmel poco a poco por mi mismo. Saludos amigo!!!


----------



## locodelafonola (Sep 14, 2014)

Printpix dijo:


> Buenos dias!! Yo lo he hechos circuito real como no quiere dar el codigo hex por eso los deje abandonado y me decidi aprender atmel poco a poco por mi mismo. Saludos amigo!!!


  pues compañero creo que estas desorientado ...... esto es pic .. no atmel  ( atmega ) .... ¿¿¿¿ y a que te refieres con que no comparten el codigo hex ???? de este montaje esta publicado y es accesible a todos los integrantes del foro .....


----------



## juanc08 (Sep 14, 2014)

talquino2012 dijo:


> Gracias, esto se refiere solo a la simulación verdad.
> 
> Alguien a hecho en fisico estos cambios
> 
> Talquino



hola amigo , yo monte este circuito con el 16f628 y el codigo hex para 20 megas y hasta ahora no logro que arranque , no me funciona , creo que el problema esta en los fuses ala hora de compilar, en proteus funciona, no he hecho practicas con los fuses en c, porque solo manejo proton,


----------



## Printpix (Sep 14, 2014)

locodelafonola dijo:


> pues compañero creo que estas desorientado ...... esto es pic .. no atmel  ( atmega ) .... ¿¿¿¿ y a que te refieres con que no comparten el codigo hex ???? de este montaje esta publicado y es accesible a todos los integrantes del foro .....



Hola! Entonce porque borro mi pregunta el tecniloco si solo estoy pidiendo un favor pues dejame checar bien y te comento apena estoy aprendiendo en atmel ninguno lo se el atmel ni el pic por eso me decidi estudiar. ya armaste y ha funcionado?Saludos!!!


----------



## torres.electronico (Sep 14, 2014)

juanc08 dijo:


> hola amigo , yo monte este circuito con el 16f628 y el codigo hex para 20 megas y hasta ahora no logro que arranque , no me funciona , creo que el problema esta en los fuses ala hora de compilar, en proteus funciona, no he hecho practicas con los fuses en c, porque solo manejo proton,



Con que estas grabando? te fijaste si en software de la grabadora aparecen los fuses bien puestos? intentastes colocarlos manualmente? al final de grabar el micro, te sale correcta la verificacion?... tenes la resistencia del reset puesta? son muchos datos que te faltaron comentar... saludos


----------



## Printpix (Sep 14, 2014)

Hola torres estes aparatito me sirve para baja hex o tengo que ir como comenta el compañero de los fuse?te adjunto las foto.
Saludos!


----------



## locodelafonola (Sep 14, 2014)

Printpix dijo:


> Hola! Entonce porque borro mi pregunta el tecniloco si solo estoy pidiendo un favor pues dejame checar bien y te comento apena estoy aprendiendo en atmel ninguno lo se el atmel ni el pic por eso me decidi estudiar. ya armaste y ha funcionado?Saludos!!!


 aaaaa ver ..por empezar el amigo tecniloco .... no puede borrar nada ... seguro que tu mensaje fue eleiminado por el moderador ... .. y viendo este mensaje ..... es mas que claro que no leiste bien el post ...... y creo que hay demaciadas muestra que esto funciona ... en cuanto aque si lo arme ..bueno noes presisamente este montaje ...yo uso atmega ...y este es para pic ... que son cosas completamente distintas ..... pero funcionar  !!!!!! funciona ¡¡¡¡¡¡¡¡¡¡  .... te recomiendo que estudies un poco mas ....... asi puedes encarar la construccion de el proyecto


----------



## Printpix (Sep 14, 2014)

Muy bien ya veremos y que compilacion estas aprendiendo?


----------



## torres.electronico (Sep 14, 2014)

Printpix dijo:


> Hola torres estes aparatito me sirve para baja hex o tengo que ir como comenta el compañero de los fuse?te adjunto las foto.
> Saludos!



tiene pinta a un clon de un mini pony... para saber si soporta tu dispositivo el pic este, desde el programa de control, tenes que ver si figura en gris o negro oscuro... si aparece en gris clarito, significa que no lo soporta (me paso con williems y ponys viejos)... Ahora, en el supiuesto caso en que tenemos soporte, fijate si en la seccion de fuses, estan marcados / seleccionados... si no estan puestos, se los colocas manualmente


----------



## jucaceledon (Sep 16, 2014)

Printpix dijo:


> Buenos dias!! Yo lo he hechos circuito real como no quiere dar el codigo hex por eso los deje abandonado y me decidi aprender atmel poco a poco por mi mismo. Saludos amigo!!!



Estimado, el hex esta en la carpeta de tecniloco80, pero si aun lo necesitas lo subo, solo dilo


----------



## talquino2012 (Sep 16, 2014)

juanc08 dijo:


> hola amigo , yo monte este circuito con el 16f628 y el codigo hex para 20 megas y hasta ahora no logro que arranque , no me funciona , creo que el problema esta en los fuses ala hora de compilar, en proteus funciona, no he hecho practicas con los fuses en c, porque solo manejo proton,



una consulta, cuales fueron tus modificaciones que realizastes, que error te arroja?

javier



Tecnilo80, una consulta estoy haciendo los cambios para el pic 16f628a, realice los cambios en el ccs, pero analizando el físico me encontré con lo siguiente

pin                       pic 16f716                              pic 16f628a

pin 6                    RB0/INT/ECCPASS2                 RB0/INT
pin 8                    RB2/T1OSI                              RB2/TX/CK
pin 9                    RB3/CCP1/P1A                         RB3/CCP1

Se mantiene el orden de los pines o al cambiar el 716 por el 628a, debo cambiar el pin 8 por el pin 13 (RB7/T1OSI).

Espero agradecido su orientacion  

Javier


----------



## Printpix (Sep 17, 2014)

jucaceledon dijo:


> Estimado, el hex esta en la carpeta de tecniloco80, pero si aun lo necesitas lo subo, solo dilo



Permiteme ver los hex y dejame estudiar en que quedo ahora si empiezo a trabajar.
Saludos!!


----------



## JOSE JAVIER BAEZ (Sep 22, 2014)

juanc08 dijo:


> buena tarde amigo , te consulto en la practica te funciono el codigo hex para el 16f628 o solo en proteus,no logro echarlo a andar



claro,,,,el la practica funciona muy bien, con el ex que te envié tienes que ver por alli puede estar algun problema, a mi me costo pero ya lo logre, saludos





talquino2012 dijo:


> hola amigos, empece a hacer los pcb del amigo tecnilo80 ( que de paso se le agradece todo su ayuda), pero me encontré con el problema que no puedo conseguir el cristal de 19.63, por lo que he leído se puede cambiar el pic por 16f628 y cambiar el cristal por 20 M, alguien lo ha hecho y ha funcionado en practico o hay que hacer otra modificación.
> 
> Espero puedan responder
> 
> Taquino



nuestro amigo tecniloco80 lo explica muy bien, a mi me funciono sin problemas, cambiando el codigo donde dice tecniloco80 con el pic 16f628a. saludos





juanc08 dijo:


> hola amigo , yo monte este circuito con el 16f628 y el codigo hex para 20 megas y hasta ahora no logro que arranque , no me funciona , creo que el problema esta en los fuses ala hora de compilar, en proteus funciona, no he hecho practicas con los fuses en c, porque solo manejo proton,


 
yo hice los cambios que recomienda tecniloco80 y funciona muy bien en la practica con el 16f628a , déjame reviso en estos dias que fue lo que cambien, y lo comparto. saludos





jucaceledon dijo:


> Estimado, el hex esta en la carpeta de tecniloco80, pero si aun lo necesitas lo subo, solo dilo



creo que el amigo se refiere al codigo ex para el 16f628, yo ya lo subi solo revisen bien el foro





talquino2012 dijo:


> una consulta, cuales fueron tus modificaciones que realizastes, que error te arroja?
> 
> javier
> 
> ...



no tuve ningún error, ya paso un tiempo desde que me funciono perfectamente en la practica, tengo que volver a checar mis archivos para ver que cambios fue los que hice . ya lo comentare. ok


----------



## talquino2012 (Sep 22, 2014)

Gracias Jose por responder pero disculpa, lo que desprendo de tus comentarios es que solo cambias en el programa el nombre del pic y el clock, en la pcb no realizas ningun cambio, estoy en lo correcto, espero tus comentarios estoy en la etapa de comenzar las `pruebas.

Javier


----------



## cleocleo (Oct 18, 2014)

Hola a todos!

Muy interesantes todos estos proyectos!
Sabríais decirme cómo lo plantearíais para que la matriz tuviera más de 8 filas? Digamos 16.
Se me ocurre usar un PIC con 8 pines más, pero ¿hay alguna otra forma de, usando ese mismo pic y solo 8 pines de salida para las filas, controlar un total de 16 filas?

Muchas gracias!


----------



## juanc08 (Dic 19, 2014)

JOSE JAVIER BAEZ dijo:


> hola juanc08, este es el ex para remplazar el 16f716 por el 16f628, para el 18f452 tienes que utilizar el ex de tecniloco80... saludos



hola amigo, disculpa que insista pero no logro echar a andar el proyecto , te consulto ala hora de compilar incluyes los fuses o los colocas en el programador, te hago la consulta porque yo programo con con pickit y no me da la opcion de colocar los fuses,
#fuses HS,NOWDT,NOPROTECT,NOPUT,NOBROWNOUT
#use Delay(Clock=16934400) 
y veo que no aparece el reset , igualmente para el 18f452


----------



## D@rkbytes (Dic 20, 2014)

juanc08 dijo:


> ¿A la hora de compilar incluyes los fuses o los colocas en el programador? Te hago la consulta porque yo programo con con pickit y no me da la opción de colocar los fuses.
> #fuses HS,NOWDT,NOPROTECT,NOPUT,NOBROWNOUT
> #use Delay(Clock=16934400)
> Y veo que no aparece el reset, igualmente para el 18f452


Los programas ejecutables *.hex que mencionas ya tienen los fuses incluidos.
No sé cual sea el problema que tienes pero si es por algún problema con los fuses, deberías explicarlo.

Los fuses que tiene el archivo: MATRIZ LED 16F628 JB.hex, son éstos: 

16F628A con PICKit3: 

Los fuses para el archivo _BASE18.hex_, son éstos: 

18F452 con PICKit3: 

No mencionas que versión de PICKit usas, pero las interfaces si permiten la edición de fuses.


----------



## juanc08 (Dic 20, 2014)

D@rkbytes dijo:


> Los programas ejecutables *.hex que mencionas ya tienen los fuses incluidos.
> No sé cual sea el problema que tienes pero si es por algún problema con los fuses, deberías explicarlo.
> 
> Los fuses que tiene el archivo: MATRIZ LED 16F628 JB.hex, son éstos: Ver el archivo adjunto 122417
> ...



hola D@rkbytes, lo delos fuses era una duda, anteriormente me paso y ere el fuse del reset que no lo habia colocado off, cuando conecto el votaje y tecleo alguna letra no sale nada en la matris ,solo le he conectado una matris de 7x8, no se si tenga algo que ver con que no me funcione todavia , pero no paran las ganas de verlo funcionar, seguirebuscando la solucion, la version que uso es 2.61.00 de pickit 2 , y lo de las interfases no lo sabia, mil gracias por tu respuesta,


----------



## JOSE JAVIER BAEZ (Feb 17, 2015)

Hola, juanc08. Disculpa por no responderte, hace ya algún tiempo que no reviso este foro.
¿Me gustaría saber si ya solucionaste tu problema?


----------



## juanc08 (Feb 18, 2015)

JOSE JAVIER BAEZ dijo:


> Hola, juanc08. Disculpa por no responderte, hace ya algún tiempo que no reviso este foro.
> ¿Me gustaría saber si ya solucionaste tu problema?


Gracias por responder, amigo José Javier.
La verdad, no he conseguido que funcione. He revisado varias veces el circuito y nada que arranca.
Al conectarlo al voltaje, simplemente no enciende ningún LED en la matríz.


----------



## tecniloco80 (Feb 23, 2015)

juanc08 dijo:


> no he conseguido que funcione. He revisado varias veces el circuito y nada que arranca.
> Al conectarlo al voltaje, simplemente no enciende ningún LED en la matríz.



Lastima que no le funcione pero no se rinda a veces son fallas muy pequeñas las que causan estos problemas trate de probar el circuito por partes con un cable usb-r232 y el hyperterminal,
retire pic18f y conecte en el pin 26 el pin rx del cable rs232 presione el teclado mire si el 16f628 envía datos al hyperterminal si recibe los datos la falla no seria en el pic16 si no en el pic18


----------



## altander (Feb 24, 2015)

Ola solo tengo una duda, ¿si podría ponerle matices de 8*8 en vez de 7*5?. Y también ¿que comando podría utilizar para detener totalmente todas las letras a la vez?, muy buena aportación de 10.


----------



## JOSE JAVIER BAEZ (Mar 17, 2015)

juanc08 dijo:


> Gracias por responder, amigo José Javier.
> La verdad, no he conseguido que funcione. He revisado varias veces el circuito y nada que arranca.
> Al conectarlo al voltaje, simplemente no enciende ningún LED en la matríz.



No te des por vencido, en cuanto pueda reviso mis apuntes,  a mi tambien a la primera no funciono nada, revise y todo estaba bien,  pero el circuito estaba muerto, empecé a mover todas las conexiones en el proto, y encontre un cable que no estaba haciendo contacto. Yo empecé, la practica solo con un display, cuando ya me funciono este, le agregue el resto.





juanc08 dijo:


> Gracias por responder, amigo José Javier.
> La verdad, no he conseguido que funcione. He revisado varias veces el circuito y nada que arranca.
> Al conectarlo al voltaje, simplemente no enciende ningún LED en la matríz.



Otra cosa que tambien debes tener en cuenta es que la configuracion de bits, al grabar al pic 16f628a no es igual al 16f716.


----------



## juanc08 (Mar 30, 2015)

gracias a todos los del foro por sus aportes en este tema, hoy he logrado echar a andar el circuito, esta a medias pero me con este animo lo acabare rapido cuando este terminado subire fotos nuevamente mil gracias
d@rkbytes , tecniloco80 , jose javier y demas integrantes del grupo


----------



## xavierymiriam (Jul 1, 2016)

juanc08, en verdad pudiste echarlo a funcionar? , yo no lo he logrado ya que el código que me dio el amigo tecniloco no me funciono y me revolví con todos los comentarios que hacían los demás colegas respecto al código de ambos micros  por favor juanc08 compartenos el código que usaste te lo agradeceremos bastaste


----------



## juanc08 (Jul 4, 2016)

xavierymiriam dijo:


> juanc08, en verdad pudiste echarlo a funcionar? , yo no lo he logrado ya que el código que me dio el amigo tecniloco no me funciono y me revolví con todos los comentarios que hacían los demás colegas respecto al código de ambos micros  por favor juanc08 compartenos el código que usaste te lo agradeceremos bastaste


hola amigo  xavierymiriam, de verdad me funciono , lo tuve funcionando en mi van escolar de hecho, los codigos que dan aqui estan bien ,ami de una no me salio pero con la ayuda de todos aqui lo logregiate con los diseños de proteus y todos los datos que estan aqui , segur funciona


----------

