Şimdi Ara

16F628 ile LCD TERMO TİMER İÇİN YARDIM

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
2
Cevap
0
Favori
562
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Selam arkadaşlar programlamada fazla bilgim yok ama kendi çapımda bir şeyler yapmaya çalıştım.
    Fakat hesaplama kısmını beceremedim.Birde sıralamada yanlışlık varmı?
    Yardımcı olacak arkadaşlara şimdiden teşekkürler.

    '****************************************************************
    '* Name : TERMO_TİMER.BAS *
    '* Author : [select VIEW...EDITOR OPTIONS] *
    '* Notice : Copyright (c) 2012 [select VIEW...EDITOR OPTIONS] *
    '* : All Rights Reserved *
    '* Date : 15.05.2012 *
    '* Version : 1.0 *
    '* Notes : *
    '* : *
    '****************************************************************
    @ DEVICE pic16f628, WDT_OFF
    @ DEVICE pic16f628, PWRT_OFF
    @ DEVICE pic16f628, BOD_OFF
    @ DEVICE pic16f628, LVP_OFF
    @ DEVICE pic16F628, PROTECT_OFF
    @ DEVICE pic16f628, MCLR_OFF
    @ DEVICE pic16f628, INTRC_OSC_NOCLKOUT
    Include "modedefs.bas"
    DEFINE OSC 4 '4 Mhz hızında çalışıyoruz.
    SENSOR VAR PORTB.0 'Sensör PORTB.0'ye bağlı
    LED VAR PORTA.5 'LED PORTA.5'ya bağlı
    TUS VAR PORTA.3
    MESGUL VAR BYTE 'Çeşitli değişken tanımlamaları
    BILGI VAR WORD
    ISARET VAR BYTE
    ONDA1 VAR WORD
    ARA VAR WORD
    DEGER VAR BYTE
    DEFINE LCD_DREG PORTB 'LCD Veri pinleri PORTB'ye bağlı.
    DEFINE LCD_DBIT 4 'LCD'nin D0 pini PORTB.4'a bağlı
    DEFINE LCD_RSREG PORTB 'RS PİNİ PORTB'ye bağlı
    DEFINE LCD_RSBIT 1 'RS PİNİ = PORTB.1
    DEFINE LCD_EREG PORTB 'ENABLE PİNİ PORTB'ye bağlı
    DEFINE LCD_EBIT 3 'ENABLE PİNİ = PORTB.3
    DEFINE LCD_RWREG PORTB 'RW PİNİ KULLANILMIYOR - Kullanılmayan bir pin tanımlandı.
    DEFINE LCD_RWBIT 2 'RW PİNİ KULLANILMIYOR - Kullanılmayan bir pin tanımlandı.
    DEFINE LCD_BITS 4 'LCD 4 BİT SÜRÜLÜYOR
    DEFINE LCD_LINES 2 'LCD 2 SATIRLIK
    TRISA=00000 'PORT giriş-çıkış tanımalamları
    TRISB=00000001

    PAUSE 500 'Ekranın hazır olması için biraz bekliyoruz.
    LCDOUT $FE,$40,6,9,9,6,0,0,0,0 'Derece gösterimi için özel karakteri LCD'ye yüklüyoruz.
    LCDOUT $FE,$48,4,0,14,4,4,4,14,0 'İ karakterini LCD'ye yüklüyoruz.
    LCDOUT $FE,$50,0,0,4,4,4,4,4,0 'ı karakterini LCD'ye yüklüyoruz.
    LCDOUT $FE,1," MUSTAFA" 'İlk satıra İzoelektronik yaz.
    LCDOUT $FE,$C0," VARDAR" 'İkinci satıra yaz.
    PAUSE 1000 'Biraz bekle
    LCDOUT $FE,1," "
    LCDOUT $FE,$C0," "
    HIGH PORTA.0
    A:
    IF TUS=0 THEN
    LOW PORTA.1
    LOW PORTA.2
    else
    LCDOUT $FE,1,"CIHAZ", " ON"
    HIGH PORTA.1
    HIGH PORTA.2
    PAUSE 1500
    LCDOUT $FE,1,"CIHAZ" , " OFF"
    LOW PORTA.1
    LOW PORTA.2
    PAUSE 300
    LOW PORTA.1
    LOW PORTA.2
    PAUSE 500
    IF PORTA.3=1 THEN
    GOTO A
    ELSE
    GOTO C
    ENDIF
    ENDIF
    C:

    LCDOUT $FE,1,"SICAKLIK" 'Ekranı temizleyip, üst satıra Sıcaklık: yaz.
    BASLA: 'Dongüye gir.
    ISARET="+"
    OWOUT SENSOR,1,[$CC,$44] 'Sensöre sıcaklığı okumasını söyle.
    BEKLE: 'Sensör hazır olana kadar bekle.
    OWIN SENSOR,4,[MESGUL]
    IF MESGUL=0 THEN
    GOTO BEKLE
    ENDIF
    DEVAM:
    OWOUT SENSOR,1,[$CC,$BE] 'Sensöre okuduğu değeri göndermesini söyle.
    OWIN SENSOR,0,[BILGI.LOWBYTE,BILGI.HIGHBYTE] 'Gelen 16 bitlik bilgiyi al.
    IF BILGI.BIT13=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*512 '12 bit hassasiyet kullandığımız için her değer 0.0625 santigrat dereceye denk geliyor.
    DEGER=DIV32 1000
    ARA=BILGI*1000
    ONDA1= DIV32 12

    ONDA1=ONDA1-(DEGER*1)
    LCDOUT $FE,$C0," " 'LCD ekranın alt satırını temizle
    LCDOUT $FE,$C0,ISARET, #DEGER,".",#ONDA1," ",0,"C"
    HIGH LED 'LEDi yakıp söndürerek döngünün bittiğini belirt.
    PAUSE 500
    LOW LED
    PAUSE 500
    GOTO A
    END

     16F628 ile LCD TERMO TİMER İÇİN YARDIM


     16F628 ile LCD TERMO TİMER İÇİN YARDIM



    < Bu mesaj bu kişi tarafından değiştirildi vardar07 -- 16 Mayıs 2012; 17:12:58 >







  • Arkadaşlar yokmu bir omuz atacak arkadaş?
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.