Kumpulan artikel tentang IT, Informatika, Tutorial VB, Elektro, Mikrokontroler serta Kumpulan Puisi & Cerpen

Jumat, April 03, 2009

Menampilkan karakter pada LCD 2 x 16 karakter

Modul LCD (Liquid Cristal Display) digunakan sebagai prototype dari sebuah informasi. Agar terhubung dengan mikrokontroler, LCD dilengkapi dengan 8 bit data bus (DB0-DB7) yang digunakan untuk menyalurkan data ASCII (American Standard Code for Information Interchange) maupun perintah pengatur kerjanya.
Modul LCD sendiri terdiri dari display dan chipset, dimana chipset ini sendiri sebenarnya merupakan mikrokontroler. Chipset ini berfungsi untuk mengatur tampilan informasi serta berfungsi mengatur komunikasi dengan mikrokontroler yang memakai tampilan LCD itu. Sehingga pada dasarnya interface yang akan dibuat merupakan komunikasi dua buah mikrokontroler.

Sebelum merancang suatu interface, harus diketahui dahulu susunan pin dari LCD tersebut. Adapun susunan pin serta bentuk dari standard LCD 16 pin beserta fungsi dari masing-masing pin adalah seperti pada gambar 1 berikut:

Gambar 1. LCD 2x16 Karakter
Pada saat terhubung dengan LCD, mikrokontroler dapat mengirimkan instruksi yang harus dilaksanakan ataupun data yang harus ditampilkan. Pengiriman instruksi dan data ke LCD diatur oleh RS (Register Select). Pengiriman perintah (instruksi) dilakukan dengan memberikan logika rendah pada pin RS LCD. Sedangkan jika yang dikirim adalah kode ASCII yang akan ditampilkan, maka pin RS LCD diberikan logika tinggi.
Untuk menandakan akan diadakan pengiriman data ke modul LCD dilakukan dengan memberikan logika rendah pada pin RW LCD. Setelah itu data disiapkan di DB0-DB7, sesaat kemudian pin EN ditinggalkan sesaat. Pada saat pin EN berubah dari tinggi ke rendah, data di DB0-DB7 diterima oleh LCD. Tabel 1 dibawah ini menerangkan susunan pin standard LCD 16 pin.










































































Tabel 1. Susunan pin LCD 2x16
No.SimbolLevelFungsi
1.Vss-power supply 0 volt (GND)
2.Vcc-power supply 5 volt ± 10%
3.Vcc-kontras LCD
4.RsI/O1=data; 0=instruksi
5.R/WI/O1=baca; 0=tulis
6.EN1 ke 0penyerempak (clock)
7.DB0I/OBus Data
:::Bus Data
14.DB7I/OBus Data
15.A-back light 4 - 42 v 50-200mA
16.K-back light 0 v (GND)


Untuk membuat suatu karakter tampilan LCD pada suatu posisi tertentu, harus diketahui dulu peta alamat dari LCD itu sendiri. Misalnya diinginkan menulis suatu kata dimulai dari baris kedua kolom pertama, berarti alamat yang dipakai pada LCD adalah 0C0h, tanda h menunjukkan bahwa nilai tersebut dalam kode bilangan heksa desimal. Tabel 2 berikut merupakan peta alamat LCD dengan spesifikasi 2x16 karakter.







































Tabel 2. Peta alamat LCD 2x16
Peta alamat LCD 2 x 16
808182838485868788898A8B8C8D8E8F
C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF

Berikut contoh program untuk menampilkan karakter pada LCD 2 x 16:

;---------------------------------------------
;Program untuk menulis ke LCD 16 x 2 karakter
; irf@n Software Corporation
;---------------------------------------------
funcset equ 00111000b
dispon equ 00001100b
gesrkan equ 00000110b
dispclr equ 00000001b

org 0h
clr p3.5
jmp Mulai
;
Write_inst:
mov P1,#0h ; untuk menuliskan
mov P0,R1 ; intruksi ke LCD
setb P1.1
clr P1.1
call Delay
ret
;
Write_data:
mov P1,#01 ; untuk menuliskan
mov P0,R1 ; data ke LCD
setb P1.1
clr P1.1
call Delay
ret
;
Delay: mov R0,#0
Delay1: mov R5,#50h
djnz R5,$
djnz R0,Delay1
ret
;
Ldelay: mov R2,#20h
Ld1: call Delay
djnz R2,Ld1
ret
;
Tulis: mov R4,#3 ; untuk 3 kali penulisan (x 2 baris)
mov DPTR,#Tulisan ; menunjuk ke alamat tulisan
Baris1: mov R3,#16 ; lakukan sebanyak 16 karakter
mov R1,#80h ; pindahkan kursor ke alamat
call Write_inst ; 00h (baris 1 kolom 1)
Tulis1: clr A
movc A,@A+DPTR ; ambil data karakter yang akan dituliskan
mov R1,A ; tuliskan data tersebut
call Write_data ; ke panel LCD
inc DPTR ; menunjuk ke karakter berikutnya
djnz R3,Tulis1
Baris2: mov R3,#16 ; untuk 16 karakter (dalam 1 baris)
mov R1,#0C0h ; pindahkan kursor ke alamat
call Write_inst ; 40h (baris 2 kolom 1)
Tulis2: clr A
movc A,@A+DPTR
mov R1,A
call Write_data
inc DPTR
djnz R3,Tulis2
call Ldelay
djnz R4,Baris1
ret
;
Mulai:
mov R1,#funcset ; inisialisasi
call Write_inst
mov R1,#dispon ; nyalakan LCD
call Write_inst
mov R1,#gesrkan ; set kursor geser kanan setiap menulis
call Write_inst
mov R1,#dispclr ; hapus layar
call Write_inst
Ulang:
call Tulis
jmp Ulang
;
Tulisan:
db ' SELAMAT DATANG '
db ' di '
db ' Laboratorium '
db ' Mikrokontroler '
db ' irf@n Software '
db ' Corporation '
end
Share:

0 komentar:

Posting Komentar

Kalender Hijriah


Jadwal Sholat


Subscribe

kirim update terbaru dari

Blog Irda langsung ke Email anda!


Komentar Terbaru

Site Info

Tukeran link yuk

Copy kode di bawah masukan di blog anda, saya akan segera linkback kembali

Irdaloves Blog

Follower

Blog Archive