16x2 LCD ile Dijital Saat Uygulaması yapıyorum.Fakat saat çok kararsız çalışıyor ve hep geri kalıyor.Bu yüzden RTC kullanmam gerektiğini öğrendim.C.tesi öğleden sonra koşa koşa dükkanlar kapanmadan DS1302 ve 32.768KHz osilatör almaya gittim.32.768KHz buldum ama DS1302 bulamadım.Onun yerine DS1307 buldum ve aldım.Şimdi sorularım ?
1 - DS1302 yerine DS1307 kullansam olur mu?
2 - 1.Sorumun cevabı " Evet " ise DS1307'yi devreme nasıl adapte edebilirim? " Hayır " ise DS1302'yi devreme nasıl adapte edebilirim? (Bağlantıları Gösterirmisiniz?)
3 - Bu entegreleri kullandığımda LCD saat devremin programında bir değişiklik yapmam söz konusu olabilir mi? "Evet" ise Nasıl ?
'*****LCD TANIMLAMALARI***** DEFINE LCD_DREG PORTB 'LCD DATA BACAKLARI PORTB'YE BAGLI DEFINE LCD_DBIT 4 'LCD DATA BITLERI HANGİ BITTEN BASLIYOR DEFINE LCD_EREG PORTB 'LCD ENABLE BACAGI HANGI PORTA BAGLI DEFINE LCD_EBIT 3 'LCD ENABLE BITI HANGI PORTA BAGLI DEFINE LCD_RSREG PORTB 'LCD RS BACAGI HANGI PORTA BAGLI DEFINE LCD_RSBIT 2 'LCD RS BACAGI HANGI BITE BAGLI DEFINE LCD_BITS 4 'LCD 4 BIT BAGLI DEFINE LCD_LINES 2 'LCD KAC SIRADAN OLUSUYOR
'*****DEĞİŞKENLERİ TANIMLA***** SAAT VAR BYTE DSAAT VAR BYTE 'DECİMAL SAAT DEĞİŞKENİ DAKIKA VAR BYTE SANIYE VAR BYTE TICKS VAR BYTE 'TMRO İNTERRUPT DEĞİŞKENİ UPDATE VAR BYTE 'LCD GUNCELLEME DEĞİŞKENİ I VAR BYTE 'FOR NEXT DÖNGÜSÜ BUTON ARKINI ORTADAN KALDIRAN DEĞİŞKEN
'DEĞİŞKENLERİ SIFIRLA
SAAT=0 DAKIKA=0 SANIYE=0 TICKS=0 UPDATE=1
'*****KESME İŞLEMLERİ***** OPTION_REG=%00000101 '1/64 BÖLME ORANI INTCON=$A0 'TMRO VE TÜM KESMELER AKTİF ON INTERRUPT GOTO KESME 'KESME OLUŞTUĞUNDA BU ADRESE GİT
'BUTONLAR ANA_DONGU: IF PORTA.0=0 THEN DAK_ART IF PORTA.1=0 THEN DAK_AZALT if PORTA.2=0 THEN SAAT_ART IF PORTA.3=0 THEN SAAT_AZALT KONTROL:
IF UPDATE=1 THEN 'UPDATE=1 İSE ALT SATIRA İN LCDOUT $FE,1 'LCD İÇERİĞNİ TEMİZLE DSAAT=SAAT 'DECİMAL SAATİ=SAAT İLE EŞİTLE IF (SAAT//12)=0 THEN DSAAT=DSAAT+12 ENDIF IF SAAT < 12 THEN 'SAAT 12'DEN KÜÇÜKSE LCDOUT $FE,$83, DEC2 DSAAT,":",DEC2 DAKIKA,":",DEC2 SANIYE," AM " ELSE LCDOUT $FE,$83, DEC2(DSAAT-12),":",DEC2 DAKIKA,":",DEC2 SANIYE," PM " ENDIF UPDATE=0 ENDIF GOTO ANA_DONGU
'DAKİKA VE SAAT ARTTIRMA İŞLEMLERİ DAK_ART: DAKIKA=DAKIKA+1 IF DAKIKA=60 THEN DAKIKA=0 ENDIF GOTO ARK_SONDUR
SAAT_ART: saat=saat+1 if saat=24 then saat=0 ENDIF GOTO ARK_SONDUR
DAK_AZALT: DAKIKA=DAKIKA-1 IF DAKIKA=59 THEN DAKIKA=0 ENDIF GOTO ARK_SONDUR
SAAT_AZALT: saat=saat-1 if saat=23 then saat=0 GOTO ARK_SONDUR
'BUTON ARKINI SÖNDÜRMEK İÇİN GEREKLİ FOR NEXT DÖNGÜSÜ ARK_SONDUR: FOR I=1 TO 25 PAUSE 10 NEXT I UPDATE=1 GOTO KONTROL
'KESME OLUŞUNCA BURADA YAPILAN İŞLER DISABLE KESME: TICKS=TICKS+1 IF TICKS < 61 THEN DEVAM TICKS=0
SANIYE = SANIYE + 1 'SAN‹YELER 60 OLURSA DAK‹KAYI ARTIR IF SANIYE >= 60 THEN SANIYE = 0 DAKIKA = DAKIKA + 1 IF DAKIKA >= 61 THEN 'DAK‹KALAR 60 OLURSA SAAT‹ ARTIR DAKIKA = 0 SAAT = SAAT + 1 IF SAAT >=24 THEN SAAT = 0 ENDIF ENDIF UPDATE = 1 'GÜNCELLEME TAMAMLANDI DEVAM: INTCON.2 = 0 'KESME BAYRA/INI TEM‹ZLE RESUME END
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
Eski devreni unut. DS1302 (veya 7) 1-wire iletişim protokolünü kullanır ve datayı bu protokolü kullanarak önce bir kereliğine set etmeli, ondan sonra zaman zaman okumalısın.
16x2 LCD ile Dijital Saat Uygulaması yapıyorum.Fakat saat çok kararsız çalışıyor ve hep geri kalıyor.Bu yüzden RTC kullanmam gerektiğini öğrendim.C.tesi öğleden sonra koşa koşa dükkanlar kapanmadan DS1302 ve 32.768KHz osilatör almaya gittim.32.768KHz buldum ama DS1302 bulamadım.Onun yerine DS1307 buldum ve aldım.Şimdi sorularım ?
1 - DS1302 yerine DS1307 kullansam olur mu?
2 - 1.Sorumun cevabı " Evet " ise DS1307'yi devreme nasıl adapte edebilirim? " Hayır " ise DS1302'yi devreme nasıl adapte edebilirim? (Bağlantıları Gösterirmisiniz?)
3 - Bu entegreleri kullandığımda LCD saat devremin programında bir değişiklik yapmam söz konusu olabilir mi? "Evet" ise Nasıl ?
***Devre Şeması ve Program***
< Resime gitmek için tıklayın >
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.