DS1307

Facebookta Paylas



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 V?tur. Ç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


Facebookta Paylas






Benzer Yazılar

Benzer Yazı Bulunamadı


10293 Görüntüleme.

Yazar : hakki0548

DS1307 Yazısı için Yorum Yapabilirsiniz