Skip to main content

Dasar Pemrograman LCD

Pengenalan LCD

LCD atau Liquid Crystal Display adalah sebuah perangkat elektronik yang biasa digunakan untuk menampilkan simbol-simbol yang dimengerti oleh manusia. Salah satu LCD yang biasa digunakan ditunjukkan oleh gambar 1.

LCD 16x2
Gambar 1 - LCD 16 x 2

LCD 16x2 memiliki 16 kaki dan dapat menampilkan 32 simbol yang dibagi menjadi dua baris. Berikut adalah fungsi dari kaki-kaki LCD, yang dapat ditemukan pada datasheetnya.


Pin 1, 2 dan 3 berfungsi sebagai jalan masuknya catu daya dengan pin 1 ground, pin 2 Vdd dan pin 3 digunakan untuk mengatur tingkat kecerahan dari LCD. Pengaturan kecerahan dapat dilakukan dengan menggunakan resistor variabel yang kaki tengahnya dihubungkan dengan pin 3 seperti yang ditunjukkan oleh gambar 2.
Konfigurasi Pengaturan Kecerahan LCD
Gambar 2 - Konfigurasi Pengaturan Kecerahan LCD

Pin 4 berfungsi untuk memilih mode data atau command.
Pin 5 berfungsi untuk memilih mode membaca atau menulis.
Pin 6 berfungsi untuk memberikan sinyal enable.
Pin 7 - 14 berfungsi sebagai jalur data.
Pin 15 dan 16 berfunsi untuk mengaktifkan backlight pada LCD.

Saat diberi catu daya, LCD akan menampilkan kotak hitam pada semua kolom pada baris pertama seperti yang ditunjukkan oleh gambar 3.
Penampakan LCD saat Diberi Catu Daya
Gambar 3 - Penampakan LCD saat Diberi Catu Daya

Pemrograman LCD

Secara umum, pemrograman LCD dilakukan dengan 3 langkah, yaitu inisialisasi, pemasukkan instruksi dan pemasukkan data.

Inisialisasi

Inisialisasi dilakukan dengan memberikan pin RS logika LOW dan pin D0 - D7 dengan instruksi seperti yang terdapat pada datasheetnya. Pengeksekusian instrusi dilakukan dengan memberikan transisi turun (dari HIGH ke LOW) pada kaki enable. Instruksi-instruksi dasar yang diperlukan agar LCD dapat berfungsi adalah Function Set, Clear Display, Entry Mode dan Display On.
Function Set:
D2 diberi logika HIGH apabila jenis hurufnya berukuran 5x11 dan logika LOW apabila jenis hurufnya berukuran 5x8, D3 diberi logika HIGH jika jumlah baris dari LCD ada 2 dan LOW jika jumlah baris dari LCD ada 1, D4 diberi logika HIGH jika akan menggunakan operasi 8 bit data dan logika LOW jika akan menggunakan operasi 4 bit data.
Misalkan diinginkan jenis huruf berukuran 5x11, terdapat 2 baris, dan menggunakan 8 bit data maka logika pemrogramannya adalah sebagai berikut:

pin_Enable <= 1
pin_RS <= 0
delay 10 ms
data_lcd <= 0x3C (atau dalam bentuk biner 00111100)
delay 10 ms
pin_Enable <= 0
delay 10 ms
pin_Enable <=1
Clear Display:
Logika pemrogramannya adalah sebagai berikut:

pin_Enable <= 1
pin_RS <= 0
delay 10 ms
data_lcd <= 0x01 (atau dalam bentuk biner 00000001)
delay 10 ms
pin_Enable <= 0
delay 10 ms
pin_Enable <=1

Entry Mode:
D0 diberi logika HIGH apabila diingingkan adanya Display Shift. D1 diberi logika HIGH apabila diinginkan posisi kursor bergeser secara Increment. Logika pemrogramannya seperti pada pembahasan sebelumnya dengan data_lcd diganti dengan data yang diinginkan.

Display On:
D0 diberi logika HIGH apabila diinginkan adanya Blinking pada Cursor LCD. D1 diberi logika HIGH apabila diinginkan adanya Cursor pada LCD. D2 diberi logika HIGH untuk mengaktifkan Display. 

Pemasukan Instruksi
Secara sederhana, fungsi ini berfungsi untuk memesan tempat di mana simbol atau huruf ingin ditampilkan. Pada LCD 16x2, baris pertama memiliki alamat lokasi 0x8X dan baris ke dua memiliki alamat lokasi 0xCXdengan X adalah posisi kolom mulai dari 0 sampai dengan 15.
Logika pemrograman untuk memesan tempat ini dilakukan seperti sebelumnya.

pin_Enable <= 1
pin_RS <= 0
delay 10 ms
data_lcd <= 0x80 (misalkan diinginkan posisi berada di baris pertama kolom 0)
delay 10 ms
pin_Enable <= 0
delay 10 ms
pin_Enable <=1

Proses Memasukkan Data pada LCD
Data dimasukkan pada D7 - D0 yang didasarkan pada tabel ASCII. Untuk menghasilkan angka 0 misalnya, data diberikan nilai 0x30. Data tersebut agar dapat ditampilkan pada LCD, pin RS harus diberi logika HIGH. Berikut adalah logika pemrogramannya:

pin_Enable <= 1
pin_RS <= 1
delay 10 ms
data_lcd <= 0x30 (angka 0 pada tabel ASCII adalah bernilai 0x30)
delay 10 ms
pin_Enable <= 0
delay 10 ms
pin_Enable <=1

Dari ketiga proses yang sudah dijelaskan (Inisialisasi,Pemasukan Instruksi dan Pemasukan Data), proses Inisialisasi hanya perlu dilakukan sekali saja, setelah itu proses yang diulang-ulang adalah pemesanan tempat dan pemasukan data. Proses Clear LCD juga dapat dilakukan berulang-ulang sesuai dengan kebutuhan.

Comments