Code:
digit1 var portd.0
digit2 var portd.1
digit3 var portd.2
digit4 var portd.3
digit5 var portd.4
digit6 var portd.5
cnt var word
digit var byte
pattern var byte
i var word
first var byte
second var byte 
third var byte
fourth var byte
fifth var byte
sixth var byte
seconds var byte
mins var byte
hour var byte
ampm var portb.7


seconds=45
mins=59
hour=11
cnt=0

INTCON=%10100000
OPTION_REG=%00000000
TMR0=6
on interrupt goto isr
INTCON=%10100000  

trisa=0
trisd=0
trisb=0
trisc=1
ampm=1


loopa:
button portc.3,1,255,1,i,0,loopa
if portc.3=1 then
    seconds=seconds+1
    endif
if seconds>59 then
    seconds=0
    mins=mins+1
    endif
if mins>59 then
    mins=0
    hour=hour+1
    endif
if hour>11 then
    hour=1 
    ampm=0
     endif
     goto loopa

disable
isr:TMR0=6
digit=hour dig 1
lookup digit,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],pattern
porta=pattern
digit6=1
pauseus 500
digit6=0

digit=hour dig 0
lookup digit,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],pattern
porta=pattern
digit5=1
pauseus 500
digit5=0

digit=mins dig 1
lookup digit,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],pattern
porta=pattern
digit4=1
pauseus 500
digit4=0

digit=mins dig 0
lookup digit,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],pattern
porta=pattern
digit3=1
pauseus 500
digit3=0

digit=seconds dig 1
lookup digit,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],pattern
porta=pattern 
digit2=1
pauseus 500
digit2=0

digit=seconds dig 0
lookup digit,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],pattern
porta=pattern
digit1=1
 pauseus 500
digit1=0
intcon.2=0
resume 
enable


end