ccs 2x16 lcd rw ucu?

Başlatan enteresan10, 21 Ağustos 2018, 23:40:54

enteresan10

ccs de hd44780 lcdnin rw ucunu programda tanımlamazsak bu pin ne oluyor bilgi verirmisiniz? tsk...

RaMu

Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

ziyaretci

R/W ucu lcd modülündeki mikro denetleyicinin istediği iletişim protokolünün bir bit bilgisidir.

Eğer RW ucu lojik 0 ise LCD'ye veri yazılacağı bilgisi verilir. Eğer lojik 1 ise LCD içerisindeki RAM bellekten veri okunacağı bilgisini LCD 'ye iletmiş oluruz.

Böylelikle ilgili LCD modüldeki mikro denetleyici kendini ve istenen bilgiyi(R: Okuma için) hazırlayıp ana kontrolcü(host) denetleyiciye iletişim protokolü kurallarınca iletir.

Veya yazma için emri alınır ve istenen emir doğrultusunda LCD modül üzerindeki  denetleyicide kayıtlı tutulan işlemler yürütülür.

Günümüzdeki mikrodenetleyiciler LCD üzerindeki RAM bellek avantajını sönümlüyor. Artık mikro denetleyiciler geniş hafıza alanına sahip ve hızlı bir şekilde bu hafızadaki bilgileri işleyebiliyor.

Böylelikle LCD modül üzerindeki mikro denetleyicinin bize sunduğu RAM bellek avantajı iletişim hızı yönünden ve ek işlem yükünden dolayı dezavantaj olarak kalıyor(artık). Bu yüzden tasarımcılar ilgili R/W pinini direkt olarak donanımsal bilgide toprakta(GND, lojik 0)  tutuyorlar. Böylelikle host cihazda hem okuma fonksiyonunun kapladığı hafızadan hem de host cihazdaki bir pinden tasarruf ediyorlar.

Şunuda eklemek gerekir; sürücü yazılımda her komut gönderiminden sonra bir sonraki komutun gönderilmesi için LCD den hazır olup olmadığına dair bilgi beklenir. Bu, bilgi okuma işlemidir.

Biz donanımsal olarak R/W ucunu lojik sıfıra çektiğimizden dolayı bu 'hazırım' bilgisi host cihazımıza iletilemeyecektir. Bu yüzden sürücü yazılımda LCD'nin hazır olup olmadığını kesin bir dille öğrenen fonksiyonu iptal ederek küçük bir bekleme süresi ile LCD'nin yeni bir komuta hazır olmasını bekleriz.(Bypass)

Bu yapılan işlem kaba saba dursa da endüstriyel uygulamalar için önem arz ediyor. Bizzat tecrübesini edindiğim bir sorunuda paylaşarak bitirmek istiyorum.

Eğer LCD sürücü yazılımına bakarsan orada okuma fonksiyonu vardır, yazma fonksiyonundan önce while döngüsü ile LCD'nin hazır olup olmadığı sürekli kontrol edilir. Şimdi karşıdaki cihaz(LCD MCU) ile host cihaz bu pini paylaştığından dolayı üzerindeki bilginin dış etkenlerden etkilenmemesi gerekiyor ki işler planlandığı gibi yürütülsün. Bu pin ortamdaki endüktif yüklerin yarattığı akıdan ve besleme kaynaklı problemlerden  dolayı sürekli lojik 1'de kalıyor ve program while döngüsünden çıkamıyor. Dolayısıyla kilitlenme hali meydana geliyor.