Felicitaciones!
Te ha quedado muy bien , yo todavia no puedo con el desplazamiento del texto xD.
Saludos!
bueno te voy a explicar mas o menos espero darme a entender lo hago en c (ccs) pero creo que la teoria seria la misma para asm
1° lo que la matriz debe hacer es un barrido en todas las columnas n columnas (en mi caso es por columnas) yo utilizo un for,
dentro del for va el encendido de las columnas, ya sea con 1 o 0 de acuerdo a tu conexion, tambien dentro de ese mismo for
le doy un valor al puertob que encenderia las filas (seria el dato), para probar le damos el mismo valor de i y tendrias lo que tu mencionas
un mensaje fijo puede que salga al reves o algo asi pero no te preocupes ya lo cmpondremos
2° un segundo for lo utilizo para repetir n veces una misma posicion para el valor del puertob (filas), o sea repetir n veces el for anterior,
3° aqui esta el meollo del asunto, para poder desplazar el mensaje necesitas tener una referencia de donde empezar o terminar,
y utilizo un tercer for que es un contador.... podria llamarlo contador general, entonces, este contador le dara el valor de desplazamiento
a la matriz.
en lenguaje ccs quedaria algo asi:
3er for(cont=0;cont<capacidad de memoria;cont++)
{
dir_de_mem=cont; esto te dara el desplazamiento
2° for(j=0;j<numero de repeticiones por posicion;j++)
{
1er for(i=;i<;i++)
{
porta=i;
portb=origen_de_datos(dir_de_mem--);
retardo(de unos 25 ms);
}
}
}
en resumen: el barrido, el numero de repeticiones por posicion y el desplazamiento.
pues eso es basicamente lo que escribi para lograr mi matriz como vex? el ejemplo pues seria para un demux,
y la eeprom interna del pic, de ahi pues tu lo adaptas a tus necesidades, jeje.
espero haberte ayudado

, claro que si deseas algo con fuentes y demas pues tendrias que esperar a que investige
mas o preguntandole a los demas compas que es lo mas seguro

saludos.

y no te desanimes