Şimdi Ara

PIC 16F877 Sıcaklık Ölçme Ve Seçim Yapma

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir (1 Mobil) - 1 Masaüstü1 Mobil
5 sn
3
Cevap
0
Favori
808
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar aşağıda gördüğünüz şekilde bir ödevim var,yapması gerekenler belli sıcaklık değerlerin bir seçim yapacak ve sıcaklık değişene kadar o seçimde kalıp,seçmde kaldığı süre içindede roleyi açık tutacak,bunları lcd de gösterecek,fakat benim yaptığımda sıcaklık değeri değişse bile seçimi değiştirmiyor,çok karışık oldu,bir yerde hata var ama çözemiyorum,yardım ederseniz sevinirim.



    DEFINE LCD_DREG PORTC 'LCD data bacakları PortC de bağlı 
    DEFINE LCD_DBIT 4 'LCD data bacakları 4. bitten başlıyor
    DEFINE LCD_EREG PORTC 'LCD Enable Bacağı PortC de bağlı
    DEFINE LCD_EBIT 3 'LCD Enable Bacağı 3. bite bağlı
    DEFINE LCD_RWREG PORTC 'LCD RW Bacağı PortC de bağlı
    DEFINE LCD_RWBIT 2 'LCD RW Bacağı 2. bite bağlı
    DEFINE LCD_RSREG PORTC 'LCD RS Bacağı PortC de bağlı
    DEFINE LCD_RSBIT 1 'LCD RS bacağı 1. Bite bağlı
    DEFINE LCD_BITS 4 'LCD 4 bit olarak bağlı
    DEFINE LCD_LINES 4 'LCD 2 sıra olarak çalışıyor
    DEFINE OSC 4

    ADCON0=%10000000
    ADCON1=%0111

    TRISA=%001111
    TRISC=0
    TRISD=%00000111

    SICAKLIK Var Word ' Sicaklik Degsikeni
    Kalan Var Byte ' Kalan Degiskeni
    Derece_say Var Byte ' Her Santigrad icin derece sayimi Degiskeni

    DS Var PORTA.4

    SYMBOL TUS1=PORTA.0
    SYMBOL TUS2=PORTA.1
    SYMBOL TUS3=PORTA.2

    HIGH TUS1
    HIGH TUS2
    HIGH TUS3

    lcdout $FE,1,"SSA"
    LCDOUT $FE,$C0,"2211"
    LCDOUT $FE,$94,"ODEV ÇALIŞMASI"
    PAUSE 400

    DONGU: OWOut DS,1,[$CC, $44]
    DONGU1: OWIn DS,4,[Kalan]
    If Kalan = 0 Then DONGU1

    OWOut DS,1,[$CC, $BE] ' Siackligi oku
    OWIn DS,0,[SICAKLIK.LOWBYTE, SICAKLIK.HIGHBYTE, Skip 4, Kalan, Derece_say]


    SICAKLIK = (((SICAKLIK >> 1) * 100) - 25) + (((Derece_say - Kalan) * 100) / Derece_say)
    Lcdout $FE,$D4,0,DEC (SICAKLIK / 100), ".", DEC2 SICAKLIK, " C DERECE"
    Pause 1000 ' Her 250 milisaniyede bir goster




    BASLA:
    lcdout $FE,1,"1.TAVUK"
    LCDOUT $FE,$C0,"2.KAZ"
    LCDOUT $FE,$94,"3.BILDIRCIN"
    LCDOUT $FE,$D4,"LUTFEN BIRINI SECIN"
    PAUSE 10

    IF 0<SICAKLIK<80 THEN TUS1=0
    LCDOUT $FE,1
    Lcdout $FE,$C0,0,DEC (SICAKLIK / 100), ".", DEC2 SICAKLIK, " C DERECE"
    PAUSE 500
    LCDOUT $FE,$94,"TAVUK Secildi "
    HIGH PORTD.0
    HIGH PORTA.3 'role çektirildi
    PAUSE 500 '500 ms beklemeı
    PAUSE 500
    LOW PORTD.0
    PAUSE 500
    GOTO DONGU

    IF 88<SICAKLIK<160 THEN TUS2=0
    LCDOUT $FE,1
    Lcdout $FE,$C0,0,DEC (SICAKLIK / 100), ".", DEC2 SICAKLIK, " C DERECE"
    PAUSE 500
    LCDOUT $FE,$94,"BILDIRCIN Secildi "
    HIGH PORTD.0
    HIGH PORTA.3 'role çektirildi
    PAUSE 500 '500 ms beklemeı
    PAUSE 500
    LOW PORTD.0
    PAUSE 500
    GOTO DONGU

    IF 168<SICAKLIK<240 THEN TUS3=0
    LCDOUT $FE,1
    Lcdout $FE,$C0,0,DEC (SICAKLIK / 100), ".", DEC2 SICAKLIK, " C DERECE"
    PAUSE 500
    LCDOUT $FE,$94,"KAZ Secildi "
    HIGH PORTD.0
    HIGH PORTA.3 'role çektirildi
    PAUSE 500 '500 ms beklemeı
    PAUSE 500
    LOW PORTD.0
    PAUSE 500
    GOTO DONGU


    END







  • ccs c olsa az da yardım edebilirdim ama pic basic bilmiyorum
  • RoNNeZ kullanıcısına yanıt
    Teşekkür ederim.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.