4. MENAMPILKAN DATA MEMORI KE LCD_1.docx
-
Upload
saiful-mulia -
Category
Documents
-
view
102 -
download
0
description
Transcript of 4. MENAMPILKAN DATA MEMORI KE LCD_1.docx
PRAKTIKUM 4
MENAMPILKAN DATA MEMORI PADA LCD
4.1 Tujuan Instruksional Khusus
Memperkenalkan karakteristik LCD 2 x 16
Menjelaskan cara kerja LCD
Mempelajari pemrograman mikrokontroler untuk mengakses LCD 2 x 16
4.2 Dasar Teori
Pin LCD
LCD yang dibahas pada praktikum ini adalah tipe LCD 2x16 digit
memiliki 14 pin ditambah 2 pin untuk backligth. Gambar 4.1 menunjukkan
konfigurasi pin LCD 2x16 digit. Fungsi setiap pin seperti ditunjukkan pada table
4.1.
a. Modul tampilan LCD
b. Konfigurasi pin LCD 2x16 digit
Gambar 4.1 LCD 2x16 digit
23
Tabel 4.1 Penjelasan Pin pada LCD
Pin Simbol I/O Keterangan
1 Vss -- Ground2 Vcc -- Catu daya +5 Volts3 Vee -- Pengatur Kontras Layar4 RS I RS = 0 untuk reg. Command ; RS = 1 untuk reg. Data
5 R/W IR/W = 0 untuk WriteR/W = 1 untuk Read
6 E I/O Enable (Strobe)7 DB0 I/O Bus Data 8-bit8 DB1 I/O Bus Data 8-bit9 DB2 I/O Bus Data 8-bit10 DB3 I/O Bus Data 8-bit11 DB4 I/O Bus Data 8-bit12 DB5 I/O Bus Data 8-bit13 DB6 I/O Bus Data 8-bit14 DB7 I/O Bus Data 8-bit
Vcc, Vss, dan Vee
Jika Vss dan Vss masing-masing berfungsi sebagai jalur arus catu daya
+5V dan Ground-nya. Vee digunakan untuk mengontrol kontras dari tampilan
LCD. Yakni dilakukan dengan menghubungkan pin ini dengan resistor 1 kohm
atau lebih rendah lagi, pada ground.
RS, register Select
Ada 2 buah register yang penting pad LCD. Pin RS inilah yang digunakan
untuk memilih register tersebut. Jika RS = 0, maka register kode "Instruction
Command" yang sedang kita pilih, yang dapat digunakan misalnya untuk
membersihkan display, memindahkan kursor, dll. Jika RS = 1 maka register
"Data" yang sedang kita pilih, yang akan membuat setiap data yang kita kirimkan
akan langsng ditampilkan pada LCD sesuai dengan daftar karakter yang
dipunyainya.
R/W, read/write
Input R/W membuat kita bisa menulis/mengirimkan data pada LCD atau
membaca data dari LCD. RW = 0 untuk menulis, dan R/W = 1 untuk membaca.
Dalam praktek sangat jarang data dari LCD dibaca, sehingga dalam beberapa
rancangan, pin R/W ini langsung dihubungkan pada ground, demi menghemat
port mikrokontroller.
E, enable
Fungsinya mirip dengan strobe. Setiap proses yang hendak kita lakukan
akan menjadi "sah" setelah ada pulsa Tinggi-ke-Rendah pada pin ini. Setiap data
yang dikirimkan melalui pin data, akan segera di latch di dalam LCD. Dan LCD
dapat mengerjakan tugasnya menurut data yang baru saja dia terima.
D0-D7
Pin data 8-bit, D0-D7 digunakan untuk mengirimkan inforamsi ke LCD ataupun
utuk membaca isi dari register internal dari LCD. Untuk menampilkan abjad dan
angka, kita harus mengirimkannya dalam kode ASCII, untuk abjad A-Z, dan a-z,
termasuk angka 0-9 pada ke-8-pin tersebut dengan mengatur pin RS = 1.
Ada pula beberapa kode perintah yang digunakan untuk membuat LCD
membersihkan layarnya atau memindahkan kursor ke kiri, kanan , atau ke posisi
home, atau membuat kursor yang berkedip. Tabel 2 menunjukkan beberapa kode
"Intruction Command".
Kita dapat membuat RS = 0 untuk memeriksa bit bendera busy, untuk
mengetahui apakah LCD sudah siap untuk menerima data selanjutnya. Bit
bendera busy menggunakan pin D7 dan bisa periksa saat R/W = 1 dan RS = 0.
Apabila R/W = 1 dan RS = 0, dan ternyata pin D7 = 1 maka berarti bendera busy
= 1. Artinya LCD masih sibuk dalam melaksanakan operasi internalnya. Segera
setelah busy = 0, maka kita dapat mengirimkan data berikutnya pada LCD.
Tabel 4.2: Kode-kode Command LCD
Hex Instruksi Keterangan
1 Clear Display Screen Bersihkan Layar dan kembali semula2 Return Home Kursor kembali semula4 Decrement cursor Geser kursor ke kiri6 Increment cursor Geser kursor ke kanan5 Shift Display right Geser Layar dan isi ke kanan 1 kali7 Shift Display left Geser Layar dan isi ke kiri 1 kali8 Display Off,Cursor Off --A Display Off,Cursor On --C Display On, Cursor Off --E Display On,Cursor Blinking --F Display On,Cursor Blinking --10 Shift cursor left Geser kursor ke kiri14 Shift cursor right Geser kursor ke kanan18 Shift entire display Left Geser Layar dan isi ke kiri 1 kali1C Shift entire display rigth Geser Layar dan isi ke kanan 1 kali80 force cursor to beginning of 1st line pindahkan kursor ke kiri atasC0 force cursor to beginning of 2nd line pindahkan kursor ke kiri bawah38 Setup LCD 2lines, 5x7 matrix kode inisialisasi LCD
Terdapat 2 metode untuk penulisan LCD, antara lain:
a. memeriksa busy flag, untuk kemudian mengirimkan data berikutnya.
b. membuat tundaan waktu.
Sedapat mungkin waktu tunda adalah cukup untuk waktu yang dibutuhkan
oleh LCD dalam mengerjakan setiap instruksinya. Cara yang ke 2 ini adalah cara
yang paling sederhana, namun mampu memberikan hasil yang sama bahkan lebih
baik.
Gambar 4.2 Posisi Pin untuk beberapa jenis LCD dari Optrex
4.3 Daftar alat dan bahan
1. Software Proteus 7
2. Software MIDE-51
3. Unit Komputer
4.4 Keselamatan Kerja
1. Menggunakan pakaian praktikum dengan baik dan rapi
2. Sambungkan perangkat-perangkat yang digunakan sesuai dengan petunjuk
pembimbing praktikum
3. Jalankan sistem setelah mendapat izin dari pembimbing praktikum.
4. Bila praktikum telah selesai, maka bongkar semua perangkat yang digunakan
dan simpan pada tempat semula dengan rapi
4.5. Gambar Kerja
Gambar 4.2. Rangkaian interface LCD
4.6 Program Mikrokontroler
org 0hcall init_lcd
MULAI: MOV R1,#080H ; Lokasi Display RAM, Row=1 Col=0 call write_instPRE_DISP: MOV DPTR,#BARIS_1
MOV R6,#0FhULANG1: CLR A
MOVC A,@A+DPTRINC DPTRMOV R1,Acall write_dataCALL DELAYDJNZ R6,ULANG1
MOV R1,#0C0H ; Lokasi Display RAM, Row=2 Col=0 call write_instPRE_DISP2: MOV DPTR,#BARIS_2
MOV R6,#0FhULANG2: CLR A
MOVC A,@A+DPTRINC DPTRMOV R1,Acall write_dataCALL DELAYDJNZ R6,ULANG2
SJMP MULAI
Init_lcd: mov r1,#01H ;Display clear call write_inst mov r1,#38H ;Function set, Data 8 bit,2 line font 5x7 call write_inst mov r1,#0CH ;Display on, cursor off,cursor blink off
call write_inst mov r1,#06H ;Entry mode, Set increment call write_inst
mov r1,#18hcall write_inst
ret Write_inst:clr P2.0 ; = RS =0 CLR P2.1 mov P1,R1 ; P0 = D7 s/d D0 = R1 setb P2.2 ; =EN = 1 call delay ; call delay time clr P2.2 ; =EN = 0 ret Write_data: setb P2.0 ; = RS =1 clr P2.1 ; R/W = 0 mov P1,R1 ; P0 = D7 s/d D0 = R1 setb P2.2 ; =EN = 1 call delay ; call delay time
clr p2.2 ; =EN = 0 ret delay: mov R0,#50 delay1: mov R7,#0fFh djnz R7,$ djnz R0,delay1 ret BARIS_1: DB " SELAMAT DATANG "BARIS_2: DB " 2013 "
end
4.7 Langkah Percobaan
a. Hubungkan LCD ke port 1 untuk data dan port 2 untuk kontrol
seperti pada Gambar 4.2.
b. Buat program seperti pada program 1 dan kompile serta jalankan
program tersebut.
c. Catat tampilan karakter pada LCD.
d. Lakukan analisis data dan buatlah kesimpulan-kesimpulan yang
diperoleh
4.8 Data
Tabel. 4.3 Hasil Percobaan
Kolom0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Baris 1 S E L S M A T D A T A N GBaris 2 2 0 1 3
4.9 Pertanyaan
a. Lakukan analisis terhadap hasil percobaan
b. Buatlah kesimpulan terhadap hasil analisis yang telah dilakukan
c. Lakukan modifikasi terhadap program di atas untuk mendapatkan
tampilan di LCD seperti
Kolom0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Baris 1 S E L A M A T D A T A N GBaris 2 2 0 1 3
Kemudian tampilan di clear dan mengulang kembali tampilan LCD
seperti konfigurasi di atas
Jawaban
a. Untuk menampilkan huruf atau kata-kata pada LCD sesuai dengan
keinginan, bisa menggunakan kode-kode command LCD yang
tercantung pada tambel 4.2: Kode-kode Commond LCD dan
mengessetnya dalam listing program seperti pada 4.6 Program
Mikrikontroler untuk mengatur besar hurus dan tampilan pada LCD
terdapat pada perintah “Init_lcd” petamanya LCD di
kosongkan/dibersihkan dengan perintah “movr1,#01H”
mov r1,#38H untuk membuat tampilan pada LCD 2 baris
mov r1,#0CH untuk mematikan tampilan dan kedipan cursor
mov r1,#06H untuk menggeser kursor ke kanan
mov r1,#18h untuk Geser Layar dan isi ke kiri 1 kali
Petintah “Write_inst” adalah untuk membersihakan layar apa bila RS
menerima logika 0 dan ketika R/W berlogika 0 maka perintah untuk
menulis.
Perintah “Write_data” adalah untuk memeriksa apabila RS berlogika 1
maka menampilkan data ke LCD, dan ketika R/W berlogika 1 untuk membaca.
Perintah “BARIS_1 dan BARIS_2 “ untuk menampung perintah kata-kata
atau huruf yang akan di tampilkan sesuai dengan batas pengesetan huruf yang
bisa di tampilkan.
b. Kesimpulan
Tampilan pada LCD bisa diatur menggunakan perintah seperti pada
Tabel 4.2: Kode-kode Command LCD
Untuk menampilkan kata-kata atau huruf bahkan angka pada
Commond LCD jauh lebih mudah dari pada menggunakan Seven
Segment
c. Listing Program Modifikasi
org 0hcall Init_lcd
MULAI: MOV R1,#80H ; Lokasi Display RAM, Row=1 Col=0 ; untuk mengirim data ke reg command call write_instPRE_DISP: MOV DPTR,#BARIS_1
MOV R6,#0Fh ; untuk menentukan berapa banyak characterULANG1: CLR A
MOVC A,@A+DPTRINC DPTRMOV R1,Acall write_dataCALL DELAYDJNZ R6,ULANG1
MOV R1,#0C0H ; Lokasi Display RAM, Row=2 Col=0 call write_inst PRE_DISP2: MOV DPTR,#BARIS_2
MOV R6,#0Fh
ULANG2: CLR AMOVC A,@A+DPTRINC DPTRMOV R1,Acall write_dataCALL DELAYDJNZ R6,ULANG2
MOV R1,#01H ; untuk clear Layar!!!!!
CALL write_inst ; menulis instruksi ( write instruksi)
SJMP MULAI
Init_lcd: mov r1,#01H ;Display clear call write_inst
mov r1,#38H ;Function set, Data 8 bit,2 line font 5x7 call write_inst mov r1,#0CH ;Display on, cursor off,cursor blink off call write_inst mov r1,#06H ;Entry mode, Set increment call write_inst
ret Write_inst:clr P2.0 ; = RS =0 CLR P2.1 mov P1,R1 ; P0 = D7 s/d D0 = R1 setb P2.2 ; =EN = 1 call delay ; call delay time clr P2.2 ; =EN = 0 ret Write_data: setb P2.0 ; = RS =1 clr P2.1 ; R/W = 0 mov P1,R1 ; P0 = D7 s/d D0 = R1 setb P2.2 ; =EN = 1 call delay ; call delay time clr p2.2 ; =EN = 0 ret delay: mov R0,#50 delay1: mov R7,#0fFh djnz R7,$ djnz R0,delay1 ret BARIS_1: DB " SELAMAT DATANG "BARIS_2: DB " 2013 " End