- Grafik LCD’ler, karakter LCD’lerden farklı olarak üzerindeki bütün piksellerin tek tek kontrol edilebildiği ekran çeşitleridir.
- 128×64, 240×64, 240×128 gibi çok farklı boy ve ebatta bulunabilirler.
- Grafik LCD’ler sıvı kristal ekran ve bu ekranı kontrol eden kontrol kartından oluşmaktadır.
- MikroC derleyicisinin piyasada en çok kullanılan grafik LCD kontrolcüleri için 5 ayrı grafik LCD kütüphanesi bulunmaktadır.
Pin Tablosu
Pin No | Sembol | Fonksiyon |
1 | Vss | Gnd |
2 | Vdd | Güç Kaynağı (+5 V) |
3 | Vo | Kontrast Ayarı |
4 | D/I | Data/Komut |
5 | R/W | Yazma/Okuma |
6 | E | H→L Aktif etme sinyali |
7 | DB0 | Data ucu |
8 | DB1 | Data ucu |
9 | DB2 | Data ucu |
10 | DB3 | Data ucu |
11 | DB4 | Data ucu |
12 | DB5 | Data ucu |
13 | DB6 | Data ucu |
14 | DB7 | Data ucu |
15 | CS1 | Chip seçme pini |
16 | CS2 | Chip seçme pini |
17 | RST | Reset |
18 | Vee | Negatif voltaj çıkış pini |
19 | A | Aydınlatma ledi anot pini |
20 | K | Aydınlatma ledi katot pini |
Glcd Yapısı

Pin Atamaları
unsigned long GLCD_DataPort_Input at GPIOE_IDR; //GLCD Data portu giriş GPIOE_IDR unsigned long GLCD_DataPort_Output at GPIOE_ODR; //GLCD Data portu çıkış GPIOE_ODR sbit GLCD_CS1 at GPIOE_ODR.B8; //CS1 pini GPIOE’nin 8. pini sbit GLCD_CS2 at GPIOE_ODR.B9; //CS2 pini GPIOE’nin 9. pini sbit GLCD_RS at GPIOE_ODR.B10; //RS pini GPIOE’nin 10. pini sbit GLCD_RW at GPIOE_ODR.B11; // RW pini GPIOE’nin 11. pini sbit GLCD_EN at GPIOE_ODR.B12; //EN pini GPIOE’nin 12. pini sbit GLCD_RST at GPIOE_ODR.B13; //RST pini GPIOE’nin 13. pini
GLCD_Init()
Grafik LCD modülünü kullanıma hazırlar. Bu fonksiyon kullanılmadan önce programın en başında pin tanımlamaları yapılmalıdır.
Örnek: Glcd_Init(); //parametre almadan kullanılır.
Glcd_Fill
Grafik LCD ekranı koyu ve açık piksellerle doldurur. Bu fonksiyon kullanılmadan önce Glcd_Init() fonksiyonu kullanılmış olmalıdır.
Örnek:
Glcd_Fill(0);
Glcd_Fill(0xFF);
Glcd_Fill(0x33);
Glcd_Fill(0xF0);

sbit GLCD_CS1 at GPIOE_ODR.B12; sbit GLCD_RS at GPIOE_ODR.B8; sbit GLCD_RW at GPIOE_ODR.B9; sbit GLCD_EN at GPIOE_ODR.B10; sbit GLCD_RST at GPIOE_ODR.B13; void main() { Glcd_Init(); while(1){ Glcd_Fill(0xFF); Delay_ms(2000); Glcd_Fill(0); Delay_ms(2000); } }
Glcd_Dot
Belirtilen koordinatlardaki pikseli aktif eder, yani nokta koyar. Bu fonksiyon Glcd_Init() kullanılmalıdır.
//Glcd_Dot(x,y,renk);
Glcd_Dot(127,63,2) // 127,63 koordinatlarındaki pikselin rengini tersler
Glcd_Dot(0,10,0); // 0,10 koordinatlarındaki pikseli temizler
Glcd_Dot(63,31,1); // 63,31 koordinatlarındaki pikseli renklendirir.
Dikkat edilmesi gereken nokta x değerinin maksimum 127, y değerinin ise
maksimum 63 olmasıdır. Çünkü 128×64 ekran kullanıyoruz.

unsigned long GLCD_DataPort_Input at GPIOE_IDR; unsigned long GLCD_DataPort_Output at GPIOE_ODR; sbit GLCD_CS2 at GPIOE_ODR.B11; sbit GLCD_CS1 at GPIOE_ODR.B12; sbit GLCD_RS at GPIOE_ODR.B8; sbit GLCD_RW at GPIOE_ODR.B9; sbit GLCD_EN at GPIOE_ODR.B10; sbit GLCD_RST at GPIOE_ODR.B13; void main() { Glcd_Init(); while(1){ Glcd_Dot(127,63,2); Delay_ms(2000); Glcd_Dot(0,10,0); Delay_ms(2000); Glcd_Dot(63,31,1); Delay_ms(2000); Glcd_Fill(0); Delay_ms(2000); } }
Glcd_Line
Belirlenen iki nokta arasında çizgi çizer.
// Glcd_Line(x_başlangıç, y_başlangıç, x_bitiş, y_bitiş, renk);
Glcd_Line(0,0,20,30,1); //0,20 ve 0,30 arası çizgi çizer
Glcd_Line(10,10,40,10,0); //10,40 ve 10,10 arası beyaz çizgi çizer
Glcd_Line(30,30,80,40,2); //30,80 ve 30,40 arasını tersler

