Trudyo Geliştirme Kartı İle 2×16 LCD Kullanımı – mikroC
Merhaba arkadaşlar, bu yazımızda Trudyo Geliştirme Kartı ile 2×16 Karakter LCD ekranların kullanımından bahsedeceğiz.
LCD Ekranlar Hakkında Kısa Bir Bilgi
Bir kısaltma olan LCD, İngilizce’de Liquid Crystal Display yani Sıvı Kristal Ekran anlamına gelmektedir. LCD, elektrikle kutuplanan sıvının ışığı tek fazlı geçirmesi ve önüne eklenen bir kutuplanma filtresi ile gözle görülebilmesi ilkesine dayanan bir görüntü teknolojisidir. Bir LCD ekranın pinlerini ve bu pinlerin fonksiyonlarını aşağıdaki tablo üzerinden inceleyebilirsiniz.
Pin No | İsim | Açıklama |
1 | VSS | GND Bağlantı Pini |
2 | VDD | +5V Bağlantı Pini |
3 | VEE | Kontrast Ayarlama Pini |
4 | RS | Register Select Pini (0:Command 1:Data) |
5 | R/W | Okuma/Yazma Seçim Pini (0:Yazma 1:Okuma) |
6 | E | Enable Pini |
7-14 | D0-D7 | Data Bitleri Bağlantı Pinleri |
15 | A | LCD Arka Işık +5V Bağlantı Pini |
16 | K | LCD Arka Işık GND Bağlantı Pini |
LCD ve Trudyo Geliştirme Kartı Bağlantısı
Yukarıdaki görsellerde açıkladığı üzere, 128×64 Grafik LCD ekran Trudyo Geliştirme Kartı’nın B ve D Portlarına bağlanmıştır. Ayrıca haricen eklenen 10K Ohm değerinde bir Potansiyometre ile, Grafik LCD ekranın kontrast ayarı yapılabilmektedir.
Bu Uygulamada Kullanılan Malzemeler
Trudyo Geliştirme Kartı
Başlamadan Önce
Trudyo Konfigürasyon Ayarları
Trudyo Geliştirme Kartı ile programlama yapabilmek için kartınızın konfigürasyon ayarlarını yapmanız gerekmektedir. Gerekli konfigürasyon ayarlarını yapmak için “Trudyo Konfigürasyon Ayarları” yazımızı okuyabilirsiniz.
2x16 LCD Uygulama Kodları
// Connections
sbit LED at LATA4_bit;
// LCD module connections
sbit LCD_RS at LATD0_bit;
sbit LCD_EN at LATD1_bit;
sbit LCD_D4 at LATD2_bit;
sbit LCD_D5 at LATD3_bit;
sbit LCD_D6 at LATD4_bit;
sbit LCD_D7 at LATD5_bit;
sbit LCD_RS_Direction at TRISD0_bit;
sbit LCD_EN_Direction at TRISD1_bit;
sbit LCD_D7_Direction at TRISD2_bit;
sbit LCD_D6_Direction at TRISD3_bit;
sbit LCD_D5_Direction at TRISD4_bit;
sbit LCD_D4_Direction at TRISD5_bit;
void main() {
unsigned short i;
TRISA=0b00000000;// [][][][LED][][][][]
TRISB=0b00000000;// [][][][][][][][]
TRISC=0b00000000;// [][][][][][][][]
TRISD=0b00000000;// [][][LCD_D7][LCD_D6][LCD_D5][LCD_D4][LCD_EN][LCD_RS]
TRISE=0b00000000;// [][][][][][][][]
LATA=0x00;
LATB=0x00;
LATC=0x00;
LATD=0x00;
LATE=0x00;
Lcd_Init();
Lcd_Cmd(_LCD_CURSOR_OFF);
Lcd_Cmd(_LCD_CLEAR);
while(1){
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1,6,"TRUDYO");
Lcd_Out(2,2,"MAKER BLOG IS");
Lcd_Out_CP("!");
delay_ms(2000);
Lcd_Cmd(_LCD_CLEAR);
Lcd_Chr(2,4,'L'); delay_ms(150);
Lcd_Chr_Cp('O'); delay_ms(150);
Lcd_Chr_Cp('A'); delay_ms(150);
Lcd_Chr_Cp('D'); delay_ms(150);
Lcd_Chr_Cp('I'); delay_ms(150);
Lcd_Chr_Cp('N'); delay_ms(150);
Lcd_Chr_Cp('G'); delay_ms(150);
Lcd_Chr_Cp('.'); delay_ms(150);
Lcd_Chr_Cp('.'); delay_ms(150);
Lcd_Chr_Cp('.'); delay_ms(150);
delay_ms(2000);
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out(1,1,"WELCOME TO");
Lcd_Out(2,1,"MAKER BLOG");
delay_ms(500);
while(1){
for(i=0;i<6;i++){
Lcd_Cmd(_LCD_SHIFT_RIGHT);
delay_ms(500);
}
for(i=0;i<6;i++){
Lcd_Cmd(_LCD_SHIFT_LEFT);
delay_ms(500);
}
}
}
}
2x16 LCD Bağlantı Kodları
2×16 Karakter LCD’yi kullanabilmek için program kodumuzun en başında bulunması gereken bağlantı tanımlamaları aşağıdaki gibi olmalıdır.
sbit LCD_RS at LATD0_bit;
sbit LCD_EN at LATD1_bit;
sbit LCD_D4 at LATD2_bit;
sbit LCD_D5 at LATD3_bit;
sbit LCD_D6 at LATD4_bit;
sbit LCD_D7 at LATD5_bit;
sbit LCD_RS_Direction at TRISD0_bit;
sbit LCD_EN_Direction at TRISD1_bit;
sbit LCD_D4_Direction at TRISD2_bit;
sbit LCD_D5_Direction at TRISD3_bit;
sbit LCD_D6_Direction at TRISD4_bit;
sbit LCD_D7_Direction at TRISD5_bit;
2x16 LCD Fonksiyonları
Lcd_Init Fonksiyonu
void Lcd_Init();
LCD modülünü başlatır. Pin tanımlamaları yapıldıktan sonra ana fonksiyonda ekranı kullanmaya başlamadan önce kullanılmalıdır.
Lcd_Out Fonksiyonu
void Lcd_Out(char row, char column, char *text);
Belirtilen konumdan başlayarak metni LCD’ye yazdırır. Hem dize değişkenleri hem de değişmez değerler metin olarak iletilebilir.
Parametreler: row:
Başlangıç pozisyonu satır numarası. column:
Başlangıç pozisyonu sütun numarası. text:
Yazılacak metin.
Lcd_Out_Cp Fonksiyonu
void Lcd_Out_Cp(char *text);
Metni mevcut imleç konumunda LCD’ye yazdırır. Hem dize değişkenleri hem de değişmez değerler metin olarak iletilebilir.
Parametreler: text:
Yazılacak metin.
Lcd_Chr Fonksiyonu
void Lcd_Chr(char row, char column, char out_char);
Karakteri belirtilen konumda LCD‘ye yazdırır. Hem değişkenler hem de değişmezler bir karakter olarak iletilebilir.
Parametreler: row:
Başlangıç pozisyonu satır numarası. column:
Başlangıç pozisyonu sütun numarası. text:
Yazılacak metin.
Lcd_Chr_Cp Fonksiyonu
void Lcd_Chr_Cp(char out_char);
Karakteri mevcut imleç konumunda LCD’ye yazdırır. Hem değişkenler hem de değişmezler bir karakter olarak iletilebilir.
Parametreler: out_char:
Yazılacak karakter.
Lcd_Cmd Fonksiyonu
void Lcd_Cmd(char out_char);
LCD‘ye komut gönderir.
Parametreler: out_char:
Gönderilecek komut.
Kullanılabilir Komutlar:
LCD Komutu | Kullanım Amacı |
---|---|
_LCD_FIRST_ROW | İmleci 1. satıra taşı. |
_LCD_SECOND_ROW | İmleci 2. satıra taşı. |
_LCD_THIRD_ROW | İmleci 3. satıra taşı. |
_LCD_FOURTH_ROW | İmleci 4. satıra taşı. |
_LCD_CLEAR | Ekranı temizle. |
_LCD_RETURN_HOME | İmleci başlangıç konumuna getirir, kaydırılmış bir ekranı orijinal konumuna geri döndürür. Ekran RAM verileri etkilenmez. |
_LCD_CURSOR_OFF | İmleci kapat. |
_LCD_UNDERLINE_ON | İmlecin altını çiz. |
_LCD_BLINK_CURSOR_ON | Yanıp sönen imleci aç. |
_LCD_MOVE_CURSOR_LEFT | Ekran RAM verisini değiştirmeden imleci sola hareket ettirin. |
_LCD_MOVE_CURSOR_RIGHT | Ekran RAM verisini değiştirmeden imleci sağa hareket ettirin. |
_LCD_TURN_ON | LCD ekranı aç. |
_LCD_TURN_OFF | LCD ekranı kapat. |
_LCD_SHIFT_LEFT | Ekran RAM verisini değiştirmeden ekranı sola kaydır. |
_LCD_SHIFT_RIGHT | Ekran RAM verisini değiştirmeden ekranı sağa kaydır. |
Uygulamaya ait dosyaları buraya tıklayarak indirebilirsiniz. Merak ettiğiniz ve aklınıza takılan soruları aşağıda 👇 yorum olarak bize iletebilirsiniz. İyi çalışmalar. 🙂 #geliştirmeyebaşla
Yorum yapmak için giriş yapmalısınız.