Kısaltmalar
Kısaltmalar | Açıklamalar |
I/D | Increment / Decrement. I/D = 1: Artırma. I/D = 0: Azaltma. |
S | Shift. S = 1 olduğunda: I/D = 0 ise; Tüm ekranı sağa, I/D = 1 ise; Tüm ekranı sola kaydırır. S=0 olduğunda ekran kaydırılmaz. |
D | Display. D=1: Ekran açık. D=0: Ekran kapalı. |
C | Cursor. C=1: İmleç(cursor) Açık. C=0: İmleç(cursor) kapalı. |
B | Blink. B=1: İmlecin gösterdiği karakter yanıp söner. |
S/C | S/C R/L 0 0 : İmleç(cursor) konumunu sola kaydırır. (AC bir azalır.) 0 1 : İmleç(cursor) konumunu sağa kaydırır. (AC bir artar.) 1 0 : Tüm ekranı sola kaydırır. İmleç(cursor), ekran kaydırmasını takip eder. 1 1 : Tüm ekranı sağa kaydırır. İmleç(cursor), ekran kaydırmasını takip eder. |
R/L |
DL | Data Length. Arayüz veri uzunluğunu ayarlar. DL=0: Veriler 4 bit uzunluğunda (DB7 ila DB4). DL=1: Veriler 8 bit uzunluğunda (DB7 ila DB0). |
N | Number. Ekran satırlarının sayısını ayarlar. N=0: 1 satır. N=1: 2 satır. |
F | Font. Karakter yazı tipini ayarlar. Bir hücredeki nokta sayısıdır. F=0: 5x8 nokta. F=1: 5x10 nokta. |
DDRAM | Ekran veri RAM'i |
CGRAM | Karakter üreteci RAM |
ADD | DDRAM adresi. İmleç(cursor) adresine karşılık gelir. |
ACG | CGRAM adresi |
AC | Address Counter. DDRAM ve CGRAM adresleri için kullanılan adres sayacı. |
BF | Busy Flag. Meşgul bayrağıdır. HD44780U'nun daha önce alınan bir komut üzerinde dâhili olarak çalışıp çalışmadığını belirtir. BF=1: Meşgul. BF=0: Meşgul değil. BF=0 olana kadar yeni komut işleme alınmaz. |
Komutlar (Instruction)
Instruction | RS | R/W | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 | AÇIKLAMA |
Clear Display | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | Tüm ekranı temizler ve adres sayacında DDRAM adresini 0 olarak ayarlar. |
Return Home | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | - | Adres sayacında DDRAM adresini 0 olarak ayarlar. Ayrıca ekranı kaydırılmış konumdan orijinal konumuna geri döndürür. DDRAM içeriği değişmeden kalır. |
Entry Mode Set | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | I/D | S | İmleç(cursor) hareket yönünü ayarlar ve ekran kaydırmayı belirtir. Bu işlemler veri yazma ve okuma sırasında gerçekleştirilir. |
Display On/Off Control | 0 | 0 | 0 | 0 | 0 | 0 | 1 | D | C | B | D: Tüm ekranı açar/kapatır. C: İmleci açar/kapatır. B: İmleç(cursor) konumundaki karakterin yanıp sönmesini sağlar. |
Cursor or Display Shift | 0 | 0 | 0 | 0 | 0 | 1 | S/C | R/L | - | - | DDRAM içeriğini değiştirmeden imleci hareket ettirir ve ekranı kaydırır. |
Function Set | 0 | 0 | 0 | 0 | 1 | DL | N | F | - | - | DL: Arayüz veri uzunluğunu ayarlar. N: Ekran satır sayısını ayarlar. F: Bir hücredeki nokta sayısını ayarlar. |
Set CGRAM Address | 0 | 0 | 0 | 1 | ACG | ACG | ACG | ACG | ACG | ACG | CGRAM adresini ayarlar. Bu ayar yapıldıktan sonra CGRAM verileri gönderilir ve alınır. |
Set DDRAM Address | 0 | 0 | 1 | ADD | ADD | ADD | ADD | ADD | ADD | ADD | DDRAM adresini ayarlar. Bu ayar yapıldıktan sonra DDRAM verileri gönderilir ve alınır. |
Read Busy Flag & Address | 0 | 1 | BF | AC | AC | AC | AC | AC | AC | AC | Dâhili işlemin gerçekleştirildiğini gösteren meşgul bayrağını (BF) okur ve adres sayacının içeriğini okur. |
Write Data To CG or DDRAM | 1 | 0 | Write Data | Verileri DDRAM veya CGRAM'a yazar. |
Read Data From CG or DDRAM | 1 | 1 | Read Data | DDRAM veya CGRAM'dan veri okur. |
- : hiçbir etkisi olmadığını gösterir.
Komut Açıklamaları
Clear Display
Tüm DDRAM adreslerine 0x20 boşluk kodunu yazar. 0x20 karakter kodu için karakter deseni boş bir desen olmalıdır. Ardından, DDRAM’ın adresini adres sayacında 0 olarak ayarlar. Eğer ekran kaydırılmışsa, ekranı orijinal durumuna döndürür. Başka bir deyişle, ekran kaybolur ve imleç(cursor) veya blink ekranın 0x0 hücresine gider. Ayrıca, giriş modunda(entry mode) I/D'yi 1 yapar. Giriş modunun S değeri değişmez.
Return Home
DDRAM’ın adresini adres sayacında 0 olarak ayarlar. Eğer ekran kaydırılmışsa, ekranı orijinal durumuna döndürür. DDRAM içeriği değişmez. İmleç(cursor) veya blink, ekranın 0x0 hücresine gider.
Entry Mode Set
I/D: Bir karakter kodu DDRAM'a yazıldığında veya DDRAM'dan okunduğunda DDRAM adresini 1 artırır (I/D = 1) veya 1 azaltır (I/D = 0). I/D = 1 olduğunda İmleç(cursor) veya blink sağa, I/D = 0 olduğunda İmleç(cursor) veya blink sola hareket eder. Aynı durum CGRAM'ın yazılması ve okunması için de geçerlidir.
S: S = 1 olduğunda: I/D = 0 ise; Tüm ekranı sağa, I/D = 1 ise; Tüm ekranı sola kaydırır. S = 0 olduğunda ekran kaydırılmaz. S = 1 olduğu durumda, İmleç(cursor) hareket etmiyor gibi görünür. Ancak ekran hareket eder. DDRAM'den okuma yapıldığında ekran kaydırılmaz. Ayrıca, CGRAM'e yazma veya CGRAM'den okuma yapıldığında ekran kaydırılmaz.
Display On/Off Control
D: D = 1 olduğunda ekran açıktır, D=0 olduğunda ise kapalıdır. Kapalıyken, ekran verileri DDRAM'de kalır. Ancak D'yi 1 olarak ayarlayarak anında görüntülenebilir.
C: C = 1 olduğunda imleç görüntülenir, C=0 olduğunda ise imleç görüntülenmez. İmleç kaybolsa bile, ekran verisi yazma sırasında I/D veya diğer özelliklerin işlevi değişmez. İmleç, 5 x 8 nokta için 8. satırda ve 5 x 10 nokta için 11. satırda 5 nokta kullanılarak görüntülenir.

