05.03.2014
PIC18 LCD Kullanımı
E.POLAT
H.AYDİLEK
Mart 2014 Kırıkkale
LCD (Liquid Crystal Display) KULLANIMI
KxN LCD: Her bir satırda K adet karakter görüntülenebilir, toplam N adet satır vardır.
16x2 LCD, 1 satırda max. 16 karakter görüntülenebilir ve toplam 2 satır vardır.
E (Enable) : Yetkilendirme,
RW (Read/Write) :
Veri veya komut yazma için RW = 0,
Durum kodu (yapılan işlemin bittiği vs.) okuma için RW = 1 yapılmalı.
RS :
Komut (ekranı sil, ekranı sola kaydır vs.) göndermek için RS = 0 yapılmalı,
ASCII veri göndermek için RS = 1 yapılmalı.
Data (4 veya 8 bit) : Gönderilen veya alınan veri için kullanılan 4 veya 8 bit pinler.
(8 bit mod : Tek seferde 8 bit veri iletişimi, 4 bit mod : İki seferde 8 bit veri iletişimi)
E. POLAT
KKÜ-EE
2
1
05.03.2014
16x2 LCD
LCD belleğinde toplam 80 adet 1 karakterlik yer vardır.
E. POLAT
KKÜ-EE
3
Örnek Kullanım:
4
2
05.03.2014
5
C18 C LCD Komutları
(#include <xlcd.h> kullanınız)
(Ayrıntılı bilgi C:\MCC18\doc klasörü içinde bulunabilir)
6
3
05.03.2014
LCD Kullanımı için Tanımlı (Varsayılan) Pin Değerleri
7
Örnek:
#include <p18F452.h>
#include <xlcd.h>
#include <delays.h>
void DelayFor18TCY( void )
{
Nop(); Nop(); Nop();
Nop(); Nop(); Nop();
Nop(); Nop(); Nop();
Nop(); Nop(); Nop();
}
void DelayPORXLCD (void)
{
Delay1KTCYx(60); // Delay of 15ms
// Cycles = (TimeDelay * Fosc) / 4
// Cycles = (15ms * 16MHz) / 4
// Cycles = 60,000
return;
}
void DelayXLCD (void)
{
Delay1KTCYx(20); // Delay of 5ms
// Cycles = (TimeDelay * Fosc) / 4
// Cycles = (5ms * 16MHz) / 4
// Cycles = 20,000
return;
}
void main(voi d)
{
char dat[]={'d','e','n','e','m','e',' '};
char x[]={'1','8','5','7','3'};
OpenXLCD( FOUR_BIT & LINES_5X7 );
while( BusyXLCD() );
WriteCmdXLCD(0x01); // Kürsörü en başa getir
while( BusyXLCD() );
putcXLCD('A');
putcXLCD('B');
putsXLCD(dat);
putsXLCD(x);
WriteCmdXLCD(0xC0); // Alt satıra geç
putcXLCD('F');
WriteCmdXLCD(0x14); // Kürsörü bir sağa kaydır
while( BusyXLCD() );
putcXLCD('K');
}
8
4
Download

PIC18 LCD Kullanımı