Glcd_V_Line
Grafik LCD ekranında dikey bir çizgi çizer.
//Glcd_V_Line(y_baslangic, y_bitiş, x, renk);
Glcd_V_Line(12,25,10,1);
Glcd_V_Line(0,63,32,1);

Glcd_H_Line
Grafik LCD ekranında x ekseninde, y eksenini dik kesen, belirlenen
noktalar arasına yatay bir çizgi çizer.
//Glcd_H_Line(x_baslangic, x_bitiş, y, renk);
Glcd_H_Line(12,25,10,0);
Glcd_H_Line(0,63,32,1);

Glcd_Rectrangle
Grafik LCD ekranına belirlenen koordinatlar arasına dik açılı bir
dörtgen çizer.
//Glcd_Rectangle(x_sol_üst, y_sol_üst, x_sağ_alt, y_sağ_alt, renk);
Glcd_Rectangle(0,0,40,40,1);
Glcd_Rectangle(7,5,25,60,0);
Glcd_Rectangle(6,10,20,35,2);

Glcd_Rectrangle_Round_Edges
Grafik LCD ekranına belirlenen koordinatlar arasına yuvarlatılmış
köşeli, dik açılı bir dörtgen çizer.
//Glcd_Rectrangle_Round_Edges(x_sol_üst, y_sol_üst, x_sağ_alt, y_sağ_alt, yarıçap, renk)
Glcd_Rectangle_Round_Edges(7,5,25,60,2,1); //kenarları yuvarlatılmış
Glcd_Rectangle_Round_Edges(7,5,25,60,9,1); //Elips oldu
Glcd_Rectangle_Round_Edges(7,5,25,60,20,1); //çizmedi
Glcd_Rectangle_Round_Edges(7,5,25,60, 0,1); //köşeli

Glcd_Rectrangle_Round_Edges_Fill
Grafik LCD ekranına belirlenen koordinatlar arasına yuvarlatılmış
köşeli, içi dolu, dik açılı bir dörtgen çizer.
//Glcd_Rectrangle_Round_Edges_Fill(x_sol_üst, y_sol_üst, x_sağ_alt, y_sağ_alt, yarıçap, renk)
Glcd_Rectangle_Round_Edges_Fill(7,5,25,60,2,1);
Glcd_Rectangle_Fill(7,5,25,60,1); //HATA

Glcd_Box
İçi dolu, dik açılı dörtgen çizer.
//Glcd_Box(x_sol_üst, y_sol_üst, x_sağ_alt, y_sağ_alt, renk);
Glcd_Box(0, 0, 40, 40 ,1);

Glcd_Circle
Ekrana bir çember çizer.
//Glcd_Circle(x_merkez, y_merkez, yarıçap, renk);
Glcd_Circle(50,50,10,1);
Glcd_Circle(50,60,10,1); //taşma var. Yarım çizildi

Glcd_Circle_Fill
Ekrana içi dolu bir daire çizer.
//Glcd_Circle_Fill(x_merkez, y_merkez, yarıçap, renk);
Glcd_Circle_Fill(50,50,10,1);

Glcd_Set_Font
- Grafik LCD üzerine herhangi bir yazı veya karakter basmakta kullanılan yazı stili ve boyutları seçilir.
- Mikroelektronikanın tanımladığı 4 adet yazı stili bulunmaktadır.
- Eğer istenirse harici bir yazı stili de kullanılabilir.
- Bu fonksiyonda dikkat edilecek husus ofset kısmıdır.
- Ofset kısmı kullanılan fontun başladığı karakter ile ASCII karakter setinin başladığı karakter arasındaki sayısal farktır.
- Örnek olarak ‘A’ harfinin ASCII değeri 65’tir.
- Karakter setimizde diyelim ki ‘A’ karakteri 45 olsun.
- O halde ofset değeri 20 olacaktır.
- MikroC fontlarının ofset değeri 32’dir.
- 4 font;
- Font_Glcd_System3x5
- Font_Glcd_System5x7
- Font_Glcd_5x7
- Font_Glcd_Character8x7
- Glcd_Set_Font(&Font_Glcd_System3x5, 3, 5, 32);
- Glcd_Set_Font(&Font_Glcd_5x7, 3, 5, 32);
Glcd_Write_Char
Grafik LCD ekrana bir adet karakter yazmak için kullanılır.
Bu fonksiyondan önce Glcd_Set_Font kullanılmalıdır.
//Glcd_Write_Char(‘karakter’, x_pozisyonu, sayfa, renk);
Glcd_Write_Char(‘M’, 8, 5, 1);
Glcd_Write_Text
Grafik LCD ekrana yazı yazmak için kullanılır. Bu fonksiyondan önce Glcd_Set_Font kullanılmalıdır.
//Glcd_Write_Text(‘’text’’, x_pozisyonu, sayfa, renk);
Glcd_Write_Text(‘’MikroC’’, 8, 5, 1);
Glcd_Image
Grafik LCD ekranda bitmap resim gösterme işini gerçekleştiren fonksiyondur.
Gösterilecek resmin 128×64 piksel olması gerekir.
//Glcd_Image(my_image)




Glcd_PartialImage
Ekranın belirlenen bir lokasyonunda, resmin belirli bir kısmını gösteren fonksiyondur.
//Glcd_PartialImage(x_sol, y_yukarı, genişlik, yükseklik, orijinal_genişlik, orijinal_yükseklik, resim);
Glcd_PartialImage(10,12,10,15,16,32,image);

Son Yorumlar