LCD 1602 4-Bit Modunda Nasıl Kullanılır?

Bu yazıda popüler LCD 1602 ekranını 8 bit / 4 bit modlarında Microchip PIC serisiyle 1 ‘den fazla portla nasıl kullanabiliriz sorusuna yanıt arayacağız.

Zafer Altun
3 min readNov 3, 2019
LCD 1602 4-Bit Multi Port Simülasyon Örneği

LCD 1602 ekranı, ortalama 2$ ‘lık fiyatıyla gerek hobi amaçlı olarak gerekse üretim maliyetlerinde hassas olan üreticiler tarafından sıklıkla tercih ediliyor. Ekranı 16 karakter x 2 satır olarak kullanabiliyor, metin kontrastını ve arka plan ışığını ayarlayabiliyoruz. Ayrıca 5x8 dot-matrix şeklinde özel karakter, sembol vs oluşturmamıza da imkan veriyor. Özel karakter / font konusuna bu yazıda girmeyi düşünmüyorum ama talep olursa ayrıca bir yazıda detaylı olarak gireceğim.

Fiyat performans oranı memnun edici olmasına rağmen bu ekranın en büyük dezavantajı paralel iletişimle kullanılabilmesi. İster bir mikroişlemciyle beraber kullanın isterse Arduino veya Raspberry Pi gibi bir IoT ‘la; 8 pin data transferi için, 3 pin ise kontrol pini olarak rezerve etmeniz gerekiyor. Dolayısıyla zaten I/O sıkıntısı çektiğimiz mikroişlemciler üzerinde sadece bu ekran için 11 pin işgal etmek pek makul olmuyor. Bu durumda imdadımıza ekranın 4-bit desteği yetişiyor ve toplamda 7 pin ile durumu kurtarıyoruz.

4-bit modunu anlatmadan önce ekranın nasıl kontrol edildiğini kabaca sıralamak gerekirse:

1- Data göndermeden önce ekran bir takım özel komutlarla belirli bir moda alınıyor.
2- Gönderilecek komut veya data D0 (MSB) — D7 (LSB) pinine 8 bit olarak yazılıyor.
3- Komut gönderilecekse RS pini 0 (low) seviyesine, data gönderilecekse 1 (high) seviyesine çekiliyor.
4- E pini önce 1 seviyesine, kısa bir beklemeden sonra (ben 200 mikro saniye bekletmeyi tercih ettim) 0 seviyene çekiliyor. Ekran tarafından talimatı alma işlemi bu aşamada (1 ‘den 0 ‘a alırken) gerçekleşiyor.
5- Her komut veya gönderilecek dataya dair her byte için yukarıdaki işlemlerin tekrarlanması gerekiyor.

Göreceğiniz gibi bazı püf noktaları olmasından ötürü, ekranı ilk kullanmaya çalıştığımda bir miktar zorlandığımı söyleyebilirim ama bir kere başardıktan sonrası çorap söküğü gibi geliyor.

Gelelim 4-bit moduna. Daha önce yukarıda bahsettiğim gibi data / komut gönderimi için ekranın sadece D4-D7 pinlerini kullanmak da mümkün. Buradaki püf noktası ise her komut veya yazmak istediğiniz karakter (byte) 8 bite ihtiyaç duyduğundan, bu 8 biti 4 ‘er bitlik 2 kısım halinde göndermeniz gerekiyor. Nasıl yapacağınız hakkında daha detaylı bilgiye aşağıda paylaştığım Git reposundan erişebilirsiniz.

4-bit modunun I/O ‘dan tasarruf sağlarken, her byte ‘ın 2 ‘ye bölünerek işlenmesi durumundan dolayı toplam işlem süresinin yaklaşık 2 katına çıkacağını takdir edersiniz..

Bu ekran için geliştirdiğim kütüphaneyi kullanarak yaptığım yukarıdaki simülasyonun canlı örneğini paylaşıyorum:

PIC16F690 ile LCD 1602 4-Bit Multi Port Çalışan Örnek

Simülasyonda yer almayan bazı detayları da paylaşmak faydalı olacak. Simülasyonda VEE (gerçek cihazda genelde VO diye gösterilir) pini yazı kontrastını ayarlayabilmenizi sağlıyor. En fazla kontrast için bu pini GND ‘a doğrudan bağlayın; GND ile arasına bir direnç koyarsanız koyacağınız direncin değeri arttıkça kontrast azalacaktır.

Benzer mantık led arkaplan ışığı için de geçerli. Bu kez LED+ veya A pini (simülasyonda yer almıyor) hiç bağlı değilken en düşük arka plan ışığı ile işlemciyle beraber toplam 2mA civarında bir güç tüketimi olurken, 5V ‘luk VDD ‘ye 1k direnç ile bağladığınızda 4mA, VDD ye doğrudan bağlıyken 16mA oluyor! Mobil cihazlar için bu güç tüketimi kritik bir manaya gelebilir, o yüzden bu pini her ihtimale karşı en azından trimpot gibi bir değişkene bağlamak isteyebilirsiniz.

Son olarak, LCD 1602 için hem 8-bit hem 4-bit modunda kullanıma uygun hazırladığım kütüphaneye ve projenin tamamına aşağıdaki GitHub adresinden erişebilirsiniz:

Kolay gelsin.

--

--

Zafer Altun

İstanbul‘da bir Yazılım ve Teknoloji Ar-Ge Mühendisi. Ürün, yazılım, sistem analisti ve tasarımcısı. http://www.zaferaltun.com/