Alarmlı Saat (16F877 ds1302 2x16lcd)

Başlatan SpeedyX, 30 Mayıs 2007, 14:38:56

SpeedyX

Selamlar,
Geçende bir arkadaşa ödev niyetine ETE hocamın PCF8583'lü çok alarmlı saat kodlarında değişiklik yaparak yaptığım tek alarmlı ds1302 li saat projesi:



alarmli saat pbp.rar - 0.03MB

Alarm Set modunda [255] şeklinde görünen kısım buzzerın alarm sırasında, dakika cinsinden çalışma süresidir. Mod tuşu ile bölümler arasında gezip arttir azalt tuşlarıylada değişiklik yapılabilir. Veriler eepromda saklanır.

SpeedyX

Bir arkadaş ete hocanın projesi için özel mesaj atmış,
Buyrun buda 10 alarmlı saat.
alarm-saat_pbp.rar - 0.02MB

Eğer 10 alarmlı olanı ds1302 ile yapmak istiyorsanız, değiştirilecek rutinler;
'-------------------------------------------------------------------------------
KAYIT:if alrm=0 then
        WHILE set=0
        wend
      else
        if alrm=10 then
            while ALARM=0
            WEND
        endif
      endif
      if alrm=10 then write 200,bztime
      LCDOUT $FE,$0C
      'I2CWRITE SDA,SCL,160,2,[Y_SN,Y_DAK,Y_SAAT,Y_GUN,Y_AY]
      I=Y_SAAT : GOSUB BIN2BCD : Y_SAAT=R
      I=Y_dak  : GOSUB BIN2BCD : Y_DAK=R
      I=sn     : GOSUB BIN2BCD : SN=R
      I=Y_gun  : GOSUB BIN2BCD : Y_GUN=R
      I=Y_ay   : GOSUB BIN2BCD : Y_AY=R
      I=Y_YIL  : GOSUB BIN2BCD : Y_YIL=R
      if alrm=0 then
	    HIGH RST
	        SHIFTOUT DTA,CLK,0,[$BE]
	        SHIFTOUT DTA,CLK,0,[Y_SN,Y_DAK,Y_SAAT,Y_GUN,Y_AY,Y_HGUN,Y_YIL,0]
	    LOW RST
      else
        if alrm=10 then gosub ALARM_KAYIT
      endif
      I=y_SAAT : GOSUB BCD2BIN : y_SAAT=R
      I=y_dak  : GOSUB BCD2BIN : y_DAK=R
      I=sn     : GOSUB BCD2BIN : SN=R
      I=y_gun  : GOSUB BCD2BIN : y_GUN=R
      I=y_ay   : GOSUB BCD2BIN : y_AY=R
      I=y_YIL  : GOSUB BCD2BIN : y_YIL=R
      GOSUB SAAT_OKU
      lcdout $fe,1
      GOTO BASLA
'-------------------------------------------------------------------------------      
SAAT_OKU:
      'I2CREAD SDA,SCL,161,2,[SN,DAK,SAAT,GUN,AY]
	    HIGH RST
	        SHIFTOUT DTA,CLK,0,[$BF]
	        SHIFTIN DTA,CLK,1,[SN,DAK,SAAT,GUN,AY,HGUN,YIL]
	    LOW RST
        I=SAAT : GOSUB BCD2BIN : SAAT=R
        I=dak  : GOSUB BCD2BIN : DAK=R
        I=sn   : GOSUB BCD2BIN : SN=R
        I=gun  : GOSUB BCD2BIN : GUN=R
        I=ay   : GOSUB BCD2BIN : AY=R
        I=YIL  : GOSUB BCD2BIN : YIL=R
      RETURN


Eklenecek rutinler:
BCD2BIN:
    R = ((I >> 4) * 10) + (I & $0F)
Return

BIN2BCD:
    R=0
hx: if I>=10 then
        I=I-10
        R=R+$10
        goto hx
    else
        R=R+I
        goto ex
    endif
ex: Return

avignon

en üstteki Alarmlı saat projesindeki linki yenileyebilirmiyiz.


ergin

verilen kodları elimdeki karta gore değistirdim.batarya olarak 3.6 volt kullandım. ama lcd ekranda 1.satırda  65:65:65   2.satırda 65-65-65
yazıyor. set modunu kullanarak saat ve tarihleri ayarlıyorum fakat verileri ds1302 kabul etmiyor veya almıyor. yani devreyi ne yaptıysam çalıştıramadım . üstadlar lütfen yardım edin... :cry:

16f877 ye 4mhz xtall baglı

DEFINE LCD_DREG PORTB      'LCD data bacakları hangi porta bağlı?
DEFINE LCD_DBIT 0          'LCD data bacakları hangi bitten başlıyor?
DEFINE LCD_EREG PORTD      'LCD Enable Bacağı Hangi Porta bağlı?
DEFINE LCD_EBIT 7          'LCD Enable Bacağı Hangi bite bağlı ?
DEFINE LCD_RSREG PORTD     'LCD RS Bacağı Hangi Porta bağlı ?
DEFINE LCD_RSBIT 6         'LCD RS bacağı Hangi Bite bağlı ?
DEFINE LCD_BITS 4          'LCD 4 bit mi yoksa 8 bit olarak bağlı?
DEFINE LCD_LINES 2         'LCD Kaç sıra yazabiliyor
'------------------------------------------------------------------------------
Define osc 4
ADCON1=7           'ADC GİRİŞLERİ DİGİTAL
OPTION_REG.7=1    'Dahili pull-up lar iptal edildi
PortA=0
TrisA=%00101111
PortB=0
TrisB=%11110010
PORTD=0
TRISD=%11111111
PORTC=0
'TRISC=0
'------------------------------------------------------------------------------
'butonlar
SYMBOL SET=PORTB.7
SYMBOL MODE=PORTB.6
SYMBOL DOWN=PORTB.5
SYMBOL UP=PORTD.5
SYMBOL ALARM=PORTB.4

Symbol BZ=PORTC.3

'seri pinler
Symbol CLK=PORTC.6
SYMBOL DTA=PORTC.7
SYMBOL RST=PORTC.5

teşekkürler.. :)

ergin


M_B

Alıntı yapılan: "ergin"hatayı buldum.çalıştı

hatan neymış ?
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

ergin

deneme bordumda portc lerde 470 ohm ve led vardı.ledleri söktüm ve ds1302 uçlarını 470 seri bağlamıştım.dirençleri kaldırdım.ds1302 ye xt olarak digital kol saatlerinde kullanılanı taktım.codları proton a göre değiştirdim.
ilgin için teşekkürler...

microcode pbp codlarıyla alarm setlerini hafızaya almıyor.yani alarm özelliğini çalıştırmadım.

hatmeto

link silinmiş yenileyebilirmiyiz?
Bir admin ataasözü derki: "biliyorsan paylaş mod yapsınlar. bilmiyorsan sus banlamasınlar"

dijital74

Alıntı yapılan: "hatmeto"link silinmiş yenileyebilirmiyiz?

Ben de katılıyorum. Böyle bir projeye ihtiyacım var.

ilker_32

10 alarmlı saat için indireceğiniz dosyayı buradan indirebilirsiniz.

Diğer projeyi şuan bulamadım ama bulacağım. Bulunca eklerim.

Kolay gelsin.

sevalll

selam linki yenileyebilirmisiniz çok acil kodlara ihtiyacım var
teşekkürler..


sevalll


mc_307

dosyalar silinmiş . verebilecek olan varmı acaba?