Contador descendente con 16f84a, 74ls47 y dos displays 7 segmentos

hola amigos

primero los felicito por tan buena web que tienen, he leido varios temas ya muy interesantes...

ahora voy a mi problema: debo hacer un contador descendente de 99 a 0 y mostrarlo en dos displays de 7 segmentos. El pic esta conectado a las salidas del PORTB a dos 74ls47 y a esos los display.

en ra0 debo darle el valor (si presiono un pulsador 50 veces, el 50 se mostrara en el display solo si se presiona ra1)

el programa es algo asi:

:
:
test1
btfss PORTA,0
goto test2
incf var1
goto test1
test2
btfss PORTA,1
goto test1
goto comparar
comparar
movf var1,0
sublw .50
btfsc STATUS,2
goto num50
:
:
num50
movlw b'01010000'
movwf PORTB
num49
movlw b'01001001'
movwf PORTB
:
:

Si se entiende el hecho es k debo hacer los 99 numeros... por lo tanto sera mas de 500 lineas de programa.

mi consulta es: hay algun metodo para hacerlo mas corto sin preguntar por cada numero???

cuando lo termine igual lo publicare por si a alguien le sirve.

saludos
 
Si creas una variable llamada contador y cuando esta se incremente en 1 vas a una subrutina donde haces lo siguiente:
movf contador,w
addwf pcl, f
movlw b'codigo 7 seg del 0'
retlw
movlw b'codigo del uno'
retlw
etc etc etc
 
Atrás
Arriba