I have this. Hope it helps you

Code:
' RTC registers
ControlReg      con     0
SecondsReg      con     2
DayYear         con     5
Month           con     6
TimerReg        con     7
AlarmReg        con     8

Time            var     byte[3]

'================================================================================
' I2C   RTC PCF8583  CODE  using I2C_read and I2C_write routines of compiler
'================================================================================
' RTC registers are defined
' 0       -       Command / Status register
'   .0  timer flag
'   .1  alarm flag
'   .2  alarm enable 1 -  enabled
'   .3  mask flag
'   .54  function 00 clock 32.768KHz/01 clock 50Hz/10 evt counter/11 test
'   .6  hold last count flag
'   .7  stop counting, reset divider
' 1       -       1/10 s | 1/100s
' 2       -       10s    | 1s       seconds
' 3       -       10m    | 1m       minutes
' 4       -       10h    | 1h       hours
'   .3..0 unit hours BCD
'   .54   10s hours 0..2 binary
'   .6    1 PM
'   .7    1 12 hour format
' 5       -       10d    | 1day     Day & Year
'   .3..0 unit days BCD
'   .54   ten days 0..3 binary
'   .76   year 0..3 binary (read 0 if mask)
' 6       -       10mo   | 1month   month
'   .3..0 unit months BCD
'   .4    ten months
'   .7..5 weekdays 0..6 binary (read 0 if masked)
' 
' 0x10 to 0xff  RAM

' If RTC is not running, start it
TimerOff:
    I2CWRITE SDA, SCL, $A2, ControlReg, [0]
    return
    
' Read the time in BCD format
RTC_GetTime:
    I2Cread SDA, SCL, $A2, SecondsReg+0, [Time[2],Time[1],Time[0]]
    return

' Set time in BCD format
RTC_SetTime:
    I2Cwrite  SDA, SCL, $A2, SecondsReg+0, [Time[2],Time[1],Time[0]]
    goto  TimerOff

' ***********************************************************************
'             End of 8583 code
' ***********************************************************************