Anda di halaman 1dari 5

16.

Input Keypad dan ditampilkan di LCD


Percobaan ini lanjutan dari percobaan 3 dan percobaan 7 yang
digabungkan.
Sedangkan logika untuk pengambilan dari keypad dan dikeluarkan ke LCD
adalah sbb:
Cek apakah P3.3 mempunyai logika 0 (Status OE terhubung ke
P3.3)
JB

P3.3,$

; TUNGGU TOMBOL DITEKAN

Jika ada tombol yang ditekan, ambil datanya dan di AND kan dengan
0FH
MOV
ANL

A,P0
A,#0FH

Cek apakah tombol sudah dilepas, jika belum tunggu sampai dilepas
JNB

P3.3,$

; TUNGGU TOMBOL DILEPAS

Pindahkan datanya ke LCD dengan


MOV
MOV
ACALL
MOV
ADD
ACALL

R0,A
A,#0CFH
CONTROLOUT
A,R0
A,#30H
DATAOUT

; KOLOM 15 BARIS 2

; ASCII DARI DATA KEYPAD

Untuk melakukan percobaan ini, lakukan langkah-langkah sebagai berikut:


1. Hubungkan modul MICROTRAINER dengan memasang kabel DB25
dengan LPT1 pada PC. Mode printer adalah SPP atau output only.
2. Ketikkan di sembarang editor yang anda miliki listing program berikut:
; PROG09.ASM DIGUNAKAN UNTUK MENGAMBIL DATA DARI KEYPAD
; DAN DITAMPILKAN KE LCD
; JUMPER INPUT
: KEYPAD POSISI '0'
; JUMPER OUTPUT : LCD POSISI '0'

Mikrokontroler MCS51

127

ORG
SJMP

00H
START

;-------------------------------------;
LCD CONSTANTA
;-------------------------------------DISPCLR EQU
00000001B
FUNCSET EQU
00111000B
ENTRMOD EQU
00000110B
DISPON EQU
00001100B
START:
ACALL
MOV
ACALL

INIT_LCD
DPTR,#BARIS1
PRINTSTRING1

MOV
ACALL

DPTR,#BARIS2
PRINTSTRING2

ACALL
SJMP

KEYPAD
MAIN

MAIN:

;--------------------------------------------------------; PENGAMBILAN DATA DARI KEYPAD


;--------------------------------------------------------KEYPAD:
JB
P3.3,$
MOV
A,P0
ANL
A,#0FH
MOV
R0,A
MOV
A,#0CFH
ACALL
CONTROLOUT
MOV
A,R0
ADD
A,#30H
ACALL
DATAOUT
JNB
P3.3,$
RET
;-------------------------------------------------------; PROSEDUR PEMESANAN TEMPAT
;-------------------------------------------------------; RS : 0
: P3.5
;E :0-1-0
: P3.4
; DATA
: P2
CONTROLOUT:
CLR
P3.5
ACALL
DELAY
CLR
P3.4
ACALL
DELAY
SETB
P3.4
ACALL
DELAY
MOV
P2,A
CLR
P3.4
ACALL
DELAY
RET

Mikrokontroler MCS51

; TUNGGU TOMBOL DITEKAN

; PESAN TEMPAT DI KOLOM 15 BARIS 2

; ASCII DARI DATA KEYPAD


; TUNGGU TOMBOL DILEPAS

; RS = 0

128

;------------------------------------------------------; PROSEDUR PENEMPATAN DATA


;------------------------------------------------------; RS : 0
: P3.5
;E :0-1-0
: P3.4
DATAOUT:
SETB
P3.5
ACALL
DELAY
CLR
P3.4
ACALL
DELAY
SETB
P3.4
ACALL
DELAY
MOV
P2,A
CLR
P3.4
ACALL
DELAY
RET

; RS = 1
;E=0
;E=1

;E=0

;-------------------------------------------;
PROSEDUR DELAY LCD
;-------------------------------------------DELAY.INIT.LCD:
MOV
R6,#20H
DLY.LCD.LP:
MOV
R7,#10H
DJNZ
R7,$
DJNZ
R6,DLY.LCD.LP
RET
INIT_LCD:
MOV
ACALL
ACALL

A,#FUNCSET
CONTROLOUT
DELAY.INIT.LCD

MOV
ACALL
ACALL

A,#DISPON
CONTROLOUT
DELAY.INIT.LCD

MOV
ACALL
ACALL

A,#DISPCLR
CONTROLOUT
DELAY.INIT.LCD

MOV
ACALL
ACALL
RET

A,#ENTRMOD
CONTROLOUT
DELAY.INIT.LCD

;---------------------------------------------------------; PROCEDURE LCD BARIS KOLOM LCD


;---------------------------------------------------------POSISI2.1:
MOV
A,#1
POSISI2:
ADD
A,#11000000B ; BARIS KEDUA
DEC
A
ACALL
CONTROLOUT
ACALL
DELAY.INIT.LCD
RET

Mikrokontroler MCS51

129

POSISI1.1:
MOV

A,#1

ADD
DEC
ACALL
ACALL
RET

A,#10000000B ; BARIS PERTAMA


A
CONTROLOUT
DELAY.INIT.LCD

POSISI1:

PRINTSTRING2:
ACALL
CLR
MOVC
JNZ
PRINTSTRINGLOOP:
ACALL
ACALL
INC
CLR
MOVC
JNZ
RET

POSISI2.1
A
A,@A+DPTR
PRINTSTRINGLOOP
DATAOUT
DELAY.INIT.LCD
DPTR
A
A,@A+DPTR
PRINTSTRINGLOOP

PRINTSTRING1:
ACALL
POSISI1.1
CLR
A
MOVC
A,@A+DPTR
JNZ
PRINTSTRINGLOOP2
PRINTSTRINGLOOP2:
LCALL
DATAOUT
ACALL
DELAY.INIT.LCD
INC
DPTR
CLR
A
MOVC
A,@A+DPTR
JNZ
PRINTSTRINGLOOP2
RET
;----------------------------------------;
PROCEDURE DELAY
;----------------------------------------DELAY:
MOV
R5,#0
U1:
MOV
R6,#0
U2:
MOV
R7,#0
U3:
INC
R7
CJNE
R7,#5,U3
INC
R6
CJNE
R6,#5,U2
INC
R5
CJNE
R5,#5,U1
RET
BARIS1:
DB 'INPUT

KEYPAD',0

BARIS2:
DB 'KEYPAD:

Mikrokontroler MCS51

',0

130

3. Simpanlah program yang anda ketik dan beri nama prog09.asm


4. Kemudian keluarlah ke DOS prompt dan ketikkan
A PROG09 <ENTER>
Jika tidak ada kesalahan, tekan <ENTER>
5. Anda akan langsung masuk ke program AEC_ISP, kemudian pilihlah option
A. Load HEX File to flash buffer,
kemudian ketik PROG04.HEX <ENTER> dan tekan
sebarang tombol
6. Pilih E.Program <ENTER> dan tunggu sebentar sampai ada indikator 100
% dan tekan sebarang tombol
7. Pilih I. Reset . Putarlah potensiometer 1 dan lihatlah tampilan di LCD nya
8. Berilah kesimpulan anda
............................................................................................................................
......................................................................................................................

Mikrokontroler MCS51

131