Estoy haciendo funcionar un ds1307 en proteus, el codigo que estoy usando es este
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTA
DEFINE LCD_RSBIT 0
DEFINE LCD_EREG PORTA
DEFINE LCD_EBIT 2
DEFINE LCD_LINES 2
define OSC 4
Pause 500
SCLpin Var Porta.3 ;pin señal de reloj I2C
SDApin Var Porta.4 ;pin de datos I2C
SetSec var byte ' Seconds
SetMin var byte ' Minutes
SetHour var byte ' Hours
SetWDay var byte ' Weekday
SetDay var byte ' Day
SetMonth var byte ' Months
SetYear var byte ' Year
SetCtrl var byte ' Control
RTCTime var byte ' 12/24 Hour Clock
RTCSec var byte ' Seconds
RTCMin var byte ' Minutes
RTCHour var byte ' Hours
RTCDay var byte ' Day
RTCMonth var byte ' Months
RTCYear var byte ' Year
RTCWDay var byte
SetSec=$00 ' Seconds preset to 00
SetMin=$15 ' Minutes preset to 15
SetHour=$13 ' Hours preset to 13'00
SetWDay=$01 ' Weekday preset to 01
SetDay=$12 ' Day preset 12
SetMonth=$06 ' Months preset to June
SetYear=$06 ' Year preset to 2002
SetCtrl=$10 ' Control preset to output 1 second 'Tick' on SQWpin
I2CWrite SDApin,SCLpin,$D0,$00,[SetSec,SetMin,SetHour,SetWDay,SetDay,SetMonth,SetYear,SetCtrl]
Leer_Hora:
I2Cread SDApin,SCLpin,$D0,$00,[RTCSec,RTCMin,RTCHour,RTCWDay,RTCDay,RTCMonth,RTCYear]
lcdout $FE,1, #RTCHour,":",#RTCMin,":",#RTCSec
pause 100
GOTO Leer_Hora
END
lo que pasa es que en los segundos va mostrando
1
2
3
4
5
6
7
8
9
16
en lso minutos en vez de 15 sale 21 y en las horas en vez de 13 sale 19
que estara mal''''
saludos!