LCD liquid cell display merupakan suatu alat yang dapat menampilkan karakter ASCI sehingga kita bisa menampilkan campuran huruf dan angka sekaligus.
LCD didalamnya terdapat sebuah mikroprosesor yang mengendalikan tampilan, kita hanya perlu membuat program untuk berkomunikasi
ukuran lcd ada berbagai macam seperti
lcd 16 x 2 ada 16 colom dan 2 baris
lcd 16 x 4 ada 16 colom dan 4 baris
perbedaanya terletak pada alamat menaruh karakter saja.
karakter yang ditampilkan oleh LCD beraneka ragam tergangtung dari jenis lcd tersebut.. untuk melihat karakter yang ditampilkan serta spesifikasi lebih jelas maka anda dapat melihat pada datasheetnya.
http://lab.binus.ac.id/pk/databook/misc/LCD%2016X2%20hd44780.pdf
Command dan data
dalam antarmuka lcd dengan mcs maka kita harus menembakan command yang berisi perintah dan data yaitu berupa text yang kita ingin tampilkan
Supaya lcd dapat menampilkan text maka yang perlu dilakukan adalah mengirimkan format hex data dalam bentuk asci.
misal
0 dengan mengirimkan 48 desimal
A mengirimkan 65 desimal
lebih lengkap dapat melihat di datasheet (bisa kirim katakana juga loh)
http://www.magenta2000.co.uk/lcd-scan.pdf
Untuk mengunakan lcd pertama kali kita harus mengkonfigurasi lcd itu seperti keinginan kita.
konfigurasi berarti ktia harus menembakan command
PIN PIN LCD
1. Ground
2. VCC
3. Contrast ( buat konfigurasi pin 3 ->100ohm->pin b potensio 5K)
4. RS
5. RW
6. EN
7. D0
8. D1
9. D2
10. D3
11. D4
12. D5
13. D6
14. D7
15. Anoda (untuk backlight, lampu background)
16. Katoda
RS
Pin ini memberi informasi apakah kirim data atau instruksi
0 = instruksi
1 = data
R/!W
0 = Write (tulis ke lcd)
1 = Read (baca dari lcd)
D0 -D7 = pin komunikasi
Anoda = supply VCC untuk background, beri 4.3 (serikan dari VCC ke LED baru masuk ke anoda)
katoda = berikan ground
kombinasi dari pin RS dan RW
RS R/!W : Operation
0 0 IR Write Command
0 1 IR Read ………
1 0 DR write data
1 1 DR read ………
yang diperlukan untuk basic penulisan adalah write command dan write data.
kita buat dengan assembly, kita buat dalam bentuk prosedure karena akan sering digunakan.
kita define port dulu
;==================== INTI KOMUNIKASI===============
;===================================================
;====================================================
PIN EQU P0 ; untuk mendefine pin data
RS EQU P2.0 ; RS ada di port 2.0 (bebas pilih)
RW EQU P2.2 ; sesuai dengan skematik hardware
EN EQU P2.1
;====================================================
delay_lcd:
mov R0,#20
delay_lcd2:
mov R1,#0FFh
djnz R1,$
djnz R0,$
RET
;========= delay supaya menunggu lcd free ===
perintah:
mov P0,A
CLR RW
CLR RS
NOP
SETB EN
CLR EN
acall delay_lcd
RET
datat:
Mov P0,A
CLR RW
SETB RS
NOP
SETB EN
CLR EN
acall delay_lcd
RET
;====================================================
;====================================================
;====================================================
;=====================
konfigurasi atau dikenal dengan initialisasi
http://www.geocities.com/dinceraydin/lcd/commands.htm#entry
; kita buat contoh program yang akan menembakan text per character, tembak secara perlahan (seperti efek ketik)
menggunakan metode 8 bit, 2 baris, no cursor dan no blink (kelap kelip)
$object
$mod52
RS EQU P2.0
RW EQU P2.2
EN EQU P2.1
PIN equ P0
org 00h
ajmp start
org 60h
start:
;============== inisialisasi lcd ================
MOV A,#38H ; mengunakan mode 8 bit 2 baris
acall perintah
MOV A,#0CH ; Display=1 Cursor=0 Blinking=0
acall perintah
MOV A,#06H ; increment cursor setelah tembak data
acall perintah
MOV A,#01H ; clear screen
acall perintah
;==================================================
acall delay
acall delay
acall delay
acall delay
acall delay
;======== delay diataas hanya untuk animasi ======
MOV A,#86H ; memulai di baris 1 kolom 6
acall perintah
mov A,#’Y' ;jika tidak mengetahui asci Y
acall datat
acall delay ; delay lama, untuk animasi..
mov A,#’U’
acall datat
acall delay
mov A,#’D’
acall datat
acall delay
mov A,#’H’
acall datat
acall delay
mov A,#’I’
acall datat
acall delay
MOV A,#0C4H ; untuk ke baris 2 kolom 6
acall perintah ; perintah pindah
mov A,#’L’
acall datat
acall delay
mov A,#’C’
acall datat
acall delay
mov A,#’D’
acall datat
acall delay
mov A,#’ ‘
acall datat
acall delay
mov A,#’1′
acall datat
acall delay
mov A,#’6′
acall datat
acall delay
mov A,#’x’
acall datat
acall delay
mov A,#’2′
acall datat
acall delay
ajmp $ ; lcd hanya perlu ditembak satu kali
;==================================
perintah:
mov Pin,A
CLR RW
CLR RS
NOP
SETB EN
CLR EN
acall delay_lcd
RET
;=================================
datat:
Mov Pin,A
CLR RW
SETB RS
NOP
SETB EN
CLR EN
acall delay_lcd
RET
;==================================
delay_lcd:
mov R0,#7
delay_lcd2:
mov R1,#0FFh
djnz R1,$
djnz R0,delay_lcd2
RET
;===================================
delay:
mov R0,#0AAh
delay2:
mov R1,#0FFh
djnz R1,$
djnz R0,delay2
RET
;===================================
END
ini videonya, KLIK untuk lihat videonya.hasil dari grogram yang diketik
http://www.youtube.com/v/hT1KUSRBxK8
kesimpulan:
1. koneksi mengunakan 8 bit. ada D0 sampai D7.(nanti kita buat koneks 4 bit.
2. tidak menggunakan busy flag. sehingga delay untuk instruksi deberi besar sedikit. untuk memberikan keamanan. pengunaan busy flag kita harus membaca data dari lcd. RW= 1 (mode read)
3. mov A,#’Y’
digunakan jika tidak mengetahui asci Y. gunakan jenis immidieate addressing.
4. Penampilan tulisan masih tembak satu satu / percharacter. gunakan DPTR untuk penulisan string.
dengan dptr maka
org 500h
tulisan: db ‘mau cetak tulisan’
secara otomatis compiler akan mengubah memori 500h dengan asci m, 501 = a,502=u,……
5. untuk mebuat animasi tulisan bergeser.. tinggal berikan perintah shift… dapat anda lihat di datasheet.
ini masih dasar dasar penggunaan lcd. unutk meperdalam silakn mempelajari datasheet.
good luck. jika ada kekurangan bisa ditambahkan..

aku tantang kamu bisa gak pakek bahasa c buat lcd trus ke ultra sonic kalo kamu bisa hub 8323137 kalo bisa hebat aku salut berarti kamu setingkat ama aku
Wew ada acara nantangan neh.
Hmmm……….
Ayo sama aku……
Program SPI juga kalo mau…
RTC I2C jg …..
Wa tantang lo program semua dalam bahasa C.
Wkkkk……..
Gitu aj kok nantang”an santai laaaa…. masih jauh ilmu kita-kita.
Belajar aj terus dan g pernah merasa cukup.
Hai harri,
hiks, kok tantangannya begitu? kita malah harus bekerja sama membagun iptek indonesia..
^^
untuk maen PING aku udah pernah coba -coba mungkin gak sedalam kamu.
http://lab.binus.ac.id/pk/diskusi/forum_posts.asp?TID=93
tapi tidak pakai bahasa C nie.. saya masih tertarik dengan asm
uh yud plis hapusya kita kan tau gak boleh gitu siapaya tolongya plis
jahat bener to orang plis aku baru baca sekarang looo
slm kenal.kt g diarah yang sama. tp aku senang karna ternyata orang indonesia banyak yang pinter. n aku senang banget.maju terus …………….
@ Siti
mari menulis bersama.. ngeblog.. walaupun ada pihak pihak menyatakan blog tidak baik…
mari berbagi… semangat indonesia bisa (^^)
n walau jalan kita berbeda.perbedaan itulah yang membuat indah dan saling melengkapi … (ngomonnya sok puitis ^^ )
Hai yudhi,
Sebelumnya kita kenalan dulu yah, nama saya yudhi sama dengan namamu,
saya membuka blog mu sepertinya anda mahir dalam bahasa asm, ada beberapa pertanyaan yang ingin saya utarakan salah satunya adalah apakah anda bisa membantu saya dalam bereksperiment menggunakan microcontroller ATmel ataupun PIC, terus terang saya masih banyak belajar tentang hal tersebut, sebelumnya saya ucapkan terimakasih.
yd
yai yud,
sedikitmengerti mengenai asm.. bisa saja dibantu silahkan bertanya jika ada yg membingungkan kita coba diskusikan.
untuk PIC saya belum pernah main. hanya dari ATMEL.
YDH ^^
Ok deh kebetulan saya juga agak sedikit mengerti tentang Atmel, mungkin saya bisa tahu alamat email anda, trims sebelumnya
yd
Wah ^^ gak jago jago amat.. bisa lah..kuliah atau masih SMA? dimana?
n4dar3[at]yahoo_dot_com
tidak kuliah kebetulan saya sedang buat experiment cuma agak bingung untuk asm nya makanya saya cari tahu dimana saya bisa dapat infonya, ok deh thx alamat emailnya
yudi bisa gak hapus punya harri kok kayak sombong banget.
itu bukan aku yang kirim ada orang iseng tapi aku aja gak tau siapa… aneh tu orang tau HP kulagi
bahaya tu maafiya