Anda di halaman 1dari 19

Mikroprosesor

BAB 11
LIQUID CRYSTAL DISPLAY (LCD)

11.1 Jenis Perangkat Display Digital


Interaksi antara manusia dengan mesin akan dapat berjalan lancar
seandainya masing-masing memiliki media untuk input dan output. Pada
manusia normal, secara umum telah dianugerahi dengan panca indera
(input) dan mulut sebagai alat untuk berbicara (output), pada saat
manusia lain berbicara (output), maka lawan bicaranya mampu
mendengar (input). Sedangkan mikroprosesor ataupun mesin yang
berbasis mikroprosesor merupakan hasil kreasi manusia, oleh karena itu
harus direkayasa sedemikian rupa sehingga memudahkan teknis
komunikasi antara user (manusia) dengan mesin.
Sebuah mikroprosesor dapat saja diperlengkapi beberapa buah
tombol atau panel keyboard sebagai perangkat input bagi mikroprosesor,
dan sebaliknya mikroprosesor setidaknya juga harus memiliki perangkat
output agar user (manusia) mengerti proses apa yang sedang atau telah
dilakukan oleh mikroprosesor.
Salah satu perangkat output yang paling sederhana adalah lampu
LED baik dalam bentuk jajaran lampu atau dalam bentuk 7segment. Jika
lampu LED hanya digunakan sebagai indikator saja, maka cukup
memerlukan beberapa LED saja. Namun informasi yang mampu
ditampilkan oleh indikator memang bersifat terbatas, dalam hal ini jika
indikator berupa lampu, maka hanya ada 2 informasi saja yang mampu
diberikan, yaitu ON (nyala) atau OFF (padam).
Display menggunakan LED hanya sesuai untuk sistem yang
sederhana, untuk jenis informasi yang lebih komplek dan berkualitas
maka diperlukan juga jenis perangkat lain misalnya panel LCD. Contoh
panel LCD yang compact dengan sistem berbasis mikroprosesor
misalnya LCD alfanumerik dan grafik. Gambar 11.1 memperlihatkan
contoh fisik perangkat LCD alfanumerik berformat 16 x 2.

Putut Son Maria Bab 11 Halaman 1


Mikroprosesor

Gambar 11.1 Foto Fisik LCD 16 x 2

11.2 Perbandingan Perangkat Display


Dengan beragamnya jenis perangkat display, tentu harus
disikapi secara bijak penggunaannya agar sistem memiliki efisiensi yang
optimal. Tabel 11.1 menunjukkan perbandingan keuntungan dan
kekurangan dari panel penampil 7segment dan LCD.

Tabel 11.1 Keunggulan dan Kelemahan Display 7segment dan LCD

DEVICE Kelemahan Keungulan


