Programacion PIC y registros de desplazamiento

Hola a todos!

Bueno, mi proyecto va avanzando, pero me acabo de quedar atascado...

El proyecto se trata de un panel de Matrices LED, y que aparezca un mensaje en movimiento. EL proyecto parecia muchisimo mas sencillo de lo que esperaba, y tras un par de dias buscando informacion, estoy totalmente perdido

Ya se que es mucho pedir, pero me gustaria que me dierais un ejemplo o simplemente una pagina donde explique como hacerlo, porque os digo enserio que estoy atascadisimo y por mucho que busco no encuentro una respuesta a mi medida

Lo que me encantaria, es que con el conexionado que tengo en la foto que adjunto, que programa tendria que hacer para que una letra se desplace.

El asunto es que se hacer la letra fija haciendo un cambio de puertos tan rapido, que aparezca una letra, pero a la hora de conectar con el registro de desplazamiento, ya estoy totalmente perdido...

Que me recomendais? me podriais dar un simple ejemplo de programacion o si tengo algo mal conectado?

Mil gracias!
 

Adjuntos

  • imagen.jpg
    imagen.jpg
    96.6 KB · Visitas: 44
Perdona, en el esquema no soy capaz de ver la referencia de los integrados. ¿Son un PIC16F88 y un 74LS164 ?

¿Y qué referencia tienen los displays?

Hay que ver cómo se manejan los displays para poder ver qué te permiten hacer y cómo hacer el programa. Básicamente, primero tienes que decidir si quieres desplazar la letra entera de un display al otro, o si quieres hacer el desplazamiento "suave", bit a bit (o LED a LED en este caso). También podrían ser saltos de varios LEDs: De 2 en 2, de 3 en 3, etc.

Si lo que quieres hacer es un desplazamiento suave, LED a LED, habrá que ver cómo direccionas cada columna. Pensando en hacer un desplazamiento horizontal, yo haría las conexiones de forma que los bits del puerto del PIC (por ejemplo del puerto B) se correspondan con los bits de la columna. (Cada byte sería vertical, por así decirlo). Así, sólo tienes que mover bytes enteros en tu "memoria gráfica" que habrás dispuesto en la RAM del PIC.

En el caso de haber dispuesto los bytes en horizontal (que cada byte se corresponda con una fila del display) tendrás que rotar los bytes para producir el desplazamiento, utilizando las instrucciones de rotación. Tendrás que utilizar funciones lógicas para "cortar" los trozos que te interesan del byte, y tener en cuenta los desbordamientos para "alimentar" los bits entrantes del siguiente byte... bueno, es bastante más complicado.

Pero nada de esto sirve sin saber cómo funciona lo que tienes. Pon la referencia de los displays y que se vea mejor la del circuito integrado.



Vale, ya entiendo tu circuito. Entonces tú sacas un "1" al registro de desplazamiento 74LS164 y lo vas rotando para direccionar las diferentes columnas, y con cada rotación pones en el puerto B del PIC la columna que corresponde. Bien hecho.

Entonces lo que puedes hacer es, mediante la interrupción de un timer, producir esa rotación y sacar el valor al puerto B. El valor para el puerto B lo sacas de una tabla que habrás creado en la RAM como "memoria gráfica". Cuando esto te funcione, te olvidas de la visualización y sólo tienes que tocar los datos de esa tabla.

Para producir el desplazamiento vuelcas cada byte de la tabla a la posición anterior y ya tienes el scroll.
 
Última edición:
Gracias por la info! De todas formas sigo peleandome para programarlo...

Simplemente quiero que salga una "A", y que se desplace por las dos matrices de Leds, pero nada..

Seguire intentadolo y si no lo consigo, pondre mi programa aqui a ver si a alguien se le ocurre que estoy haciendo mal :)
 
Atrás
Arriba