B: Blink’tir. B = 1 olduğunda imlecin gösterdiği karakter yanıp söner. Yanıp sönme, fcp veya fosc 250 kHz olduğunda 409,6 ms aralıklarla tüm boş noktalar ve görüntülenen karakterler arasında geçiş yaparak görüntülenir. İmleç ve blink aynı anda görüntülenmek üzere ayarlanabilir. (Yanıp sönme frekansı fosc veya fcp'nin tersine göre değişir. Örneğin, fcp 270 kHz olduğunda, 409,6 x 250/270 = 379,2 ms.)

Cursor or Display Shift
İmleç veya ekran kaydırma, ekran verilerini yazmadan veya okumadan imleç konumunu veya ekranı sağa veya sola kaydırır (kısaltmalar tablosu S/C ve R/L). Bu işlev, ekranı düzeltmek veya aramak için kullanılır. 2 satırlı bir ekranda, imleç ilk satırın 40. rakamını geçtiğinde ikinci satıra geçer. İlk ve ikinci satır ekranlarının aynı anda kaydırılacağına dikkat edin.
Function Set
DL: Arayüz veri uzunluğunu ayarlar. DL = 1 olduğunda veriler 8 bit uzunluğunda (DB7 ile DB0), DL = 0 olduğunda ise 4 bit uzunluğunda (DB7 ile DB4) gönderilir veya alınır. 4 bit uzunluk seçildiğinde, veriler iki kez gönderilmeli veya alınmalıdır.
N: Ekran satırlarının sayısını ayarlar.
F: Karakter yazı tipini ayarlar. Bir hücredeki nokta sayısıdır.
Not: Herhangi bir komutu (okuma meşgul bayrağı ve adres komutu hariç) yürütmeden önce programın başında bu işlevi gerçekleştirin. Bu noktadan itibaren, arabirim veri uzunluğu değiştirilmedikçe işlev seti komutu yürütülemez.
Set CGRAM Address
CGRAM adresi, ikili “AAAAAA” verisi adres sayacına yazılarak ayarlanır. Daha sonra CGRAM için MPU'ya veri yazılır veya MPU'dan veri okunur.
Set DDRAM Address
DDRAM adresi, ikili “AAAAAA” verisi adres sayacına yazılarak ayarlanır. Daha sonra DDRAM için MPU'ya veri yazılır veya MPU'dan veri okunur. Ancak;
N = 0 olduğunda (1 satırlık ekran), AAAAAAA, 0x00 ile 0x4F arasında olabilir.
N = 1 olduğunda (2 satırlık ekran), AAAAAAA, ilk satır için 0x00 ile 0x27 arasında ve ikinci satır için 0x40 ile 0x67 arasında olabilir.
Örnek Komut Dizisi

Read Busy Flag and Address(Meşgul Bayrağını ve Adresi Oku)
Bu, sistemin daha önce alınan bir komut üzerinde dâhili olarak çalışıp çalışmadığını belirten meşgul bayrağını (BF) okur. BF = 1 ise, dâhili işlem devam etmektedir. Bir sonraki komut, BF = 0 oluncaya kadar kabul edilmeyecektir. Bir sonraki yazma işleminden önce BF durumunu kontrol edin. Aynı zamanda, ikili “AAAAAAA” adres sayacının değeri okunur. Bu adres sayacı hem CGRAM hem de DDRAM adresleri tarafından kullanılır ve değeri önceki komut tarafından belirlenir. Adres içeriği, CGRAM adresini ayarla ve DDRAM adresini ayarla komutlarıyla aynıdır.
Write Data to CGRAM or DDRAM
8 bitlik ikili veri olan DDDDDDDD'nin CGRAM veya DDRAM'a yazılmasıdır. CGRAM veya DDRAM'a veri yazma, CGRAM veya DDRAM adres ayarının önceki spesifikasyonuna göre belirlenir. Yazma işleminden sonra adres, giriş moduna(entry mode) göre otomatik olarak 1 artırılır veya azaltılır. Giriş modu(entry mode) ayrıca ekran kaydırmasını da belirler.
Read Data from CGRAM or DDRAM
CGRAM veya DDRAM'den 8 bitlik ikili veri DDDDDDDD'nin okunmasıdır. Önceki tanımlama, CGRAM veya DDRAM'den hangisinin okunacağını belirler. Bu okuma komutunu girmeden önce, CGRAM veya DDRAM adres ayarlama komutu yürütülmelidir. Yürütülmezse, ilk okunan veri geçersiz olur. Okuma komutları seri olarak yürütülürken, bir sonraki adres verisi genellikle ikinci okumadan okunur. İmleç kaydırma komutu kadar imleç kaydırılırken (DDRAM okunurken) adres ayarlama komutlarının bu okuma komutlarından hemen önce yürütülmesi gerekmez. İmleç kaydırma komutlarının işleyişi, DDRAM adres ayarlama komutlarıyla aynıdır.
Bir okuma işleminden sonra, giriş modu(entry mode), adresi otomatik olarak 1 artırır veya azaltır. Ancak, giriş modundan bağımsız olarak ekran kaydırma işlemi yürütülmez.
Not: Adres sayacı (AC), CGRAM veya DDRAM'a yazma talimatları yürütüldükten sonra otomatik olarak 1 artırılır veya azaltılır. Okuma komutları yürütülse bile, AC tarafından seçilen RAM verileri bu anda okunamaz. Bu nedenle, verileri doğru bir şekilde okumak için, adres kümesi komutunu veya imleç kaydırma komutunu (yalnızca DDRAM ile) yürütün. Ardından istenen verileri okumadan hemen önce, okuma komutunun ikinci gönderildiği andan itibaren okuma talimatını yürütün.

Örnekler:
Aşağıda 8x1 ve 8x2 LCD ekrana, 4 bit ve 8 bit veri uzunluğunda veri göndermeyi sağlayan örnekler mevcuttur. Örneklerde yukarıda anlatıldığı gibi, ilk önce komutlar gönderilerek LCD hazırlanmış ve ardından harfler gönderilmiştir. Hangi karakter kodlarının hangi karakter desenlerini oluşturduğu HD44780U’nun datasheet’inde yer almaktadır.
Örneğin; “MEHMET” yazısında kullanılan karakter kodları aşağıdaki gibidir.
Harf Deseni | Upper 4 Bits | Lower 4 Bits |
| D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
M | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 |
E | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 1 |
H | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 |
M | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 |
E | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 1 |
T | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 |
8-Bit Veri Uzunluğu, 8x1 Ekran, Dâhili Sıfırlamalı Örneği

8-Bit Veri Uzunluğu, 8x2 Ekran, Dâhili Sıfırlamalı Örneği

4-Bit Veri Uzunluğu, 8x1 Ekran, Dâhili Sıfırlamalı Örneği
