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.

[code]

‘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

[/code]


Benzer Yazılar

Benzer Yazı Bulunamadı



Facebookta Paylas