Lcdout Nedir - Lcdout Hakkında - PBP Lcdout

'Elektronik Genel Bilgi' forumunda SeLeN tarafından 28 Kasım 2010 tarihinde açılan konu

  1. SeLeN

    SeLeN Site Yetkilisi Editör

    Sponsorlu Bağlantılar
    Lcdout Nedir - Lcdout Hakkında - PBP Lcdout konusu Lcdout Nedir - Lcdout Hakkında - Lcdout Konu Anlatım - PBP Lcdout



    LCDOUT Item {,Item…}

    Item parametresi ile belirtilenleri LCD (“Liquid Crystal Display”) üzerinde gösterir. PicBasic, Hitachi 44780 veya eşdeğer bir kontrol birimi bulunan LCD’leri, ki piyasada bulunabilen çoğu LCD bu şekildedir, destekler. LCD’ler genel de 14 veya 16 pinli olup pinleri çift veya tek sıra dizilmiş olarak üretilirler.

    Item parametresi ile belirtilen ifadenin önüne # işareti konulursa, konulan içeriğin her bir basamağının ASCII karşılığı ekrana gönderilir. LCDOUT fonksiyonu ile SEROUT2 fonksiyonunda kullanılabilen manipülatörler de kullanılabilir. (12-bit çekirdeğe sahip cihazlar hariç.)

    Manipülatör İşem
    {I}{S}BIN{1..16} İkilik (“binary”) tabanda gönderme yap.
    {I}{S}DEC{1..5} Onluk (“decimal”) tabanda gönderme yap.
    {I}{S}HEX{1..4} Onaltılık (“hexadecimal”) tabanda gönderme yap.
    REP c\n c karakterini n kere gönder.
    STR ArrayVar{\n} n karakterden oluşan “string” (katar) tipindeki veriyi gönder.

    Program, LCD’ye enerji verildikten sonra herhangi bir veri göndermeden önce minimum yarım saniye beklemelidir. LCD’lerin açıldıktan sonra hazır hale gelmesi zaman almaktadır.

    LCD, programda ilk kez LCDOUT fonksiyonu kullanıldığında program tarafından ayarlanır. Daha sonraki LCDOUT komutlarında bu işlem tekrar yapılmaz. Eğer bu ayarlamadan sonra ekran herhangi bir sebepten dolayı kapanıp açılırsa yapılan ayarlamalar kaybolacaktır. Böyle bir durumda uygun bir yerde programın kullandığı dahili bir bayrak (“flag”), programa bir sonraki LCDOUT komutunda LCD’yi tekrar ayarlaması gerektiğini söylemek için aşağıdaki kodu kullanarak resetlenebilir.

    1 FLAGS = 0

    LCD’ye komutlar gönderilirken öncelikle $FE verisi gönderilir. Bu bilgiden sonra komut yollanır. Sıklıkla kullanılan LCD komutları aşağıdaki tabloda verilmiştir.

    Komut İşlem
    $FE, 1 Ekanı temizle.
    $FE, 2 İlk satırın başına dön.
    $FE, $0C İmleç kapalı.
    $FE, $0E Altı çizili imleç açık.
    $FE, $0F Yanıp sönen imleç açık.
    $FE, $10 İmleci bir birim sola kaydır.
    $FE, $14 İmleci bir birim sağa kaydır.
    $FE, $C0 İmleci ikinci satırın başına taşı.
    $FE, $94 İmleci üçüncü satırın başına taşı.
    $FE, $D4 İmleci dördüncü satırın başına taşı.

    Görüldüğü üzere imlecin ikinci satıra atlaması için de bir komut vardır. Birçok LCD’nin hafızasında satır ve karakter bilgilerinin tutulduğu yerler ardışık değildir. Örneğin birçok 16×2 LCD’de ilk satır $0 adresi ile başlarken, ikinci satır $40 adresi ile başlar.

    Aşağıdaki komut ile karakter yazımının ilk satırın dördüncü konumundan itibaren başlaması sağlanabilir:

    1 LCDOUT $FE, $80 + 4

    Şu komut da imleci ikinci satıra geçirmektedir:

    1 LCDOUT $FE, $C0

    16×1 ekranlar genelde 8×2 ekranlar gibi davranırlar. İlk 8 karakter ile son 8 karakter arasında adres bazında boşluk bulunmaktadır, ardışık değillerdir. 4 satırlı ekranlar da yukarıdaki tablodan da görülebileceği gibi ardışık olmayan bir hafızaya sahiptir.

    Daha detalı bilgi ve diğer komutlar için LCD üreticilerinin hazırladığı kullanım kılavuzuna (“datasheet”) bakılabilir.


    1 LCDOUT $FE, 1, "Merhaba" ' Ekranı temizle ve "Merhaba" yaz.
    2
    3 LCDOUT $FE,$C0,"Dunya" ' İkinci satıra atla ve "Dunya" yaz.
    4
    5 LCDOUT B0, #B1 ' B0 değişkenini göster ve B1 değişkeninin içeriğini ASCII kodlarına çevirip gönder.

    LCD, 8 bit veya 4 bit bağlantı kullanılarak sürülebilir. Eğer 8 bitlik bağlantı kullanılıyor ise tüm bağlantılar PIC üzerinde aynı portla (Örneğin: PortA) yapılmalıdır. Eğer 4 bitlik bağlantı yapılıyor ise bağlantı PIC üzerinde aynı portun, ya en düşük 4 bitene (0, 1, 2, 3) ya da en yüksek 4 bitene (4, 5, 6, 7) yapılmalıdır. LCD üzerindeki E ve RS pinleri PIC üzerinde herhangi bir pine bağlanabilir. R/W biti eğer LCD’ye sadece yazma yapılacak veya LCDIN komutu kullanılmayacaksa direkt olarak toprağa (0V) bağlanabilir.

    PBP öntanımlı olarak LCD bağlantılarının belirli pinlere yapıldığını var sayar. Öntanımlı olarak LCD’nin 4 bit bağlantı ile sürüldüğü (DB4 – DB7 pinleri ile) ve bu bağlantıların PIC üzerinde PORTA.0 – PORTA.3 kullanılarak yapıldığını, RS pininin PORTA.4′e, E pinin de PORTB.3′e bağlandığını kabul eder. Ayrıca kullanılan LCD’nin 2 satıra sahip olduğunu düşünür.

    Belirtilen öntanımlı yapılandırmanın bağlantısı aşağıdaki gibi olacaktır:

    [​IMG]

    Bağlantı ve çeşitli seçenekler DEFINE ifadeleri ile değiştirilebilmektedir. Bu ifadelerin programın başına eklenmesi gerekmektedir.

    01 ' LCD veri pinleri PORTB'ye bağlı.
    02 DEFINE LCD_DREG PORTB
    03 ' Veri pinleri PORTB.4 - PORTB.7 pinlerine bağlanmış. (Diğer bir seçenek de 0 - 3 pinleridir. Bu bağlantıda iki alternatiften biri seçilmelidir.)
    04 DEFINE LCD_DBIT 4
    05 ' RS pini PORTB'ye bağlı.
    06 DEFINE LCD_RSREG PORTB
    07 ' RS pini PORTB.1'e bağlı.
    08 DEFINE LCD_RSBIT 1
    09 ' E pini PORTB'ye bağlı.
    10 DEFINE LCD_EREG PORTB
    11 ' E pini PORTB.0'a bağlı.
    12 DEFINE LCD_EBIT 0
    13 ' LCD 4 bit sürülüyor. (Diğer alternatif de 8 bittir.)
    14 DEFINE LCD_BITS 4
    15 ' LCD 2 satıra sahip
    16 DEFINE LCD_LINES 2
    17 ' Komut gönderiminde bekleme süresi 2000 mikrosaniye
    18 DEFINE LCD_COMMANDUS 2000
    19 ' Veri gönderiminde bekleme süresi 50 mikrosaniye
    20 DEFINE LCD_DATAUS 50

    Bu yazı, “İzoelektronik – Atölye” grubu tarafından, 90alper90 ve Hazar kullanıcı adlı grup üyelerinin ortak, aktif çalışması ile hazırlanmıştır.
     

Bu Sayfayı Paylaş