1. Forumumuzda alt yapı değişikliği yapılmıştır. sorun yaşayan üyelerimiz buradan hata bildirimi yapabilirler.

PROTON BASIC ile DS18B20 Geliştirilebilir bir derece programı

Konusu 'Pic Programlama' forumundadır ve has_artvin_li tarafından 30 Nisan 2013 başlatılmıştır.

  1. has_artvin_li
    Çevrimdışı

    has_artvin_li Paylaşımcı üye

    Katılım:
    18 Ocak 2008
    Mesajlar:
    631
    Beğenilen Mesajları:
    140
    Ödül Puanları:
    143
    Meslek:
    Endüstriyel elektronik

    Abilerim ve değerli ustalarım Benim halamın oğlunun kuluçka makinası yapımında kullandığımız bir programdır Derecesi çok güzel çalışmaktadır...

    Ayar yapmak isteğine vs konularda daha da geliştirilebilir biz sabit ayarda kullanmıştık o yüzden burada o ayarların olduğu yeri silip programda sadece ayarların yapılabileceği alanı işaretleyeceğim.

    Bu program aslında başka bir abimiz tarafından pic basic ile yazılmıştı fakat ben bunu proton basic kodlarına çevirdim ve o şekilde kullandım denenmiş çalışan bir programdır.

    Device 16F877A
    Config CP_OFF,DEBUG_OFF,WRT_OFF,CPD_OFF,LVP_OFF,BODEN_OFF,PWRTE_OFF,WDT_OFF,HS_OSC
    Declare XTAL 20
    CCP1_PIN = PORTC.2
    Declare LCD_TYPE 0
    Declare LCD_DTPIN PORTB.4
    Declare LCD_ENPIN PORTB.3
    Declare LCD_RSPIN PORTB.2
    Declare LCD_INTEnjhRFACE 4
    Declare LCD_LINES 4
    DelayMS 500
    Print $fe,1
    Print $FE ,1
    Symbol DQ = PORTD.6 'iletisimin yapilacagi port
    Dim mesgul As Byte
    Dim bilgi As Word
    Dim isaret As Byte
    Dim onda1 As Word
    Dim onda2 As Word
    Dim ara As Word
    Dim deger As Byte
    DelayMS 500
    BASLA: 'Dongüye gir.
    isaret="+"
    OWrite DQ, 1, [$CC, $44] 'sicakligi hesaplamasi icin komut gonderiyor
    BEKLE: 'Sensör hazır olana kadar bekle.
    ORead DQ, 4, [mesgul] ' islem suresince portb.2=0 oluyor 'OWIN SENSOR,4,[mesgul]
    If mesgul=0 Then
    GoTo BEKLE
    EndIf
    DEVAM:
    OWrite DQ, 1, [$CC, $BE] 'sicaklik degerini RAM dan okumasi icin komut gönderiyor
    ORead DQ, 2,[bilgi.LowByte,bilgi.HighByte] 'sicaklik degeri sensörden okunuyor
    If bilgi.13 = 1 Then 'Sıcaklık negatif ise
    isaret="-" 'İşaret artık + değil -
    bilgi=~bilgi 'Gelen bilgideki bitleri tersle, 1->0, 0->1
    bilgi=BILGI+1 'Bilgiyi 1 arttır.
    EndIf
    ara=BILGI*625 '12 bit hassasiyet kullandığımız için her değer 0.0625 santigrat dereceye denk geliyor.
    deger=Div32 10000
    ara=BILGI*625
    onda1= Div32 1000
    ara=BILGI*625
    onda2= Div32 100
    onda1=ONDA1-(DEGER*10)
    onda2=ONDA2-((dEGER*100)+(ONDA1*10))
    Print $fe,1'LCD ekranın alt satırını temizle
    Print At 1,1,"derece ",isaret,#deger,".",#onda1,#onda2,"C"'
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    'BURADA İSTEDİĞİMİZ AYARLARI KOYABİLİRİZ
    'ÖRNEĞİN :
    'İF DEGER>36 THEN
    'LOW PORTD.7
    'ELSE
    'HIGH PORTD.7
    'ENDİF
    'YADA BAŞKA DÖNGÜLER YADA DALLANMALAR KONULABİLİR....
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''BURADAN SONRASINI ELLEMİYORUZ

    DelayMS 30
    GoTo BASLA 'BASLA etiketine dön
    End
    F.T. bunu beğendi.
    Entes
    Entes
Benzer Konular
  1. hackorsan
    Mesaj:
    4
    Görüntüleme:
    2.828
  2. has_artvin_li
    Mesaj:
    2
    Görüntüleme:
    5.008
  3. cobra111
    Mesaj:
    1
    Görüntüleme:
    4.669
  4. colatesi1
    Mesaj:
    1
    Görüntüleme:
    1.591
  5. umutduran
    Mesaj:
    6
    Görüntüleme:
    1.773
Yüklüyor...

Sayfayı Paylaş