DS1302 ve DS18B20 ekran problemi?

Başlatan mierdogan, 30 Aralık 2012, 17:54:02

mierdogan

Merhaba


Saat derece programi yapmaya calisiyorum RTC yi tek kullandigimda sorun yok ama programa 18b20 yi dahil ettigim zaman derece olculuyor fakat saniye atlayarak once 85,00,01,4E,A0 gibi sayiyor onceden ayarladigim degerler ise 01 yada 00 gözüküyor. problem ne olabilir?  Tek calisan rtc ye ısı ekleyince bu hale geliyor. Derecenin yerine normal bir degiskeni saydiriyorum problem olmuyor. Yardimci olabilirmisiniz?

Teşekkürler

Maxim

olamayız
ne şema var, ne kod var ?

mierdogan

Üstadım eve dönünce kodları eklerim şemayı ekleyemem geliştirme kiti üzerinde çalışıyorum ama oradan neyin nereye gittiğini söyleyebilirim

Saygılar

mierdogan

Alıntı yapılan: Maxim - 31 Aralık 2012, 16:07:14
olamayız
ne şema var, ne kod var ?

Üstadım ekranım 20x4 wınstar

Devre üzerinde ise;
DS18B20 Data Portu portb.0 a bağlı
rtc clk sı portb1
rtc data portb2
rtc rst ise portb3 e bağlı


Device =16F877A
Xtal 20
All_Digital TRUE

Declare LCD_DTPin PORTD.4
Declare LCD_ENPin PORTD.0
Declare LCD_RSPin PORTD.1
Declare LCD_Interface 4
Declare LCD_Lines 4



Symbol DAT=PORTB.0
Symbol CLK=PORTB.1
Symbol VERI=PORTB.2
Symbol RST=PORTB.3


Dim X As Word
Dim TEMP As Word
Dim SICAKLIK As Byte
Dim BEKLE As Byte
Dim ISARET As Bit
Dim SANIYE As Byte
Dim DAKIKA As Byte
Dim SAAT As Byte
Dim HAFTA As Byte
Dim GUN As Byte
Dim AY As Byte
Dim YIL As Byte

SANIYE=$30
DAKIKA=$35
SAAT=$22
HAFTA=$6
GUN=$29
AY=$12
YIL=$12
DelayMS 100

RST=1
SHOut VERI,CLK,0,[$BE,SANIYE,DAKIKA,SAAT,GUN,AY,HAFTA,YIL,0]
RST=0
DelayMS 100
BASLA:
     GoSub RTC
     GoSub EKRAN
    ' 1-WIRE ILETISIMI YAPILIYOR
    '*********************************************
    OWrite DAT, 1, [$CC, $44]
    DUR:
        ORead DAT, 4, [BEKLE]
        If BEKLE<>0 Then GoTo DUR
    OWrite DAT, 1, [$CC, $BE]
    ORead  DAT, 2, [TEMP.LowByte, TEMP.HighByte]
    ' ELDE EDILEN HAM VERI ISLENIYOR
    '***********************************************
    If TEMP<=2000 Then
        SICAKLIK=TEMP/16
        ISARET=0
    Else
        SICAKLIK=(65536-TEMP)/16
        ISARET=1
    EndIf
    ' SICAKLIK EKRANA YAZDIRILIYOR
    '******************************************
    
    If ISARET=1
        'Cls
        Print At 1,1,"SICAKLIK"
        Print At 2,1,"-",Dec SICAKLIK," C"
        'DelayMS 500
    Else
        'Cls
        Print At 1,1,"SICAKLIK"
        Print At 2,1,Dec SICAKLIK," C"
        'DelayMS 500
    EndIf
    

    GoTo BASLA
    End
    
RTC:
RST=1
    SHOut VERI,CLK,0,[$BF]
    SHIn VERI,CLK,1,[SANIYE,DAKIKA,SAAT,GUN,AY,HAFTA,YIL]
    RST=0
    
'    Print At 1,1,Hex2 GUN,"/",Hex2 AY,"/",Hex2 YIL
'    Print At 2,1,Hex2 SAAT,":",Hex2 DAKIKA,":",Hex2 SANIYE
    
    If HAFTA=1 Then 
        Print At 3,12,"P.TESI"
    ElseIf HAFTA=2 Then 
        Print At 3,12,"SALI"
    ElseIf HAFTA=3 Then 
        Print At 3,12,"CRS" 
    ElseIf HAFTA=4 Then 
        Print At 3,12,"PRS"
    ElseIf HAFTA=5 Then 
        Print At 3,12,"CUMA"
    ElseIf HAFTA=6 Then 
        Print At 3,12,"C.TESI"
    ElseIf HAFTA=7 Then 
        Print At 3,12,"PAZAR"
    EndIf
    
    DelayMS 300
    Return

EKRAN:
    If ISARET==1 Then    
        Print At 1,1,"SICAKLIK= ","-",Dec SICAKLIK," C"
        Print At 2,1,Hex2 SAAT,":",Hex2 DAKIKA,":",Hex2 SANIYE
        Print At 3,1,Hex2 GUN,"/",Hex2 AY,"/",Hex2 YIL
        Print At 4,1,"   DENEME   "
    Else
        Print At 1,1,"SICAKLIK= ",Dec SICAKLIK," C"
        Print At 2,1,Hex2 SAAT,":",Hex2 DAKIKA,":",Hex2 SANIYE
        Print At 3,1,Hex2 GUN,"/",Hex2 AY,"/",Hex2 YIL
        Print At 4,1,"   DENEME   "
    EndIf
        Return