DS1307, I2C protokolüne göre çalışan gerçek zaman üretmek için kullanılan ve seri bilgi alışverişi yapan bir entegredir. Çalışma gerilimi 5 Volttur. Çalışması için bğlanması gereken iki önemli bileşeni vardır bunlardan biri 3.2 voltluk pil (bios pili olarakta bilinir) ve 32.768 Khz kristaldir. Enerji kesildiğinde enerjisini bu pilden karşılar. Bu pilin takılması kesinlikle zorunludur yoksa entegremiz düzgün çalışamaz.
Tavsiyemiz DS1307’yi direkt lehimlememeniz çünkü havya ısısı çok kolay bir şekilde entegreye zarar verebiliyor, bunun yerine önce 8 ayaklı bir entegre soketi lehimledikten sonra bu entegreyi sokete takın, bu entegreyi değiştirmeniz gerektiğinde de size kolaylık sağlayacaktır.
Devre bağlantı şeması şöyledir.
DS1307?nin bacak bağantı şekli ise şöyledir.Pic ile DS1307 yi kullanırken komutlarınıza direkt cevap vermez önce DS1307 ye bir başlangıç saati atamanız gerekli ancak ondan sonra saat, atadığınız tarihten ve saatten başlayarak gerçek zamanlı saat ve tarih üretmeye başlar.Pic Basic pro saati yazmak ve okumak için şöyle bir kombinasyon oluşturulabilir.
'Başlangıç komutları TEMP VAR BYTE saat var byte ?değişken tanımları dak var byte sn var byte BOS var byte GUN VAR BYTE AY VAR BYTE YIL VAR BYTE HAFGUN VAR BYTE SN=55: DAK=25: SAAT=16 :GUN=8 :AY=9 : YIL=10 :GOSUB YAZ 'Üstteki satırı yalnızca DS1307 yi ilk kez kullanacağınız zaman 'aktif edin ilkten sonra hafızaya kaydedildiği için bir daha 'gerek duyulmaz Basla: 'Ana program GOSUB OKU Gosub saatgöstermeprogramı ?segment için GOTO BASLA YAZ: temp=(sn DIG 1) <<4+sn dig 0 : sn=temp temp=(dak DIG 1) <<4+dak dig 0 : dak=temp temp=(saat DIG 1) <<4+saat dig 0 : saat=temp temp=(gun DIG 1) <<4+gun dig 0 : gun=temp temp=(ay DIG 1) <<4+ay dig 0 : ay =temp temp=(yil DIG 1) <<4+yil dig 0 : yil=temp I2CWRITE SDA,SCL,$D0,$00,[sn,dak,saat,hafgun,gun,ay,yil,TEMP] RETURN OKU: I2CREAD SDA,SCL,$D1,$00,[sn,dak,saat,hafgun,gun,ay,yil,TEM] BOS=((DAK>>4) & $0F)*10+(DAK & $0F):DAK=BOS :C= DAK DIG 1:D= DAK DIG 0 BOS=((SAAT>>4) & $0F)*10+(Saat & $0F):SAAT=BOS:E= SAAT DIG 1:F= SAAT DIG 0 BOS=((HAFgun>>4) & $0F)*10+(HAFgun & $0F):HAFgun=BOS:G= HAFgun DIG 1:H= HAFgun DIG 0 BOS=((gun>>4) & $0F)*10+(gun & $0F):gun=BOS:I= gun DIG 1:K= gun DIG 0 BOS=((AY>>4) & $0F)*10+(AY & $0F) :AY=BOS :L= AY DIG 1:M= AY DIG 0 BOS=((yil>>4) & $0F)*10+(yil & $0F):yil=BOS :N= yil DIG 1:P= yil DIG 0 RETURN