4. MENAMPILKAN DATA MEMORI KE LCD_1.docx

13
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 23

description

lp

Transcript of 4. MENAMPILKAN DATA MEMORI KE LCD_1.docx

Page 1: 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

Page 2: 4. MENAMPILKAN DATA MEMORI KE LCD_1.docx

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.

Page 3: 4. MENAMPILKAN DATA MEMORI KE LCD_1.docx

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.

Page 4: 4. MENAMPILKAN DATA MEMORI KE LCD_1.docx

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

Page 5: 4. MENAMPILKAN DATA MEMORI KE LCD_1.docx

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

Page 6: 4. MENAMPILKAN DATA MEMORI KE LCD_1.docx

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

Page 7: 4. MENAMPILKAN DATA MEMORI KE LCD_1.docx

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

Page 8: 4. MENAMPILKAN DATA MEMORI KE LCD_1.docx

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

Page 9: 4. MENAMPILKAN DATA MEMORI KE LCD_1.docx

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

Page 10: 4. MENAMPILKAN DATA MEMORI KE LCD_1.docx

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