Aqui tienes uno, pero solo UP, la parte DOWN se la puedes hacer tu, en el bucle donde incrementa va comparando con 10 y al llegar aumenta el siguiente, para DOWN comparas con 0 y decrementas el siguiente, el bucle del multiplexado te vale como esta.
Este aparte que funciona, esta bien estructurado, optimizado y es muy facil de entender.
Si lo pones en el MPLAB y lo simulas lo entenderas perfectamente.
El otro no te funciona? desabilitale el WDT, vas a configure, configure bits, y ahi te salen los 4 FUSES del 16f84, ponlo en OFF, y prueba.