Piyasa da çok çeşitli LCD (Liquid Crystal Display) ler satılıyor.  Bu gün 2*16  satır LCD nin Assembly dilindeki örnek programını yazıp açıklamaya çalışacağım.

test_output-20514

Öncelikle LCD nin  pin konfigrasyonunu bilmek gerekiyor. 2*16 LCD lerin  3 tane kontrol, 8 tane veri ve 3 tane Suppy pini olmak üzere toplam 14 pini bulunuyor.

VCC=+5V , VSS=GND, VEE= Contrast bacakları.  RS= Kaydedici seçme bacağı(Select Register), R/W= Okuma yazma bacağı(Read/Write),  E=Anahtar bacak(Enable). Diğerleri ise D0-D7= veri yazma ve ya veri okuma bacakları(DATA BUS).

1
Embedded Systems Book (Muhammed Ali Mazidi)

 

LCD ye yazı yazma mantığı kaba taslak şu şekilde oluyor; ilk önce RS yani kaydedici seçme pinini RS=1 yaparak LCD içerisindeki DATA kaydedicisi seçiyoruz. Daha sonra R/W yani okuma yazma pinini R/W=0 yaparak LCD ye veri göndereceğimizi belirtiyoruz. Bu işlemden sonra verileri DATA BUS yani D0-D7 pinlerine gönderiyoruz. Burada verileri gönderirken dikkat etmemiz gereken şey “E” pininin her yolladığımız 8 bit veri için en az 450 ns zaman içerisinde 1 ve 0 yapılması gerekiyor.  yani yükselen kenarda E pinine sinyal göndermemiz gerekiyor.

Bir de LCD den veri okuyabiliyoruz. Bu işlem için ise RS=1 yaparak yine veri kaydedicisini seçiyoruz. R/W=1 yaparak okuma yapacağımızı belirtiyoruz ve E pinine bu sefer düşen kenarda sinyal gönderiyoruz. Yani 450 ns boyunca 0 yapıp daha sonra 1 yapıyoruz.

 

LCD nin kontrol kaydedicisi LCD ye yazacağımız yazının pozisyonunu ve ya LCD üzerindeki kontrol işlemlerini yapabilmemizi sağlar. Bu yüzden LCD ye yazı göndermeden önce LCD nin kontrol kaydedicisini seçerek (RS=0) LCD yi açarız, yazacağımız yazının pozisyonunu düzenleriz ve LCD üzerinde çeşitli işlemler yapabiliriz. LCD nin kontrol kaydedicisi seçili iken LCD nin Data pinlerine(D0-D7) gönderdiğimiz bazı veriler şu LCD üzerinde şu işler yapmamıza yarar; .

2
Embedded Systems Book (Muhammed Ali Mazidi)

 

Şimdi assembly dilindeki lk programımızı yazalım. LCD yi Pic’imize şu şekilde bağlıyoruz;

3
Embedded Systems Book (Muhammed Ali Mazidi)

 

 

Yazma işlemi yapılırken EN pini ilk önce 1 daha sonra 0 yapılır. Bu sürenin en az 450 ns olması gerekiyor. LCD üzerinden okuma yapılırken ise EN pini ilk önce 0 daha sonra 1 yapılır. Yine 450 ns ye ihtiyaç duyuluyor.