Code:
INCR INCF S1,1
MOVF S1,0
BCF STATUS,Z
XORLW .16
BTFSS STATUS,Z
RETURN
CLRF S1
INCF S10,1
MOVF S10,0
BCF STATUS,Z
XORLW .4
BTFSS STATUS,Z
RETURN
CLRF S10
INCR_SM INCF M1,1
MOVF M1,0
BCF STATUS,Z
XORLW .16
BTFSS STATUS,Z
RETURN
CLRF M1
INCF M10,1
MOVF M10,0
BCF STATUS,Z
XORLW .4
BTFSS STATUS,Z
RETURN
CLRF M10
INCR_SH INCF H1
SWAPF H10,0
ADDWF H1,0
BCF STATUS,Z
XORLW 18h
BTFSS STATUS,Z
GOTO $+4
CLRF H1
CLRF H10
RETURN
MOVF H1,0
BCF STATUS,Z
XORLW .16
BTFSS STATUS,Z
RETURN
CLRF H1
INCF H10,1
RETURN
ISR BCF INTCON,GIE
MOVWF WHAT
SWAPF STATUS,0
MOVWF QSTAT
BCF INTCON,T0IF
MOVLW .5
MOVWF TMR0
INCF DEL0,1
MOVF DEL0,0
ANDLW B'01111111'
BCF STATUS,Z
XORLW .125
BTFSS STATUS,Z
GOTO LABLE
BTFSS DEL0,7
GOTO $+.5
CLRF DEL0
CALL INCR
GOTO LABLE
GOTO LABLE
BTFSS DEL0,7
GOTO $+.5
CLRF DEL0
BCF DP ; DECIMAL POINT
CALL INCR
GOTO LABLE
MOVLW .200 ; DECIMAL POINT DELAY SETTING
MOVWF DEL0 ;DECIMAL POINT
BSF DP
LABLE SWAPF QSTAT,0
MOVWF STATUS
SWAPF WHAT,1
SWAPF WHAT,0
BSF INTCON,GIE
RETFIE
KEY BSF OPTION_REG,7
BCF INTCON,GIE
BSF STATUS,RP0
MOVLW B'11101111'
MOVWF TRISB
BCF STATUS,RP0
MOVLW B'00000000'
MOVWF PORTB
CALL DELAY02
; **********************************
SM1 BTFSC PORTB,1 ; SET MINITUS
GOTO SH1
CALL INCR_SM
GOTO KEYX
;***********************************
;***********************************
SH1 CALL DELAY02
BTFSC PORTB,2 ; SET HOUR
GOTO KEYDE
CALL INCR_SH
;***********************************
KEYX BSF STATUS,RP0
CLRF TRISB
BCF STATUS,RP0
MOVLW .100
MOVWF DEL02
CALL SCAN
DECFSZ DEL02,1
GOTO $-.2
BSF INTCON,GIE
BCF OPTION_REG,7
RETURN
KEYDE BSF STATUS,RP0
CLRF TRISB
BCF STATUS,RP0
BSF INTCON,GIE
BCF OPTION_REG,7
RETURN
MAIN CLRF S1
CLRF S10
CLRF M1
CLRF M10
CLRF H1
CLRF H10
CLRF DEL
CLRF DEL0
CLRF DEL01
CLRF DEL02
CLRF WHAT
CLRF QSTAT
BSF STATUS,RP0
CLRF TRISB
CLRF TRISA
MOVLW B'00000011'
MOVWF OPTION_REG
BSF INTCON,T0IE
BSF INTCON,GIE
BCF STATUS,RP0
CALL SCAN
CALL KEY
GOTO $-.2
INCR INCF S1,1
MOVF S1,0
BCF STATUS,Z
XORLW .16
BTFSS STATUS,Z
RETURN
CLRF S1
INCF S10,1
MOVF S10,0
BCF STATUS,Z
XORLW .4
BTFSS STATUS,Z
RETURN
CLRF S10
INCR_SM INCF M1,1
MOVF M1,0
BCF STATUS,Z
XORLW .16
BTFSS STATUS,Z
RETURN
CLRF M1
INCF M10,1
MOVF M10,0
BCF STATUS,Z
XORLW .4
BTFSS STATUS,Z
RETURN
CLRF M10
INCR_SH INCF H1
SWAPF H10,0
ADDWF H1,0
BCF STATUS,Z
XORLW 18h
BTFSS STATUS,Z
GOTO $+4
CLRF H1
CLRF H10
RETURN
MOVF H1,0
BCF STATUS,Z
XORLW .16
BTFSS STATUS,Z
RETURN
CLRF H1
INCF H10,1
RETURN
ISR BCF INTCON,GIE
MOVWF WHAT
SWAPF STATUS,0
MOVWF QSTAT
BCF INTCON,T0IF
MOVLW .5
MOVWF TMR0
INCF DEL0,1
MOVF DEL0,0
ANDLW B'01111111'
BCF STATUS,Z
XORLW .125
BTFSS STATUS,Z
GOTO LABLE
BTFSS DEL0,7
GOTO $+.5
CLRF DEL0
CALL INCR
GOTO LABLE
GOTO LABLE
BTFSS DEL0,7
GOTO $+.5
CLRF DEL0
BCF DP ; DECIMAL POINT
CALL INCR
GOTO LABLE
MOVLW .200 ; DECIMAL POINT DELAY SETTING
MOVWF DEL0 ;DECIMAL POINT
BSF DP
LABLE SWAPF QSTAT,0
MOVWF STATUS
SWAPF WHAT,1
SWAPF WHAT,0
BSF INTCON,GIE
RETFIE
KEY BSF OPTION_REG,7
BCF INTCON,GIE
BSF STATUS,RP0
MOVLW B'11101111'
MOVWF TRISB
BCF STATUS,RP0
MOVLW B'00000000'
MOVWF PORTB
CALL DELAY02
; **********************************
SM1 BTFSC PORTB,1 ; SET MINITUS
GOTO SH1
CALL INCR_SM
GOTO KEYX
;***********************************
;***********************************
SH1 CALL DELAY02
BTFSC PORTB,2 ; SET HOUR
GOTO KEYDE
CALL INCR_SH
;***********************************
KEYX BSF STATUS,RP0
CLRF TRISB
BCF STATUS,RP0
MOVLW .100
MOVWF DEL02
CALL SCAN
DECFSZ DEL02,1
GOTO $-.2
BSF INTCON,GIE
BCF OPTION_REG,7
RETURN
KEYDE BSF STATUS,RP0
CLRF TRISB
BCF STATUS,RP0
BSF INTCON,GIE
BCF OPTION_REG,7
RETURN
MAIN CLRF S1
CLRF S10
CLRF M1
CLRF M10
CLRF H1
CLRF H10
CLRF DEL
CLRF DEL0
CLRF DEL01
CLRF DEL02
CLRF WHAT
CLRF QSTAT
BSF STATUS,RP0
CLRF TRISB
CLRF TRISA
MOVLW B'00000011'
MOVWF OPTION_REG
BSF INTCON,T0IE
BSF INTCON,GIE
BCF STATUS,RP0
CALL SCAN
CALL KEY
GOTO $-.2