fatiherdem.net üstresimdir
2×16 Paralel LCD Ekranlar / 25 Temmuz 2008

Uzun zamandır bir şey yazamadım, elle tutulur bir çalışma yapmadan yazmak istemiyorum çünkü. Son haftalar hep ufak tefek çalışmalarla geçtiğinden anlatacak çok da bir şey yok. Bir önceki günlük notunda da yazdığım gibi 3310 un LCD ekranını acaba okuyabilir miyim diye düşünürken LCD ekranları masaya yatırmam gerektiğini anladım. Her ne kadar nokia nın ekranı klasik paralel LCD ler gibi olmasa da 2×16 paralel LCD lerden girdim LCD dünyasına. Bu zamana kadar LCD leri hep bir mikro kullanarak ve yükek seviyeli bir dil kullanarak sürdüğümden ne olup bittiğini pek bilmezdim, malum 3 bağlantıyı RS (register select), E (enable), R/W (read write) ve 4-8 bitlik data bağlantısını yapar ekranı çalıştırırdım.


LCD ekranlar genelde çıkış (output) aracı olarak kullanılıyor ancak R/W ucunda R seçeneği olduğuna göre okunabilmeli de, nitekim okunuyor.

Burda bahsedeceklerim hitachi nin HD44780U LCD sürücüsü için geçerlidir, ancak komutlar hitachi ye özgü değil standart sanırım. 2×16 paralel LCD nin özelliklerini anlamanın en kolay yolu bağlantısını vereceğim dokumanlardan ilkindeki 2 tabloyu göz önüne alarak isis simülasyon yapmaktır.

R/W ucu eğer 0 da ise sinyal akış yönü dışardan LCD ye, yani yazma işlemi; R/W ucu 1 de ise sinyal akış yönü LCD den dışarıdır, yani okuma.

RS pini ise eğer yazma modundaysak yani R/W ucu 0 da iken; 8 veya 4 bit le gönderilen sinyallerin komut mu yoksa data mı olarak algılanacağını belirler; okuma modundayken (R/W 1 iken) okunacak verinin lcd nin durumu mu yoksa o anda kursorun bulunduğu yerdeki data mı olacağını belirliyor. Yanlış hatırlamıyorsam RS=1 data, RS=0 komut gönderimi için.

E ise işlemin tetiklenme anını belirler. Örnek LCD ye sinyal (data veya komut) göndermek istiyorsunuz data pinlerine uygun datayı yerleştirdiniz, RW ucunu 0 a çektiniz, sinyalin gönderilmesi için E pini lojik 1 den lojik 0 a düşüş geçişi yapmalıdır. Sinyal tam bu geçiş esnasında gönderilir. Okuma işlemi ise E pinin lojik 0 dan lojik 1 e geçişinde veya E pini lojik 1 de iken olabilir. Aslında 2×16 paralel LCD kullanımı bu bilgilerden ibaret, gerisi tabloya bakıp uygulamak.

Denemeler esnasında kafamı karıştıran birkaç durum oldu, veri akışı için 4 bitlik seçmek istediğinizde bakıyorsunuz ki göndermeniz gereken komut 8 bitlik :D 4 bitlik bağlantı yaptığımızda 8 bitlik komutu nasıl göndereceğim diye sormuştum kendi kendime. PIC ler 4 bitle LCD leri çalıştırabiliyordu, sonra acaba PIC bu 4 pinden ne yazıyor diye araştırmaya başladım, CCS C nin asm çıktılarını incelemeye başladım -bu arada CCS C den soğudum biraz-, baktım asm okumakla olmayacak ISIS da lcd pinlerine lojik analizör bağladım. Ancak lojik analizörle elde ettiğim verileri ayıklamak pek kolay görünmediğinden ondan da vazgeçtim. Sahi PIC in çalışma esnasında portlara yazdığı verileri en kolay nasıl kayıt -log- altına alırız? Neyse, sonra yine çözümü komut tablosunda buldum, gözümün önündeki function set komutunun ilk 4 bitini dikkate almayıp sadece son 4 bitini gönderdiğinizde ekran 4 bit moda geçiyormuş :)

Read işleminde ise LCD sürücüsüyle çıkan datayı çakıştırmamak için read yapmadan önce sürücü-lcd nin izole edilmesi gerekiyor, 74-541 bu iş için uygun gibi.

Isis deneme yapmak için LM016L LCD ekranını ve “logic state”leri kullanabilirsiniz.
İlgili dosyalar:

Doküman
HD44780u Katalog

Yorum Yapın

2007 © fatiherdem.net | İrtibat Formu | RSS