(PIRANTI
7segmen 1. Tidak ekonomis 1. Pemrograman relatif
jika pesan yang mudah
ditampilkan 2. Harga relatif murah
panjang
2. Karakter hanya
sebatas angka dan
alphanumerik
LCD 1. Harus dengan 1. Dapat menampilkan
pemrograman karakter yang panjang &
2. Pemrograman bervariasi
relatif komplek 2. Dapat dibuat animasi
3. Relatif mahal 3. Ekonomis untuk
menampilkan pesan yang
panjang

Putut Son Maria Bab 11 Halaman 2


Mikroprosesor

Dengan melihat kepada tabel 11.1, dapat kita simpulkan bahwa setiap
sistem tentu memiliki keunggulan dan kelemahan masing-masing.
Sebagai perancang sistem berbasis mikroprosesor, perbandingan seperti
yang diperlihatkan pada tabel 11.1 sangat penting demi mencapai
efisiensi yang tinggi dari sisi biaya, kinerja dan implementasinya. Sesuai
dengan apa yang telah disinggung di atas, bahwa semestinya penentuan
jenis perangkat display perlu disesuaikan dengan kebutuhan jenis
informasi yang akan ditampilkan.
11.3 Pengkabelan Mikroprosesor Dengan LCD
Untuk membuat sambungan kabel antara mikroprosesor dengan
LCD harus paham spesifikasi fungsi terminal pada panel LCD. Contoh
LCD standar (M1632) seperti yang diperlihatkan pada gambar 11.1
memiliki 16 pin sambungan dengan perincian seperti pada tabel 11.2.
Tabel 11.2 Fungsi Pin LCD M1632
No Nama Fungsi
1 Vss GND
2 Vcc + 5 Volt
3 Vee Contrast
4 RS Register Select
0 = Register Instruksi
1 = Register Data
5 �
R/𝑊𝑊 Read/Write
6 E Enable
7 D0 Data Bus
8 D1
9 D2
10 D3
11 D4
12 D5
13 D6
14 D7
15 VBL+ 4 – 4.2 Volt
16 VBL- GND

Putut Son Maria Bab 11 Halaman 3


Mikroprosesor

Nomor urut pin pada LCD dimulai dari kiri ke kanan, seperti
ditunjukkan pada gambar 11.3.

Gambar 11.3 Urutan Pin LCD dan Fungsinya

Dari 16 pin yang ada, sebenarnya cukup menggunakan 10 pin saja


untuk membuat sambungan antara mikroprosesor dengan LCD. 10 pin
tersebut adalah pin 4, 6, 7 sampai 14. Penjelasannya seperti berikut :
- Pin 1,2,3  adalah pin catu daya dan kontras, untuk kontras
dapat menggunakan trimpot jika diinginkan kontrasnya dapat
diatur-atur, jadi pin 1,2,3 murni sambungan hardware.
- Pin 5  adalah fungsi read/write. Proses read dari LCD jarang
dilakukan karena pemrogramannya lebih rumit, tetapi proses
read dapat menunjang tampilan yang real time. Namun karena
mempertimbangkan bahwa LCD hanya berfungsi sebagai
perangkat display, maka banyak programmer yang memilih
teknik tunda waktu daripada melakukan proses membaca dari
LCD, efeknya adalah pin R/W selalu diset ke Logika 0 atau
GND secara permanen.
- Pin 15 dan 16  adalah pencahayaan pada latar belakang layar
LCD (backlight). Pin ini juga biasanya diset secara permanen
(hardware)

Putut Son Maria Bab 11 Halaman 4


Mikroprosesor

Pin yang harus tersambung dengan mikroprosesor adalah sebagai


berikut :
- RS (pin no 4), yaitu untuk pemilihan register pada LCD. Panel
LCD sejatinya memiliki mikroprosesor juga di dalamnya, oleh
karena itu komunikasi antara mikroprosesor di luar LCD
dengan mikroprosesor LCD dikemas dalam protokol yang
sederhana dengan memberikan pilihan register instruksi atau
data.
- Enable (pin no 6), adalah pin kontrol untuk aktivasi validasi
data yang masuk ke LCD via data bus. Pin enable pada LCD
mirip dengan chip enable milik ROM atau chip select milik
RAM. Pin enable pada LCD bersifat active high.
- Data Bus (pin no 7 sampai 14), adalah jalur data yang
digunakan untuk dilewati data dari mikroprosesor ke LCD atau
sebaliknya.
Catatan : semua pin pada LCD adalah input, kecuali jalur data bus
berfungsi ganda (input/output)
Contoh pengkabelan dari mikroprosesor diperlihatkan seperti gambar
11.4 berikut :

Gambar 11.4 Port 1 dan Port 3 Digunakan Sebagai Driver LCD


Dari gambar 11.4 memperlihatkan penggunaan Port 1 digunakan sebagai
jalur data bus untuk LCD, sedangkan untuk kontrol Enable dan RS
digunakan 2 bit dari Port 3.

Putut Son Maria Bab 11 Halaman 5


Mikroprosesor

11.4 Protokol Inisialisasi LCD


Seperti halnya PPI 8255, LCD juga perlu diinisialisasi.
Perbedaannya adalah jika PPI diinisialisasi untuk menentukan fungsi
Port-nya, maka pada LCD diinisialisasi untuk menentukan fungsi setting
tampilannya, model tampilan dan format transfer datanya. Tabel
inisialisasi mengacu seperti pada tabel 11.3 berikut.
Tabel 11.3 Fungsi Inisialisasi LCD

Urutan inisialisasi LCD sebagai berikut :


• Clear Display (01 Hex)  mengosongkan tampilan layar
LCD
• Function Set (3C Hex)  pengaturan lebar data
• Diplay ON (0C Hex)  memunculkan tulisan, kursor
dan blinking
• Entry Mode (06 Hex)  Arah pergeseran kursor dan
tulisan

Putut Son Maria Bab 11 Halaman 6


Mikroprosesor

11.5 Penulisan Data Inisialisasi dan Data Karakter Ke LCD


Sesuai dengan tabel 11.3 di atas, urutan inisialisasi LCD harus
ditujukan ke register instruksi. Cara untuk mengakses register instruksi
adalah dengan mensetting pin RS sehingga berlogika 0. Teknis
penulisan data insialisasi diperlihatkan seperti gambar 11.5.

Gambar 11.5 Diagram Waktu Transfer Data


Dari Mikroprosesor Ke LCD
Setiap data inisialisasi atau data karakter yang akan dituliskan ke LCD
harus mengikuti diagram waktu seperti pada gambar 11.5 di atas.
Sebagai contoh misalnya untuk inisialisasi, untuk mengirimkan data
biner kode Clear Display (01 Hex), maka prosedurnya adalah :
1. Register Select harus di-setting LOW
2. Data yang akan dituliskan harus tersedia pada jalur data bus
3. Memberikan pulsa HIGH sesaat pada pin Enable
Sedangkan untuk menuliskan data karakter yang akan ditampilkan maka
mengikuti prosedur sebagai berikut :
1. Register Select harus di-setting HIGH
2. Data yang akan dituliskan harus tersedia pada jalur data bus
3. Memberikan pulsa HIGH sesaat pada pin Enable
Contoh pemrograman untuk inisialisasi LCD dan penulisan data
karakter ke LCD diperlihatkan pada pseudo code berikut :

Putut Son Maria Bab 11 Halaman 7


Mikroprosesor

1 $MOD51
2
3 PORT_DATA EQU P1
4 EN EQU P3.0
5 RS EQU P3.1
6
7 ORG 0H
8 CALL INIT_LCD
9 MOV P1, #'L'
10 CALL WRITE_DATA
11 SJMP $
12
13 ;=====SUB ROUTINE
14 WRITE_DATA:
15 SETB RS
16 SETB EN
17 CALL S_DELAY
18 CLR EN
19 RET
20
21
22 INIT_LCD:
23 CLR RS
24 MOV P1, #01H
25 SETB EN
26 CALL S_DELAY
27 CLR EN
28
29 MOV P1, #3CH

Putut Son Maria Bab 11 Halaman 8


Mikroprosesor

30 SETB EN
31 CALL S_DELAY
32 CLR EN
33
34 MOV P1, #0CH
35 SETB EN
36 CALL S_DELAY
37 CLR EN
38
39 MOV P1, #06H
40 SETB EN
41 CALL S_DELAY
42 CLR EN
43 RET
44
45 S_DELAY:
46 MOV R7,#0FFH
47 DJNZ R7,$
48 DJNZ R7,$
49 RET
50
51 END

Keterangan program :
Baris 3,4,5  Perhatikan penggunaan directive EQU disini tujuannya
adalah untuk memudahkan (membantu mengingat) nama port atau posisi
bit pada port yang spesifik digunakan untuk fungsi khusus. Dalam hal
ini Port P1 diberi nama alias yaitu PORT_DATA, Bit 0 dari Port 3
diberi nama alias EN dan Bit 1 dari Port 3 diberi nama alias RS.
Baris 7  Memanggil sub rutin INIT_LCD (Baris 22).

Putut Son Maria Bab 11 Halaman 9


Mikroprosesor

Sub rutin INIT_LCD berisi daftar data inisialisasi yang harus dituliskan
ke register instruksi pada LCD. Cara pelaksanaannya adalah :
- Pin RS di-setting LOW (Baris 23)
- Data CLEAR DISPLAY (01 Hex) disiapkan pada data bus
(Baris 24)
- Pin EN di-setting HIGH (Baris 25)
- Memberikan tunda waktu sesaat (Baris 26)  Baris 26 ini
sebenarnya memanggil sub rutin S_DELAY (Baris 45) dimana
di dalam sub rutin ini sebenarnya hanya melakukan proses
berulang-ulang tanpa impact ke register lain. Sementara
mikroprosesor melakukan proses yang berulang-ulang tersebut
maka logika yang muncul pada port tetap apa adanya sebelum
ada data baru yang dituliskan.
- Pin EN di-setting LOW (Baris 27)
Perhatikan bahwa di dalam sub rutin INIT_LCD, data yang dituliskan
bergantian dan berurutan mulai dari data Clear Display (01 Hex),
Function Set (3C Hex), Display ON (0C Hex) dan Entry Mode (06 Hex).
Baris 9  Mempersiapkan data karakter pada data bus LCD (Port P1).
Karakter yang akan ditulis misalnya karakter ‘L’.
Baris 10  Memanggil sub rutin WRITE DATA. Pada sub rutin ini
sebenarnya merupakan implementasi dari prosedur penulisan data
karakter yang sudah dibahas sebelumnya. Cara pelaknsanaannya sebagai
berikut :
- Register RS harus di-setting HIGH (Baris 15)
- Pin EN di-setting HIGH (Baris 16)
- Memberikan tunda waktu sesaat (Baris 45)  memanggil sub
rutin S_DELAY.
- Pin EN di-setting LOW (Baris 18)
- Kembali ke program utama (instruksi setelah Baris 10)
Baris 11  mikroprosesor melompat ke alamat yang sama (jalan di
tempat)
Hasil program di atas diperlihatkan seperti pada gambar 11.6 berikut :

Putut Son Maria Bab 11 Halaman 10


Mikroprosesor

Gambar 11.6 Menampilkan Huruf ‘L’ Ke LCD

LCD menyediakan banyak space dan fitur untuk menampilkan


informasi, program seperti contoh program di atas yang hanya
menampilkan satu karakter saja tentu bukanlah tujuan utama memilih
menggunakan LCD. Informasi yang ditampilkan ke LCD memang
sebaiknya bersifat variatif dan massive misalnya seperti contoh program
berikut :

1 $MOD51
2
3 PORT_DATA EQU P1
4 EN EQU P3.0
5 RS EQU P3.1
6
7 ORG 0H
8 CALL INIT_LCD
9 MOV P1, #'L'
10 CALL WRITE_DATA
11
12 MOV P1, #'C'
13 CALL WRITE_DATA
14

Putut Son Maria Bab 11 Halaman 11


Mikroprosesor

15 MOV P1, #'D'


16 CALL WRITE_DATA
17
18 MOV P1, #'-'
19 CALL WRITE_DATA
20
21 MOV P1, #'D'
22 CALL WRITE_DATA
23
24 MOV P1, #'i'
25 CALL WRITE_DATA
26
27 MOV P1, #'s'
28 CALL WRITE_DATA
29
30 MOV P1, #'p'
31 CALL WRITE_DATA
32
33 MOV P1, #'l'
34 CALL WRITE_DATA
35
36 MOV P1, #'a'
37 CALL WRITE_DATA
38
39 MOV P1, #'y'
40 CALL WRITE_DATA
41 SJMP $
42
43 ;=====SUB ROUTINE
44 WRITE_DATA:

Putut Son Maria Bab 11 Halaman 12


Mikroprosesor

45 SETB RS
46 SETB EN
47 CALL S_DELAY
48 CLR EN
49 RET
50
51
52 INIT_LCD:
53 CLR RS
54 MOV P1, #01H
55 SETB EN
56 CALL S_DELAY
57 CLR EN
58
59 MOV P1, #3CH
60 SETB EN
61 CALL S_DELAY
62 CLR EN
63
64 MOV P1, #0CH
65 SETB EN
66 CALL S_DELAY
67 CLR EN
68
69 MOV P1, #06H
70 SETB EN
71 CALL S_DELAY
72 CLR EN
73 RET
74

Putut Son Maria Bab 11 Halaman 13


Mikroprosesor

75 S_DELAY:
76 MOV R7,#0FFH
77 DJNZ R7,$
78 DJNZ R7,$
79 RET
80
81 END

Hasil tampilan dari pseudo code di atas diperlihatkan seperti pada


gambar 11.7. LCD yang berlayar sempit cenderung bersifat alfanumerik,
oleh karena itu jenis karakter yang dapat ditampilkan hanya berupa
huruf, angka dan simbol-simbol tertentu. Sebenarnya programmer dapat
membuat karakter sendiri sesuai yang diinginkan namun hal itu
mengakibatkan seorang programmer harus menulis kode program yang
lebih panjang jika dibandingkan dengan menggunakan karakter default
yang memang sudah ada (tersedia) dalam LCD.

Gambar 11.7 Tampilan Kombinasi Huruf dan Simbol Pada LCD

11.6 Pengaturan Tampilan Pada LCD


LCD menyediakan banyak fitur untuk pengaturan tampilan pada
layar seperti misalnya : pengaturan posisi karakter pada layar,
pergeseran tampilan di layar, munculnya kursor dan kedipan kursor.
Diantara sekian fitur tersebut tidak semuanya sering digunakan, salah

Putut Son Maria Bab 11 Halaman 14


Mikroprosesor

satu yang sering digunakan oleh banyak programmer untuk keperluan


tampilan ke LCD misalnya adalah pengaturan posisi karakter pada layar
LCD (jenis instruksi SET DDRAM ADDRESS). Implementasinya
dijelaskan pada pembahasan berikut :
Alamat memori display pada LCD M1632 diperlihatkan seperti
pada gambar 11.8 berikut :

Gambar 11.8 Alamat memori Display Pada LCD

Alamat memori display di atas berkorelasi dengan posisi karakter


pada layar LCD. Untuk LCD standar M1632 di atas spesifikasinya
adalah 16 x 2 (16 kolom dan 2 baris), maka baris 1 kolom 1 (kiri-atas
pada layar LCD) alamat memorinya adalah 00 Hex. LCD secara default
selalu memulai penulisannya mulai dari alamat 00 Hex tersebut dan
increment. Memori pada setiap baris LCD sebenarnya tersedia sebanyak
32 lokasi, tetapi yang ditampilkan hanya sebanyak 16 karakter. Untuk
menampilkan karakter pada lokasi yang lebih tinggi, maka dapat
digunakan instruksi pergeseran seperti petunjuk pada tabel 11.3
Misalnya dari tampilan LCD yang diperlihatkan gambar 11.7 di atas
tulisan ‘LCD-Display’ ingin ditampilkan pada baris ke-1 kolom ke- 5
agar posisi tulisannya rata kanan, maka dengan menggunakan referensi
pada gambar 11.8 di atas kita mengetahui bahwa alamatnya mulai dari
05 Hex.
Menentukan posisi awal dari karakter yang akan ditampilkan
termasuk dalam jenis instruksi SET DDRAM ADDRESS. Pada tabel
11.3 menunjukkan bahwa prosedur untuk penentuan posisi awal harus
memenuhi kondisi berikut :
- RS harus di-setting LOW
- Bit ke-7 dari data instruksi harus berlogika HIGH (1)
- Alamat posisi pada layar LCD menempati bit ke-6 sampai bit
ke-0 pada data instruksi.

Putut Son Maria Bab 11 Halaman 15


Mikroprosesor

Berdasarkan format data instruksi di atas, maka data untuk men-setting


agar tulisan mulai ditampilkan baris ke-2 kolom ke-5 adalah :
1 0 0 0 0 1 0 1
Default ADDRESS (05 Hex)

Jadi data instruksi untuk men-setting agar tulisan mulai ditampilkan


baris ke-2 kolom ke-5 adalah 85 Hex. (Bit ke-7 nilai default-nya selalu
1)
Data instruksi harus ditulis terlebih dahulu sebelum menulis data untuk
karakter. Contoh program berikut adalah implementasi untuk maksud
seperti yang telah dibahas di atas.

1 $MOD51
2
3 PORT_DATA EQU P1
4 EN
5 RS
6
7 ORG 0H
8 CALL INIT_LCD
9
10 MOV PORT_DATA, #085H
11 CALL WRITE_INS
12
13 MOV P1, #'L'
14 CALL WRITE_CHAR
15
16 MOV P1, #'C'
17 CALL WRITE_CHAR
18
19 MOV P1, #'D'
20 CALL WRITE_CHAR

Putut Son Maria Bab 11 Halaman 16


Mikroprosesor

21
22 MOV P1, #'-'
23 CALL WRITE_CHAR
24
25 MOV P1, #'D'
26 CALL WRITE_CHAR
27
28 MOV P1, #'i'
29 CALL WRITE_CHAR
30
31 MOV P1, #'s'
32 CALL WRITE_CHAR
33
34 MOV P1, #'p'
35 CALL WRITE_CHAR
36
37 MOV P1, #'l'
38 CALL WRITE_CHAR
39
40 MOV P1, #'a'
41 CALL WRITE_CHAR
42
43 MOV P1, #'y'
44 CALL WRITE_CHAR
45 SJMP $
46
47 ;===SUB ROUTINE
48 WRITE_CHAR:
49 SETB RS
50 SETB EN

Putut Son Maria Bab 11 Halaman 17


Mikroprosesor

51 CALL S_DELAY
52 CLR EN
53 RET
54
55 WRITE_INS:
56 CLR RS
57 SETB EN
58 CALL S_DELAY
59 CLR EN
60 RET
61
62 INIT_LCD:
63 CLR RS
64 MOV P1, #01H
65 SETB EN
66 CALL S_DELAY
67 CLR EN
68
69 MOV P1, #3CH
70 SETB EN
71 CALL S_DELAY
72 CLR EN
73
74 MOV P1, #0CH
75 SETB EN
76 CALL S_DELAY
77 CLR EN
78
79 MOV P1, #06H
80 SETB EN

Putut Son Maria Bab 11 Halaman 18


Mikroprosesor

81 CALL S_DELAY
82 CLR EN
83 RET
84
85 S_DELAY:
86 MOV R7,#0FFH
87 DJNZ R7,$
88 DJNZ R7,$
89 RET
90
91 END

Hasil tampilan program di atas diperlihatkan seperti gambar 11.9 berikut


:

Gambar 11.9 Tampilan Setelah Pengaturan Posisi Awal Karakter


Perhatikan bahwa pada baris 10 dan 11 tertulis perintah untuk
melakukan penulisan data ke regiser instruksi. Data yang dituliskan
merupakan data 8 bit dimana bit ke-7 harus selalu di-setting 1, dan bit
ke-6 sampai bit ke- 0 adalah alamat posisi yang dituju untuk awal
tampilnya tulisan. Setelah setting alamat selesai, maka tahap berikutnya
adalah penulisan data karakter ke register data sebanyak 11 karakter.
Dengan contoh di atas, diharapkan pembaca dapat mengembangkan
sendiri program untuk menampilkan pesan ke LCD.

Putut Son Maria Bab 11 Halaman 19

Anda mungkin juga menyukai