Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

pcf8583 pbp kodu

Başlatan clusmy, 17 Nisan 2005, 10:56:09

clusmy

slm ustalarım.Ben termometreli dijital saat projemde pcf8583 kullanıyorum.Sıcaklık kodunu yazmama karşın bir türlü,pcf8583 çalıştıramadım.Elinde bu entegreyle ilgili yazılmış pbp kodu bulunan varsa çok sevinirim.Şimdiden teşekkürler...

hasantoptas

Alıntı yapılan: "hasantoptas"

DATATAB   VAR   BYTE
adr1   VAR   BYTE

hours VAR BYTE
minutes VAR BYTE
SECONDS   VAR   BYTE
day   VAR   BYTE
year   VAR   BYTE
mount   VAR   BYTE
week   VAR   BYTE
slave   VAR   BYTE


sda   VAR   PORTA.0
scl   VAR   PORTA.1   'scl pinine 4k7 pullap  direnç bağlamalısın


   SLAVE=%10100010   'eğer pcf8583 un A0 pinini beslemeye bağlarsan <SLAVE=%10100010 >
               'şaseye bağlarsan <SLAVE=%10100000> yazmalısın

basla:


Call rd_saat
Call rd_g_a_y

'BURADA DEĞİŞKENLERİ BİR DİSPLAYE YAZ
'SECONDS,HOURS,MINUTES,YEAR,MOUNT EĞER İSTERSEN WEEK (0 DAN 6 Y KADAR)
GoTo basla


RD_SAAT:

   ADR1=$04
   Call     DATAREAD
   HOURS= (DATATAB & %00001111)+(((DATATAB & %00110000)>>4)*10)

   ADR1=$03
   Call     DATAREAD
   MINUTES=(DATATAB & %00001111)+(((DATATAB & %11110000)>>4)*10)

   ADR1=$02         'SANIYE İÇİN EEPROM ADRESİ
   Call     DATAREAD      'SANIYEYİ OKU
   SECONDS=(DATATAB & %00001111)+(((DATATAB & %11110000)>>4)*10) 'AYRIŞTIR
   Return

RD_G_A_Y:

   ADR1=$05
   Call     DATAREAD
   DAY= (DATATAB & %00001111)+(((DATATAB & %00110000)>>4)*10)
   YEAR=((DATATAB & %11000000)>>6)
   ADR1=$06
   Call     DATAREAD
   MOUNT= (DATATAB & %00001111)+(((DATATAB & %00010000)>>4)*10)
   WEEK= ((DATATAB & %11100000)>>5)
'   ADR1=$C         'ram bölgesi
'   Call     DATAREAD
'   YEAR=YEAR+DATATAB   'kalan yılı buradan al
'   IF YEAR>99 Then YEAR=0
   Return


DATAREAD:
   I2CRead SDA,SCL,SLAVE,ADR1,[DATATAB]
   Pause 2
   Return

DATAWRITE:
   I2CWrite sda,scl,SLAVE,ADR1,[DATATAB]
   Pause 10
   Return

end

kolay gelsin.

clusmy

sağol usta,eline sağlık...