Aca dejo el programa para ver si se entiende mas facil. gracias
#INCLUDE <P16F877A.inc>
LIST P=16F877A
RT1 EQU 20H
VALOR1 EQU 21H
VALOR2 EQU 22H
VALOR3 EQU 23H
VALOR4 EQU 24H
CONT3 EQU 25H
CONT4 EQU 26H
CONT5 EQU 27H
CONT6 EQU 28H
RT2 EQU 29H
HORA1 EQU 2AH
HORA2 EQU 2BH
RT3 EQU 2CH
BANDERA EQU 2DH
BANDERA1 EQU 2EH
RT4 EQU 2FH
ALAR1 EQU 30H
ALAR2 EQU 31H
ALAR3 EQU 32H
ALAR4 EQU 33H
BANDERA3 EQU 34H
BANDERA4 EQU 35H
CON1 EQU 36H
CON2 EQU 37H
CON3 EQU 38H
CON4 EQU 39H
VUELTA EQU 3AH
BAND2 EQU 3BH
ORG 0x00
CLRF STATUS
CLRF PORTB
BSF STATUS,.5
CLRF TRISB
CLRF STATUS
CLRF PORTB
BSF STATUS,.5
CLRF TRISC
;BCF OPTION_REG,.7
CLRF STATUS
BSF STATUS,.5
MOVLW .247
MOVWF TRISD
;BCF OPTION_REG,.7
CLRF STATUS
MOVLW .0 ;CARGA W CON 7.
MOVWF VALOR1 ;LLEVA 7 A VALOR 2.
MOVLW .0 ;CARGA W CON 5.
MOVWF VALOR2 ;LLEVA 5 A VALOR 1.
MOVLW .0 ;CARGA W CON 7.
MOVWF VALOR3 ;LLEVA 7 A VALOR 2.
MOVLW .0 ;CARGA W CON 5.
MOVWF VALOR4 ;LLEVA 5 A VALOR 1.
MOVLW .10 ;CARGA W CON 7.
MOVWF HORA1 ;LLEVA 7 A VALOR 2.
MOVLW .4 ;CARGA W CON 5.
MOVWF HORA2 ;LLEVA 5 A VALOR 1.
MOVLW .20
MOVWF BANDERA
MOVLW .2
MOVWF BANDERA1
MOVLW .1
MOVWF VUELTA
BCF PORTD,.3
GOTO RETARDO1
;************************************************************************************************
RESET MOVLW .20
MOVWF BANDERA
MOVLW .2
MOVWF BANDERA1
MOVLW .0
MOVWF VALOR3
MOVLW .0
MOVWF VALOR4
GOTO RETARDO1
;***********************************************************************************************
HD1 MOVLW .0
MOVWF VALOR3
MOVLW .1
MOVWF VALOR4
GOTO RETARDO1
HD2 MOVLW .2
MOVWF VALOR4
MOVLW .1
MOVWF BANDERA
INCF VALOR3,F
DECFSZ BANDERA1,F
GOTO H
GOTO C1
H MOVLW .0
MOVWF VALOR3
C1 MOVLW .1
MOVWF BANDERA1
MOVLW .4
XORWF VALOR3,W
BTFSC STATUS,2
GOTO RESET
GOTO RETARDO1
;********************* VA A TABLA POR LA UNIDAD DE LAS HORAS ************************************
HU MOVLW .0
MOVWF VALOR2
HU3 DECFSZ BANDERA,F
GOTO HU1
GOTO HD2
HU1 INCF VALOR3,F
MOVLW .10
XORWF VALOR3,W
BTFSC STATUS,2
GOTO HD1
GOTO RETARDO1
;********************* VA A TABLA POR LA DECENA DE LOS MINUTOS ************************************
MD MOVLW .0
MOVWF VALOR1
INCF VALOR2,F
MOVLW .6 ;COMPARA CONTADOR CON 10
XORWF VALOR2,W
BTFSC STATUS,2
GOTO HU
GOTO RETARDO1
;*********************** VA A TABLA POR LA UNIDAD DE LOS MINUTOS*************************************
MU INCF VALOR1,F
MOVLW .10 ;COMPARA CONTADOR CON 10
XORWF VALOR1,W
BTFSC STATUS,2
GOTO MD
GOTO RETARDO1
RETARDO1 ;BTFSS PORTD,.5
;GOTO V2
;GOTO VALAR
V2 BTFSS PORTD,.2
GOTO V3
GOTO PALAR
V3 BTFSS PORTD,.0
GOTO V4
GOTO PMIN
V4 BTFSS PORTD,.1
GOTO V5
GOTO PHORA
V5 MOVLW .1
XORWF BAND2,W
BTFSS STATUS,2
GOTO LOOP5T
MOVF CON1,W
MOVWF VALOR1
MOVF CON2,W
MOVWF VALOR2
MOVF CON3,W
MOVWF VALOR3
MOVF CON4,W
MOVWF VALOR4
MOVLW .1
MOVWF VUELTA
MOVLW .2
MOVWF BAND2
GOTO LOOP5T
LOOP5T ;MOVLW 10
;MOVWF CONT4
MOVLW .188
MOVWF CONT5
;LOOP1T
BCF PORTD,.3
MOVLW .240
MOVWF CONT6
LOOP1 MOVF VALOR1,W ;LLEVA VALOR 1 A W.
CALL TABLA
MOVWF PORTB ;LLEVA EL VALOR 7 SEG AL PUERTO B.
NOP
NOP
BCF PORTC,.3
NOP
NOP
BCF PORTC,.1
NOP
NOP
BCF PORTC,.2
NOP
NOP
BSF PORTC,.0
NOP
NOP
CALL RETARDO
MOVF VALOR2,W
CALL TABLA1
MOVWF PORTB ;SACA AL PUERTO B EL VALOR 2.
NOP
NOP
BCF PORTC,.0
NOP
NOP
BCF PORTC,.2
NOP
NOP
BCF PORTC,.3
NOP
NOP
BSF PORTC,.1
NOP
NOP
CALL RETARDO
MOVF VALOR3,W ;LLEVA VALOR 2 A W.
CALL TABLA1
MOVWF PORTB ;SACA AL PUERTO B EL VALOR 2.
NOP
NOP
BCF PORTC,.0
NOP
NOP
BCF PORTC,.1
NOP
NOP
BCF PORTC,.3
NOP
NOP
BSF PORTC,.2
NOP
NOP
CALL RETARDO
MOVF VALOR4,W ;LLEVA VALOR 2 A W.
CALL TABLA
MOVWF PORTB ;SACA AL PUERTO B EL VALOR 2.
NOP
NOP
BCF PORTC,.0
NOP
NOP
BCF PORTC,.1
NOP
NOP
BCF PORTC,.2
NOP
NOP
BSF PORTC,.3
NOP
NOP
CALL RETARDO
BTFSS PORTD,.4
GOTO AL4
MOVF VALOR1,W ;COMPARA CONTADOR CON 10
XORWF ALAR1,W
BTFSC STATUS,2
GOTO ALA1
GOTO AL4
ALA1 MOVF VALOR2,W ;COMPARA CONTADOR CON 10
XORWF ALAR2,W
BTFSC STATUS,2
GOTO ALA2
GOTO AL4
ALA2 MOVF VALOR3,W ;COMPARA CONTADOR CON 10
XORWF ALAR3,W
BTFSC STATUS,2
GOTO ALA3
GOTO AL4
ALA3 MOVF VALOR4,W ;COMPARA CONTADOR CON 10
XORWF ALAR4,W
BTFSC STATUS,2
BSF PORTD,.3
GOTO AL4
AL4
DECFSZ CONT6,F
GOTO LOOP1
BTFSS PORTD,.5
GOTO V6
GOTO VALAR
V6 BTFSS PORTD,.0
GOTO V7
GOTO MU
V7 BTFSS PORTD,.1
GOTO V8
GOTO HU3
V8 BTFSS PORTD,.2
GOTO V9
GOTO PALAR
V9 DECFSZ CONT5,F
GOTO LOOP1
;DECFSZ CONT4,F
;GOTO LOOP1
GOTO MU
TABLA ADDWF PCL,F ; PCL + W
RETLW B'00111111' ; CODIGO PARA EL 0
RETLW B'00000110' ; CODIGO PARA EL 1
RETLW B'01011011' ; CODIGO PARA EL 2
RETLW B'01001111' ; CODIGO PARA EL 3
RETLW B'01100110' ; CODIGO PARA EL 4
RETLW B'01101101' ; CODIGO PARA EL 5
RETLW B'01111100' ; CODIGO PARA EL 6
RETLW B'00000111' ; CODIGO PARA EL 7
RETLW B'01111111' ; CODIGO PARA EL 8
RETLW B'01100111' ; CODIGO PARA EL 9
TABLA1 ADDWF PCL,F ; PCL + W
RETLW B'10111111' ; CODIGO PARA EL 0
RETLW B'10000110' ; CODIGO PARA EL 1
RETLW B'11011011' ; CODIGO PARA EL 2
RETLW B'11001111' ; CODIGO PARA EL 3
RETLW B'11100110' ; CODIGO PARA EL 4
RETLW B'11101101' ; CODIGO PARA EL 5
RETLW B'11111100' ; CODIGO PARA EL 6
RETLW B'10000111' ; CODIGO PARA EL 7
RETLW B'11111111' ; CODIGO PARA EL 8
RETLW B'11100111' ; CODIGO PARA EL 9
RETARDO MOVLW .255 ;RETARDO DE 1 mS APROX.
MOVWF RT1
MOVLW .255 ;RETARDO DE 1 mS APROX.
MOVWF RT2
LOOP2 DECFSZ RT1,F
GOTO LOOP2
REP DECFSZ RT2,F
GOTO REP
RETURN
;********************* PUESTA EN HORA MIN ************************************************************************
PMIN CALL RETARDO
BTFSS PORTD,.0
GOTO RETARDO1
GOTO LOOP1
;******************** PUESTA EN HORA HORA*************************************************************************
PHORA CALL RETARDO
BTFSS PORTD,.1
GOTO RETARDO1
GOTO LOOP1
;******************** PUESTA EN HORA ALARMA*************************************************************************
PALAR ;CALL RETARDO
;BTFSS PORTD,.2
;GOTO RETARDO1
MOVLW .1
XORWF VUELTA,W
BTFSS STATUS,2
GOTO CI1
MOVF VALOR1,W
MOVWF CON1
MOVF VALOR2,W
MOVWF CON2
MOVF VALOR3,W
MOVWF CON3
MOVF VALOR4,W
MOVWF CON4
MOVLW .1
MOVWF CONT5
MOVLW .1
MOVWF CONT4
CI1 MOVF VALOR1,W
MOVWF ALAR1
MOVF VALOR2,W
MOVWF ALAR2
MOVF VALOR3,W
MOVWF ALAR3
MOVF VALOR4,W
MOVWF ALAR4
MOVLW .2
MOVWF VUELTA
MOVLW .1
MOVWF BAND2
MOVLW .1
MOVWF CONT5
MOVLW .1
MOVWF CONT4
GOTO LOOP1
;****************** VER HORA ALARM ************************************************************************
VALAR ;BTFSS PORTD,.5
;GOTO LOOP1
MOVLW .1
XORWF VUELTA,W
BTFSS STATUS,2
GOTO CI2
MOVF VALOR1,W
MOVWF CON1
MOVF VALOR2,W
MOVWF CON2
MOVF VALOR3,W
MOVWF CON3
MOVF VALOR4,W
MOVWF CON4
MOVLW .1
MOVWF CONT5
MOVLW .1
MOVWF CONT4
CI2 MOVLW .1
MOVWF CONT5
MOVLW .1
MOVWF CONT4
MOVF ALAR1,W
MOVWF VALOR1
MOVF ALAR2,W
MOVWF VALOR2
MOVF ALAR3,W
MOVWF VALOR3
MOVF ALAR4,W
MOVWF VALOR4
MOVLW .1
MOVWF BAND2
MOVLW .2
MOVWF VUELTA
GOTO LOOP1
END