Haberler:

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

Ana Menü

ds18b20 ile termometre devresi

Başlatan picman, 18 Kasım 2006, 22:08:05

picman

arkadaşlar pbp deki owin ve ow out komutlarını anlamak için ds18b20 entegresi ile termometre devresi yapayım dedim programı pbp da yazdım
proteusta çalışıyor. gerçek ortamda çalışırmı bilmiyorum . benim sxorum şu ds18b20 ısı sensörünün data sheet ine baktığınızda scracthpad hafıza alanında count_remain ve count_per_c adında alanlar . pbp nun manual inde bu değerler i kullanarak ısı degeri hesaplanmış ben bu değerlerin tam olarak ne işe yaradığını bilmediğim için ısı hesaplama işlemini biraz farklı yaptım . biraz saçma oldu gibi . acaba bu count_remain ve count_per_c değerlerinin ne işe yaradığını bilen varmı bu değerleri kullanarak sıcaklık değerini nasıl daha basit bir şekilde hasaplarız yardımlarınızı bekliyorum . program kodları aşağıdadır...
saygılarımla herkese kolay gelsin ......

 PROGRAM

TEMPERATURE var word 
BUSY VAR BYTE
Y_TEMPERATURE VAR WORD
ONDALIK VAR BYTE
ISI VAR BYTE
DQ VAR PORTA.0

DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 0
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 1
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2

 TRISB=0
 TRISA=255
   
   PAUSE 100
   LCDOUT $FE,1
     
BASLA: 
     OWOUT DQ,1,[$CC,$44]
BEKLE: 
     OWIN DQ,4,[BUSY]
        IF BUSY = 0 THEN BEKLE
     OWOUT DQ,1,[$CC,$BE]
     OWIN DQ,0,[TEMPERATURE.LOWBYTE,TEMPERATURE.HIGHBYTE]
     ' SICAKLIK HESAPLAMASI YAPILIYOR
     IF TEMPERATURE.HIGHBYTE.7 = 0 THEN 
     ONDALIK = ( $0F & TEMPERATURE.LOWBYTE )
     ONDALIK = (ONDALIK * 666 ) / 1000
     LCDOUT $FE,2,"SICAKLIK: ",DEC(TEMPERATURE */ 1600 ) /100,".",#ONDALIK,"C  "
          ELSE 
     Y_TEMPERATURE = TEMPERATURE
       ONDALIK = ( $0F & TEMPERATURE.LOWBYTE )
     ONDALIK = (10 - (ONDALIK * 666 ) / 1000 ) : IF ONDALIK=10 THEN ONDALIK=0 
     Y_TEMPERATURE.HIGHBYTE = (%00000111 & Y_TEMPERATURE.HIGHBYTE)
     LCDOUT $FE,2,"SICAKLIK: -",DEC((128 - ((Y_TEMPERATURE) */ 1600) / 100)),".",#ONDALIK,"C " 
     ENDIF   
GOTO BASLA


end
Bilgi paylaştıkça artar..

picman

arkadaşlar bu konu ile ilgilenen kimse yok mu ?. neden kimse bi fikir vermiyor
Bilgi paylaştıkça artar..

aslan_korhan

Forumda ararsan DS1820 ile ilgili baya konu var...
Dünyada 10 çeşit insan vardır. Binary bilen ve bilmeyenler.