Upload
muhammad-fazliansyah
View
38
Download
2
Embed Size (px)
Citation preview
PRAKTIKUM 4
MENAMPILKAN DATA MEMORI PADA LCD
4.1 TujuanInstruksionalKhusus
Memperkenalkankarakteristik LCD 2 x 16
Menjelaskancarakerja LCD
Mempelajaripemrograman mikrokontroler untuk mengakses LCD 2 x 16
4.2 DasarTeori
PinLCD
LCD yang dibahaspadapraktikuminiadalahtipe LCD 2x16 digit memiliki
14 pin ditambah 2 pin untukbackligth. Gambar 4.1 menunjukkan konfigurasi pin
LCD 2x16 digit.Fungsisetiappin seperti ditunjukkan pada table 4.1.
a. Modul tampilan LCD
b. Konfigurasi pin LCD 2x16 digit
Gambar 4.1 LCD 2x16 digit
Tabel4.1Penjelasan Pin pada LCD
Pin Simbol I/O Keterangan
1 Vss -- Ground2 Vcc -- Catudaya +5 Volts3 Vee -- PengaturKontrasLayar4 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, danVee
JikaVssdanVssmasing-masingberfungsisebagaijaluraruscatudaya +5V dan
Ground-nya.Veedigunakanuntukmengontrolkontrasdaritampilan
LCD.Yaknidilakukandenganmenghubungkan pin inidengan resistor 1
kohmataulebihrendahlagi, pada ground.
RS, register Select
Ada 2 buah register yang penting pad LCD. PinRS inilah yang
digunakanuntukmemilih register tersebut. Jika RS = 0, maka register kode
"Instruction Command" yang sedangkitapilih, yang
dapatdigunakanmisalnyauntukmembersihkan display, memindahkankursor, dll.
Jika RS = 1 maka register "Data" yang sedangkitapilih, yang akanmembuatsetiap
data yang kitakirimkanakanlangsngditampilkanpada LCD
sesuaidengandaftarkarakteryang dipunyainya.
R/W,read/write
Input R/W membuatkitabisamenulis/mengirimkan data pada LCD
ataumembaca data dari LCD. RW = 0 untukmenulis, dan R/W = 1
untukmembaca. Dalamprakteksangatjarang data dari LCD dibaca,
sehinggadalambeberaparancangan, pin R/W inilangsungdihubungkanpada ground,
demi menghemat port mikrokontroller.
E, enable
Fungsinyamiripdengan strobe.Setiap proses yang
hendakkitalakukanakanmenjadi "sah" setelahadapulsaTinggi-ke-Rendahpada pin
ini. Setiap data yang dikirimkanmelalui pin data, akansegera di latch di dalam
LCD. Dan LCD dapatmengerjakantugasnyamenurut data yang barusajadiaterima.
D0-D7
Pin data 8-bit, D0-D7 digunakanuntukmengirimkaninforamsike LCD
ataupunutukmembacaisidari register internal dari
LCD.Untukmenampilkanabjaddanangka, kitaharusmengirimkannyadalamkode
ASCII, untukabjad A-Z, dan a-z, termasukangka 0-9 pada ke-8-pin
tersebutdenganmengatur pin RS = 1.
Ada pula beberapakodeperintah yang digunakanuntukmembuat LCD
membersihkanlayarnyaataumemindahkankursorkekiri, kanan ,ataukeposisi home,
ataumembuatkursor yang berkedip. Tabel2 menunjukkan beberapakode
"Intruction Command".
Kita dapatmembuat RS = 0 untukmemeriksa bit bendera busy,
untukmengetahuiapakah LCD sudahsiapuntukmenerima data selanjutnya. Bit
bendera busy menggunakan pin D7 danbisaperiksasaat R/W = 1 dan RS = 0.
Apabila R/W = 1 dan RS = 0, danternyata pin D7 = 1 makaberartibendera busy =
1. Artinya LCD masihsibukdalammelaksanakanoperasiinternalnya.Segerasetelah
busy = 0, makakitadapatmengirimkan data berikutnyapada LCD.
Tabel4.2: Kode-kode Command LCD
Hex Instruksi Keterangan
1 Clear Display Screen BersihkanLayardankembalisemula2 Return Home Kursorkembalisemula4 Decrement cursor Geserkursorkekiri6 Increment cursor Geserkursorkekanan5 Shift Display right GeserLayardanisikekanan 1 kali7 Shift Display left GeserLayardanisikekiri 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 Geserkursorkekiri14 Shift cursor right Geserkursorkekanan18 Shift entire display Left GeserLayardanisikekiri 1 kali1C Shift entire display right GeserLayardanisikekanan 1 kali80 force cursor to beginning of 1st line pindahkankursorkekiriatasC0 force cursor to beginning of 2nd line pindahkankursorkekiribawah38 Setup LCD 2lines, 5x7 matrix kodeinisialisasi LCD
Terdapat 2 metodeuntuk penulisan LCD, antara lain:
a. memeriksa busy flag, untukkemudianmengirimkan data berikutnya.
b. membuattundaan waktu.
Sedapatmungkinwaktutundaadalahcukupuntuk waktu yang
dibutuhkanoleh LCD dalammengerjakansetiapinstruksinya. Cara yang ke 2
iniadalahcara yang paling sederhana, namunmampumemberikanhasil yang
samabahkan lebihbaik.
Gambar4.2Posisi Pin untukbeberapajenis LCD dariOptrex
4.3 Daftaralatdanbahan
1. Software Proteus 7
2. Software MIDE-51
3. Unit Komputer
4.4 KeselamatanKerja
1. Menggunakanpakaianpraktikumdenganbaikdanrapi
2. Sambungkanperangkat-perangkat yang
digunakansesuaidenganpetunjukpembimbingpraktikum
3. Jalankansistemsetelahmendapatizindaripembimbingpraktikum.
4. Bilapraktikumtelahselesai, makabongkarsemuaperangkat yang
digunakandansimpanpadatempatsemuladenganrapi
4.5. GambarKerja
Gambar 4.2. Rangkaian interface LCD
4.6 Program Mikrokontroler
org 0hcall init_lcd
MULAI: MOV R1,#080H ; Lokasi Display RAM, Row=1 Col=0call write_inst
PRE_DISP: MOV DPTR,#BARIS_1MOV R6,#0Fh
ULANG1: CLR AMOVC A,@A+DPTRINC DPTRMOV R1,Acall write_dataCALL DELAYDJNZ R6,ULANG1
MOV R1,#0C0H ; Lokasi Display RAM, Row=2 Col=0call write_inst
PRE_DISP2: MOV DPTR,#BARIS_2MOV R6,#0Fh
ULANG2: CLR AMOVC A,@A+DPTRINC DPTRMOV R1,Acall write_dataCALL DELAYDJNZ R6,ULANG2SJMP 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
4.7 LangkahPercobaan
a. Hubungkan LCDke port 1 untuk data dan port 2 untuk kontrol
sepertipadaGambar4.2.
b. Buat programseperti pada program 1 dan kompile serta jalankan
program tersebut.
c. Catattampilan karakter pada LCD.
d. Lakukananalisis data danbuatlahkesimpulan-kesimpulan yang
diperoleh
4.8 Data
Tabel.4.3 HasilPercobaan
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
4.9 Pertanyaan
a. Lakukan analisis terhadap hasil percobaan
Jawab :
Rangkaian yang digunakanadalahsebagaiberikut :
Untuk menampilkan tulisan pada Layar LCD, digunakan sebuah
IC AT89C52pada kaki IC Port 1.0 - Port 1.7 di hubungkanlangsungke
port D0- Port D7 pada LCD. Untuk Port 2.0 – Port 2.2 pada IC di
hubungkan langsung ke Port Rs, Rwdan Epada LCD.Port VEE di
hubungkanlangsungke POT-HG, Port VDD dihubungkankeVcc (+5v)
dan Port Vss dihubungkan langsung ke Ground.
“EA”pada IC AT89C51 dihubungkankeVcc(+5v), “RST” pada IC
AT89C51 di hubungkanpadarangkaian minelect10u16v, resistor 10k dan
button (tomboltekan) yang masing2 di hubungkanke ground danVcc
(+5v). Untuk XTAL1 DAN XTAL2 di hubungkanke CRYSTAL dan 2
buah CERAMIC22pF yang di hubungkanke Ground.
b. Buatlah kesimpulan terhadap hasil analisis yang telah dilakukan
Jawab :
Vcc,VssdanVeeberfungsisebagaijaluraruscatudaya +5V dan
Ground-nya. Veedigunakanuntukmengontrolkontrasdaritampilan
LCD.
PinRS (Register Select)digunakanuntukmemilih register tersebut.
Input R/W (Read/Write) berfungsiuntukmenulis/mengirimkan
data pada LCD ataumembaca data dari LCD
Pin data 8-bit, D0-D7 digunakanuntukmengirimkaninforamsike
LCD ataupunutukmembacaisidari register internal dari
LCD.Untukmenampilkanabjaddanangka,
kitaharusmengirimkannyadalamkode ASCII.
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
Jawab :
PROGRAM NYA :
org 0h
callInit_lcd
MULAI: MOV R1,#80H ; Lokasi Display RAM, Row=1 Col=0
call write_inst
PRE_DISP: MOV DPTR,#BARIS_1
MOV R6,#0Fh
ULANG1: CLR A
MOVC A,@A+DPTR
INC DPTR
MOV R1,A
call write_data
CALL DELAY
DJNZ 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 A
MOVC A,@A+DPTR
INC DPTR
MOV R1,A
call write_data
CALL DELAY
DJNZ R6,ULANG2
MOV R1,#01H ; untuk clear agar ulang !!!!!
CALL write_inst ;menulisinstruksi
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