En que puertos estas conectando los displays? o necesitas multiplexarlo?
En si la parte del cambio la podes hacer de la siguiente forma:
Vas a necesitar un registro para mantener los datos de ambos displays SIN el punto.
Y un registro mas el cual nos va a indicar a cual display le toca. Podemos usar el bit 0 de este registro
- Lees el teclado como SIEMPRE
Al momento de mostrar:
- Pregunto por el registro que me indica cual le toca BTFFS AquienToca,0
-- Si esta en 0 supongamos que el primero hago un GOTO al primero
-- En el primero, busco el numero a escribir en el display en la tabla, y lo muestro
-- Le activo el punto con un BSF del display 1, y desactivo el punto del segundo con un BCF
-- Si estaba en 1 el bit 0 del registro AquienToca,
-- En el segundo, busco el numero a escribir en el display en la tabla, y lo muestro
-- Le activo el punto con un BSF del display 2, y desactivo el punto del display 1 con un BCF
Y eso seria TODO..
Si es necesario multiplexar, mejor encararlo de otra forma.
Y lo ideal seria usar interrupciones con el Timer para que la parte de "mostrar" se encargue solo el Timer. Y en tu programa solo dedicas 2 registros mas para guardar lo que queres mostrar. Que luego la interrupcion sola tomaria los valores y los mostraria.
Es decir necesitas hacer lo mismo que antes, pero en ves de escribir al puerto directo, lo haces en un registro. Luego la interrupcion manejaria los tiempos y la carga a los puertos.