Liquid Crystal Display (LCD) adalah sebuah peralatan elektronik yang berfungsi untuk menampilkan output sebuah sistem dengan cara membentuk suatu citra atau gambaran pada sebuah layar. Secara garis besar komponen penyusun LCD terdiri dari kristal cair (liquid crystal) yang diapit oleh 2 buah elektroda transparan dan 2 buah filter polarisasi (polarizing filter).
Gambar Penampang komponen penyusun LCD
Keterangan:
1. Film dengan polarizing filter vertical untuk memolarisasi cahaya yang masuk.
2. Glass substrate yang berisi kolom-kolom elektroda Indium tin oxide (ITO).
3. Twisted nematic liquid crystal (kristal cair dengan susunan terpilin).
4. Glass substrate yang berisi baris-baris elektroda Indium tin oxide (ITO).
5. Film dengan polarizing filter horizontal untuk memolarisasi cahaya yang masuk.
6. Reflektor cahaya untuk memantulkan cahaya yang masuk LCD kembali ke mata pengamat.
Sebuah citra dibentuk dengan mengombinasikan kondisi nyala dan mati dari pixel-pixel yang menyusun layar sebuah LCD. Pada umumnya LCD yang dijual di pasaran sudah memiliki integrated circuit tersendiri sehingga para pemakai dapat mengontrol tampilan LCD dengan mudah dengan menggunakan mikrokontroler untuk mengirimkan data melalui pin-pin input yang sudah tersedia.
Gambar Contoh citra yang terbentuk pada layar LCD
LCD yang ada dipasaran dikategorikan menurut jumlah baris yang dapat digunakan pada LCD yaitu 1 baris , 2 baris , dan 4 baris yang dapat digunakan hingga 80 karakter. Umumnya LCD yang digunakan adalah LCD dengan 1 controller yang memiliki 14 pin. Deskripsi pin dapat dilihat pada gambar dibawah ini
Gambar Konfigurasi pin LCD
Keterangan pin:
1. VSS :
digunakan untuk menyalakan LCD
(ground)
2. VDD : digunakan untuk menyalakan LCD ( +5 V )
3. VEE : digunakan untuk mengatur tingkat contrast pada
LCD
4. RS : menentukan
mode yang akan digunakan (0 = instruction
input , 1 =
data input)
5. R/W : menentukan
mode yang akan digunakan (0 = write , 1 = read)
6. EN : enable ( untuk clock )
7. D0 : data 0
8. D1 : data 1
9. D2 : data 2
10. D3 : data 3
11. D4 : data 4
12. D5 : data 5
13. D6 : data 6
14. D7 : data 7 ( MSB )
1. Melakukan proses clear display
RS
|
R/W
|
DB7
|
DB6
|
DB5
|
DB4
|
DB3
|
DB2
|
DB1
|
DB0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
RS
|
R/W
|
DB7
|
DB6
|
DB5
|
DB4
|
DB3
|
DB2
|
DB1
|
DB0
|
0
|
0
|
0
|
0
|
1
|
A
|
B
|
C
|
0
|
0
|
• Jika :
o A = 1 / 0 ( 1 = 8 bit , 0 = 4 bit )o B = 1 / 0 ( 1 = 2 baris , 0 = 1 baris )
o C = 1 / 0 ( 1 = 5x10 dot , 0 = 5x7 dot )
3. Mengontrol display on / off
RS
|
R/W
|
DB7
|
DB6
|
DB5
|
DB4
|
DB3
|
DB2
|
DB1
|
DB0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
A
|
B
|
C
|
o A = 1 / 0 ( 1 = display on , 0 = display off )
o B = 1 / 0 ( 1 = cursor on , 0 = cursor off )
o C = 1 / 0 ( 1 = blinking on , 0 = blinking off )
4. Entry mode set
RS
|
R/W
|
DB7
|
DB6
|
DB5
|
DB4
|
DB3
|
DB2
|
DB1
|
DB0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
A
|
B
|
o A = 1 / 0 ( 1 = increment , 0 = decrement )
o B = 1 / 0 ( 1 = shift , 0 = no shift )
Berikut ini adalah contoh program untuk melakukan proses init menggunakan C:
#define LCD_data P2
#define LCD_D7 P2_7
#define LCD_rs P1_0
#define LCD_rw P1_1
#define LCD_en P1_2
void LCD_init()
{
LCD_data = 0x38; //Function set: 2 line, 8-bit,
5x7 dots
LCD_rs = 0; //Selected
command register
LCD_rw = 0; //We are writing in data
register
LCD_en
|
= 1;
|
//Enable
H->L
|
LCD_en
|
= 0;
|
LCD_busy(); //Wait
for LCD to process the
command
LCD_data = 0x0F; //Display on, Curson blinking
command
LCD_rs = 0; //Selected command register
LCD_rw = 0; //We are writing in data register
LCD_en = 1; //Enable H->L
LCD_en = 0;
LCD_busy(); //Wait for LCD to process the
command
LCD_data = 0x01; //Clear LCD
LCD_rs = 0; //Selected
command register
LCD_rw = 0; //We are writing in data
register
LCD_en = 1; //Enable
H->L
LCD_en = 0;
LCD_busy(); //Wait for LCD to
process the command
LCD_data = 0x06; //Entry mode, auto
increment with no shift
LCD_rs = 0; //Selected
command register
LCD_rw =
0; //We
are writing in data register
LCD_en = 1; //Enable
H->L
LCD_busy();