Şimdi Ara

PIC16F877A ile 2 tane LCD Panel (2x16) kontrol edilebilir mi?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
9
Cevap
0
Favori
535
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar, PIC16F877A ile PORTB'ye bir LCD panel ve PORTC'ye bir LCD panel olarak iki LCD paneli kontrol etmem münkün mü? PICBasicPro komutlarına
    göre bir LCD için DEFINE komutları başta tanımladıktan sonra sanki ikinci LCD için tanımlanamıyor gibi gözüküyor.
    ASlında her iki LCD panelde de aynı veriler gözükecek. Fakat aynı hat üzerinden bağlantıda voltaj yeterli olmayabilir diye ayrı porta ayrı LCD programlyaım dedim. Bilen arkadaşların yardımını istiyorum teşekkürler.



  • picBasic yetenekleri sınırlı olabilir.

    İki, üç, ... on beş lcd bile bağlanır. Bu kadar çok lcd bağlanınca bacak sayısı yeterli gelir mi sorusu aklına geliyor olabilir, portları buffer kullanarak çoklayabilirsin.

    İki LCD aynı verileri gösterecekse 74HC244 gibi bir buffer entegresi ile sinyallerin karışmadan iletilmesini sağlayabilirsin.

    Hatta 74HC595 ile sadece 3 pin ile LCD sürülmüş örnek var. link
  • Teşekkür ederim. Bacak sayısı 16f877 için yeterli oluyor. Ama PIC BASIC tek LCDyi yönlendiriyor komutlarıyla. Paralel olarak iki LCD yi bağlanıp bir tasarım yaptım ISIS'te oluyor gibi. Pratikte durumun ne olacağına bakacağım artık sonra.
  • Buffer'a gerek yok. Kaç tane LCD bağlamak istiyorsan hepsinin data pinlerini, okuma-yazma (RW) pinlerini ve RS pinlerini paralel bağla. Enable bacaklarını ayrı ayrı pic'e gir. Enable bacaklarını kontrol ederek her LCD'yi aynı anda birbirinden bağımsız bir şekilde kontrol edebilirsin.
  • mux kullanarak yapabilirsiniz hocam sırayla çıkış verirsiniz. veya lcd kütüphane dosyaları üzerinde değişiklik yapıp pinlerini değiştirirseniz olur ama fonksiyonlarını da değiltirmeniz lazım mesela printf1 ve printf2 gibi kaç tane lcd kullanacaksanız gibi.
  • Şema:

     PIC16F877A ile 2 tane LCD Panel (2x16) kontrol edilebilir mi?

    Hangi dili kullanıyorsun bilmiyorum. Ben Pic Basic'de yazdım. Ama bakarak mantığı anlayabilirsin sanırım.

    Program:

    @ DEVICE PIC16F876A 
    @ DEVICE PIC16F876A, WDT_ON
    @ DEVICE PIC16F876A, PWRT_ON
    @ DEVICE PIC16F876A, PROTECT_OFF
    @ DEVICE PIC16F876A, XT_OSC

    TRISB=%00000000

    SYMBOL LCD_1=PORTC.1
    SYMBOL LCD_2=PORTC.2
    SYMBOL LCD_3=PORTC.3
    SYMBOL LCD_4=PORTC.4
    SYMBOL LCD_5=PORTC.5
    SYMBOL LCD_6=PORTC.6

    DEFINE LCD_DREG PORTB
    DEFINE LCD_DBIT 0
    DEFINE LCD_RSREG PORTC
    DEFINE LCD_RSBIT 0
    DEFINE LCD_EREG PORTC
    DEFINE LCD_EBIT 7
    DEFINE LCD_BITS 8
    DEFINE LCD_LINES 2

    PAUSE 200
    LCDOUT $FE,1

    BASLA:
    GOSUB LCD1
    LCDOUT $FE,$80,"ABCDEFGHIJKLMNOP"
    LCDOUT $FE,$C0,"QRSTUVWXYZ......"
    GOSUB LCD2
    LCDOUT $FE,$80,"abcdefghijklmnop"
    LCDOUT $FE,$C0,"qrstuvwxyz......"
    GOSUB LCD3
    LCDOUT $FE,$80," Donanim Haber "
    LCDOUT $FE,$C0," 11.02.2015 "
    GOSUB LCD4
    LCDOUT $FE,$80," Overclock "
    LCDOUT $FE,$C0," Makinesi "
    GOSUB LCD5
    LCDOUT $FE,$80," 9876543210"
    LCDOUT $FE,$C0," 0123456789 "
    GOSUB LCD6
    LCDOUT $FE,$80," Goruldugu gibi "
    LCDOUT $FE,$C0,"hepsi calisiyor."
    GOTO BASLA


    LCD1:
    INPUT LCD_1
    LOW LCD_2
    LOW LCD_3
    LOW LCD_4
    LOW LCD_5
    LOW LCD_6
    RETURN

    LCD2:
    LOW LCD_1
    INPUT LCD_2
    LOW LCD_3
    LOW LCD_4
    LOW LCD_5
    LOW LCD_6
    RETURN

    LCD3:
    LOW LCD_1
    LOW LCD_2
    INPUT LCD_3
    LOW LCD_4
    LOW LCD_5
    LOW LCD_6
    RETURN

    LCD4:
    LOW LCD_1
    LOW LCD_2
    LOW LCD_3
    INPUT LCD_4
    LOW LCD_5
    LOW LCD_6
    RETURN

    LCD5:
    LOW LCD_1
    LOW LCD_2
    LOW LCD_3
    LOW LCD_4
    INPUT LCD_5
    LOW LCD_6
    RETURN

    LCD6:
    LOW LCD_1
    LOW LCD_2
    LOW LCD_3
    LOW LCD_4
    LOW LCD_5
    INPUT LCD_6
    RETURN




  • quote:

    Orijinalden alıntı: Overclock Makinesi

    Şema:

     PIC16F877A ile 2 tane LCD Panel (2x16) kontrol edilebilir mi?

    Hangi dili kullanıyorsun bilmiyorum. Ben Pic Basic'de yazdım. Ama bakarak mantığı anlayabilirsin sanırım.

    Program:

    @ DEVICE PIC16F876A 
    @ DEVICE PIC16F876A, WDT_ON
    @ DEVICE PIC16F876A, PWRT_ON
    @ DEVICE PIC16F876A, PROTECT_OFF
    @ DEVICE PIC16F876A, XT_OSC

    TRISB=%00000000

    SYMBOL LCD_1=PORTC.1
    SYMBOL LCD_2=PORTC.2
    SYMBOL LCD_3=PORTC.3
    SYMBOL LCD_4=PORTC.4
    SYMBOL LCD_5=PORTC.5
    SYMBOL LCD_6=PORTC.6

    DEFINE LCD_DREG PORTB
    DEFINE LCD_DBIT 0
    DEFINE LCD_RSREG PORTC
    DEFINE LCD_RSBIT 0
    DEFINE LCD_EREG PORTC
    DEFINE LCD_EBIT 7
    DEFINE LCD_BITS 8
    DEFINE LCD_LINES 2

    PAUSE 200
    LCDOUT $FE,1

    BASLA:
    GOSUB LCD1
    LCDOUT $FE,$80,"ABCDEFGHIJKLMNOP"
    LCDOUT $FE,$C0,"QRSTUVWXYZ......"
    GOSUB LCD2
    LCDOUT $FE,$80,"abcdefghijklmnop"
    LCDOUT $FE,$C0,"qrstuvwxyz......"
    GOSUB LCD3
    LCDOUT $FE,$80," Donanim Haber "
    LCDOUT $FE,$C0," 11.02.2015 "
    GOSUB LCD4
    LCDOUT $FE,$80," Overclock "
    LCDOUT $FE,$C0," Makinesi "
    GOSUB LCD5
    LCDOUT $FE,$80," 9876543210"
    LCDOUT $FE,$C0," 0123456789 "
    GOSUB LCD6
    LCDOUT $FE,$80," Goruldugu gibi "
    LCDOUT $FE,$C0,"hepsi calisiyor."
    GOTO BASLA


    LCD1:
    INPUT LCD_1
    LOW LCD_2
    LOW LCD_3
    LOW LCD_4
    LOW LCD_5
    LOW LCD_6
    RETURN

    LCD2:
    LOW LCD_1
    INPUT LCD_2
    LOW LCD_3
    LOW LCD_4
    LOW LCD_5
    LOW LCD_6
    RETURN

    LCD3:
    LOW LCD_1
    LOW LCD_2
    INPUT LCD_3
    LOW LCD_4
    LOW LCD_5
    LOW LCD_6
    RETURN

    LCD4:
    LOW LCD_1
    LOW LCD_2
    LOW LCD_3
    INPUT LCD_4
    LOW LCD_5
    LOW LCD_6
    RETURN

    LCD5:
    LOW LCD_1
    LOW LCD_2
    LOW LCD_3
    LOW LCD_4
    INPUT LCD_5
    LOW LCD_6
    RETURN

    LCD6:
    LOW LCD_1
    LOW LCD_2
    LOW LCD_3
    LOW LCD_4
    LOW LCD_5
    INPUT LCD_6
    RETURN


    Ellerinize sağlık. Tarama yöntemini kullanmışsınız sanırım. gayet işlevsel ve güzel olmuş.




  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
  • quote:

    Orijinalden alıntı: akyildizemre

    quote:

    Orijinalden alıntı: Overclock Makinesi

    Şema:

     PIC16F877A ile 2 tane LCD Panel (2x16) kontrol edilebilir mi?

    Hangi dili kullanıyorsun bilmiyorum. Ben Pic Basic'de yazdım. Ama bakarak mantığı anlayabilirsin sanırım.

    Program:

    @ DEVICE PIC16F876A 
    @ DEVICE PIC16F876A, WDT_ON
    @ DEVICE PIC16F876A, PWRT_ON
    @ DEVICE PIC16F876A, PROTECT_OFF
    @ DEVICE PIC16F876A, XT_OSC

    TRISB=%00000000

    SYMBOL LCD_1=PORTC.1
    SYMBOL LCD_2=PORTC.2
    SYMBOL LCD_3=PORTC.3
    SYMBOL LCD_4=PORTC.4
    SYMBOL LCD_5=PORTC.5
    SYMBOL LCD_6=PORTC.6

    DEFINE LCD_DREG PORTB
    DEFINE LCD_DBIT 0
    DEFINE LCD_RSREG PORTC
    DEFINE LCD_RSBIT 0
    DEFINE LCD_EREG PORTC
    DEFINE LCD_EBIT 7
    DEFINE LCD_BITS 8
    DEFINE LCD_LINES 2

    PAUSE 200
    LCDOUT $FE,1

    BASLA:
    GOSUB LCD1
    LCDOUT $FE,$80,"ABCDEFGHIJKLMNOP"
    LCDOUT $FE,$C0,"QRSTUVWXYZ......"
    GOSUB LCD2
    LCDOUT $FE,$80,"abcdefghijklmnop"
    LCDOUT $FE,$C0,"qrstuvwxyz......"
    GOSUB LCD3
    LCDOUT $FE,$80," Donanim Haber "
    LCDOUT $FE,$C0," 11.02.2015 "
    GOSUB LCD4
    LCDOUT $FE,$80," Overclock "
    LCDOUT $FE,$C0," Makinesi "
    GOSUB LCD5
    LCDOUT $FE,$80," 9876543210"
    LCDOUT $FE,$C0," 0123456789 "
    GOSUB LCD6
    LCDOUT $FE,$80," Goruldugu gibi "
    LCDOUT $FE,$C0,"hepsi calisiyor."
    GOTO BASLA


    LCD1:
    INPUT LCD_1
    LOW LCD_2
    LOW LCD_3
    LOW LCD_4
    LOW LCD_5
    LOW LCD_6
    RETURN

    LCD2:
    LOW LCD_1
    INPUT LCD_2
    LOW LCD_3
    LOW LCD_4
    LOW LCD_5
    LOW LCD_6
    RETURN

    LCD3:
    LOW LCD_1
    LOW LCD_2
    INPUT LCD_3
    LOW LCD_4
    LOW LCD_5
    LOW LCD_6
    RETURN

    LCD4:
    LOW LCD_1
    LOW LCD_2
    LOW LCD_3
    INPUT LCD_4
    LOW LCD_5
    LOW LCD_6
    RETURN

    LCD5:
    LOW LCD_1
    LOW LCD_2
    LOW LCD_3
    LOW LCD_4
    INPUT LCD_5
    LOW LCD_6
    RETURN

    LCD6:
    LOW LCD_1
    LOW LCD_2
    LOW LCD_3
    LOW LCD_4
    LOW LCD_5
    INPUT LCD_6
    RETURN


    Ellerinize sağlık. Tarama yöntemini kullanmışsınız sanırım. gayet işlevsel ve güzel olmuş.

    Teşekkür ederim. Mantıken tarama yöntemi. Aslında Enable bacakları dirençler üzerinden paralel bağlı. Hangi lcd'ye veri yazılacaksa o lcd dışındaki lcd'lerin tüm Enable pinleri şaseye çekiliyor.




  • Verdiğiniz bilgilere teşekkür ederim. Sayın Overlock kodları denemeye çalışacağım.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.