Herkese merhaba güzel bir çalışmayı sizlerle paylaşmak istedim
(Kaynak alıntıdır Guclu Tugay Ekim 2002 -LCD Panel Kontrolü
Farkına varmasak bile LCD paneller günlük hayatimizin bir parçası gibidir. En basitinden bazı cep telefonlarında, hesap makinelerinde ve birçok elektronik eşyada bu teknoloji kullanılmaktadır. LCD paneller hafif ve az yer
kaplarlar. Yaptığınız devrelere küçük bir LCD panel bağlayarak devreden, kullanıcıya göndermek istediğiniz mesajları bu ekrana yazdırabilirsiniz.
Standart LCD paneller, +5 Volt ile çalışır. Bu voltajı PIC deneme kartımızın üzerinden alabiliyoruz. Benim kullandığım LCD panelin modeli (2 X 16) SAMSUNG-1602D idi. Ya da kitaplarda sık rastlanan HITACHI HD44780 model LCD panel de isinizi görebilir. Genel olarak 2X16lık ve 14 konvektörü bulunan LCD panellerin bacak bağlantıları ayni sayılır. Önemli olan LCD panelin hangi pininin hangi işlev için kullanıldığını bilmektir. Standart bir LCD panelin üzerinde 14 tane konnektör bulunur. Bu pinlerin görevleri aşağıdaki gibidir. * 15 ve 16 numaralı pinler bazı LCD panellerde bulunmayabilir. Eğer LCD panel ışıklı ise iç ampulü bu pinlerden yakmak mümkün.
LCD Pinleri Pin İşlevi
1 Toprak (Ground)
2 VCC +5 Volt
3 VO (Kontrast)
4 RS (Register Select)
5 R/W (Okuma yada Yazma Modu)
6 E (Enable)
7-14 D0-D7 (DATA girişleri)
15* LCD Panel ışığı (+5 Volt)
16* Toprak (Ground)
RS (register select): RS girişi "0" (düşük) olduğu zaman LCD panelin komut saklayıcısı, yüksek olduğu zaman ise veri saklayıcısı seçilmiş olur. Biz LCD panelin RS girişini PIC in RA0 pinine bağlıyoruz.
R/W (read/write): Bu giriş düşük yani "0" olduğunda, LCD panel yazma modundadir. Karakterleri yazdırırken, yazma modunu kullanacağız. Hatırlarsanız paralel porttan programlarken bu girişi doğrudan topraklamıştık. Bu durumda LCD hep yazma modunda kalmıştı. Dolayısı ile LCD ye yazma işleminin bitip bitmediğine bakmadan, FOR-NEXT ler ile gecikme döngüleri yazmıştık. Fakat PIC içerisinde bu kadar bekletme sağlamak kolay olmadığından, yazma işleminin bitip bitmediğini belirten meşgul bayrağını (busy flag) okuyacağız bunun için bu girişe "1" uygulamamız gerekecek. Program içerisindeki LCDBUSY fonksiyonunda bu durumu daha iyi anlayacaksınız.
E (enable) : PORTB üzerine 8 bitlik veriyi yerleştirdikten sonra LCD panele, panelin E ucu ile buradaki veriyi okumasını sağlayabiliriz. Bunun için E ucuna bağlı olan RA2 pinini "1" (yüksek) yapmalıyız. Daha sonra biraz beklemeli ve bir sonraki byte için tekrar "0" durumuna getirmeliyiz.
VO (kontrast) : 3 numaralı VO kontrast girişini doğrudan 2K5 (2.5K) bir direnç üzerinden toprağa gönderiyoruz. Buradaki direncin değerini arttırarak kontrastı düşürebilir, azaltarak ise kontrastı yükseltebilirsiniz. Eğer bu kontrast ile sürekli oynamak istiyorsanız buraya 2K5 bir ayarlı direnç bağlayabilirsiniz.
DATA: 7-14 numaralı pinleri doğrudan PORTB nin pinlerine bağlıyoruz. Bu sayede istediğimiz komut yada veriyi LCD panele göndermemiz mümkün olacaktır. Aşağıda TABLO 2 'de standart LCD panelin komut saklayıcısının fonksiyonlarını yazıyorum. Yukarıda anlattığım şekilde RS girişi ile veri saklayıcısı ya da komut saklayıcısını seçmemiz mümkün olacaktır. Aşağıdaki komutları kullanabilmek için önce komut saklayıcısını seçmeliyiz