PIC İle RTC Uygulaması

Bu işlemi yapacak program PICBasic Pro dili ile yazıldı. Kod aşağıdaki gibi.
Include "Modedefs.Bas"
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 3
DEFINE LCD_DREG PORTA
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 4
'ADCON1=%00000011 'PORT A ANALOG GİRİŞ OLARAK AYARLANDI...
'A-D parametreleri
DEFINE ADC_BITS 8
DEFINE ADC_CLOCK 3
DEFINE ADC_SAMPLEUS 50
OPTION_REG=0 'PORTB'Yİ DİJİTAL I/O OLARAK KULLANMAK İÇİN
sensor1 var byte
SDA VAR PORTB.7 ' DS1307 SDA pin #5
SCL VAR PORTB.6 ' DS1307 SCL pin #6
DB0 VAR BYTE[7] ' Data byte array
'DB0 VAR BYTE ' Data byte array
'TRISA=%00000000
PORTB=0
TRISB=%00000000
'program başlıyor
lcdout $FE,1,"PROGRAM OK!"
pause 500
lcdout $FE,1
I2CWRITE SDA,SCL,$D0,$00,[$00,$06,$22,$03,$25,$03,$05] ' Write to DS1307
pause 500
LOOP:
GOSUB Read_1307 ' Read & display Time
LCDOUT $FE,1,"SAAT=", HEX DB0[2],":", HEX DB0[1],":",HEX DB0[0]
LCDOUT $FE,$C0,"TARIH=", HEX DB0[4],"/",HEX DB0[5],"/",HEX DB0[6]
GOTO LOOP
Read_1307:
' Read time Secs,Mins,Hours,Day,Date,Month,Year,Control
I2CREAD SDA,SCL,$D0,$00,[STR DB0\7] ' Read 8 bytes from
return
end