Buenas, yo tengo algo hecho para el ds1302 que es I2C, creo que el 1307 es serial, igual les adjunto alguna parte del codigo para que vean si les sirve...
' Reloj LCD usando el Dallas 1302 RTC
define OSC 4
Include "MODEDEFS.BAS" ' Incluye modos Shiftin/out
'Alias
RST var PORTB.0
IO var PORTB.1
SCLK var PORTB.2
'Variables
rtcyear var byte
rtcday var byte
rtcmonth var byte
rtcdate var byte
rtchr var byte
rtcmin var byte
rtcsec var byte
rtccontrol var byte
Low RST 'Reset RTC
Low SCLK
'Configura tiempo inicial a las 8:00:00AM 07/16/99
rtcyear = $99
rtcday = $06
rtcmonth = $07
rtcdate = $16
rtchr = $22
rtcmin = $45
rtcsec = 0
pause 1000
Gosub SETTIME 'Setea el tiempo
Goto MAINLOOP 'Salteo subrutinas
' Subrutina para escribir el tiempo en el RTC
SETTIME:
RST = 1 'Listo para transferir
'Escritura habilitada
Shiftout IO, SCLK, LSBFIRST, [$8e, 0]
RST = 0 'Reset RTC
RST = 1 'Listo para transferir
'Escribe los 8 registros del RTC ne modo Burst
Shiftout IO, SCLK, LSBFIRST, [$be, rtcsec, rtcmin, rtchr, rtcdate, rtcmonth, rtcday, rtcyear, 0]
RST = 0 'Reset RTC
Return
'Subrutina para leer el timpo del RTC
GETTIME:
RST = 1 'Listo para transferir
Shiftout IO, SCLK, LSBFIRST, [$bf] 'Lee los 8 registros del RTC ne modo Burst
Shiftin IO, SCLK, LSBPRE, [rtcsec, rtcmin, rtchr, rtcdate, rtcmonth, rtcday, rtcyear, rtccontrol]
RST = 0 'Reset RTC
Return
'Programa Principal - Solo actualiza la hora del LCD
MAINLOOP:
Gosub gettime 'Lee la hora en el RTC
'Muestra la hora en el LCD
Lcdout $fe, 1, hex2 rtchr, ":", hex2 rtcmin,":", HEX2 rtcsec
Pause 300 '
Goto mainloop
End
'hex2 rtcmonth, "/", hex2 rtcdate, "/" , hex2 rtcyear,_
'" ",
Cualquier cosa avisenme y veo si encuentro algo mas