Or something like this :
Code:
citeste_RTC:
  I2CREAD SDA,SCL,$d1,$00,[STR DB0\8] ' Read 8 bytes from DS1307

ore     = (db0[2] & $F )+((db0[2]>>4)*10) 'formula de conversie Hex to Dec pentru ore,hour
minute  = (db0[1] & $F )+((db0[1]>>4)*10) 'formula de conversie Hex to Dec pentru minute,minutes
Secunde = (db0[0] & $F )+((db0[0]>>4)*10) 'formula de conversie Hex to Dec pentru secunde,seconds
if secunde = 15 or secunde = 30 or secunde = 45 then  
    gosub afisare_data
    else
    gosub afisare_ceas
endif

Zi      = (db0[4] & $F )+((db0[4]>>4)*10) 'formula de conversie Hex to Dec pentru zile,days
Luna    = (db0[5] & $F )+((db0[5]>>4)*10) 'formula de conversie Hex to Dec pentru luni,months
An      = (db0[6] & $F )+((db0[6]>>4)*10) 'formula de conversie Hex to Dec pentru ani,years

anod1=0
anod2=0
Anod3=0
Anod4=0
anod5=0
anod6=0
goto citeste_rtc


afisare_ceas:         'display clock
Digit=secunde dig 1
gosub convert
PortC=pattern
Anod5=1
pause 1
anod5=0

digit=secunde dig 0
gosub convert
PortC=pattern
Anod6=1
pause 1
anod6=0

Digit=minute dig 1
gosub convert
PortC=pattern
Anod3=1
pause 1
anod3=0

Digit=Minute dig 0
gosub convert
PortC=pattern
Anod4=1
pause 1
anod4=0

digit=ore dig 1
gosub convert
PortC=pattern
Anod1=1
pause 1
anod1=0

digit=ore dig 0
gosub convert
PortC=pattern
Anod2=1
pause 1
anod2=0
return

afisare_data:    'afisare date
Digit=zi dig 1
gosub convert
PortC=pattern
Anod5=1
pause 1
anod5=0

digit=zi dig 0
gosub convert
PortC=pattern
Anod6=1
pause 1
anod6=0

Digit=luna dig 1
gosub convert
PortC=pattern
Anod3=1
pause 1
anod3=0

Digit=luna dig 0
gosub convert
PortC=pattern
Anod4=1
pause 1
anod4=0

digit=an dig 1
gosub convert
PortC=pattern
Anod1=1
pause 1
anod1=0

digit=an dig 0
gosub convert
PortC=pattern
Anod2=1
pause 1
anod2=0
;goto citeste_RTC
return

convert:
lookup digit, [$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],pattern
pattern=pattern^$FF
return

end