Anda di halaman 1dari 6

14.

Input Keypad dan ditampilkan di deret LED

gambar 14.1. Rangkaian keypad dan enkodernya

Percobaan ini lanjutan dari percobaan 1 yaitu output delapan buah LED
dengan tambahan input dari keypad. Data yang ditampilkan pada LED adalah
biner dari angka pada keypad. LED akan menyala jika pada port keluaran
diberi logika HIGH 1dan padam jika diberi logika LOW 0. Untuk
mengaktifkan konfigurasi seperti gambar 7.1, pin LED pada posisi 0

Pada keypad, jika ada satu tombol yang ditekan, maka OE akan LOW dan
A,B,C,D akan menampilkan bentuk binernya.

MikrokontrolerMCS51

118

Enkoder keypad menggunakan mikrokontroler 89C2051 dengan sistem


scanning sehingga keluarannya sudah dalam bentuk biner dengan status OE
apabila ada tombol yang ditekan.
Listing program enkoder adalah sbb :
; PROGRAM KEYPAD 4X4 DENGAN 892051 SEBAGAI ENCODER
; KOLOM 0 : P1.1
; KOLOM 1 : P1.0
; KOLOM 2 : P1.2
; BARIS 0 : P1.7
; BARIS 1 : P1.6
; BARIS 2 : P1.5
; BARIS 3 : P1.4
;A
;B
;C
;D
; OE

: P3.0
: P3.1
: P3.2
: P3.3
: P3.4
ORG 0000H
JMP START

START:
;KOLOM 0
CLR
SETB
SETB
MOV
ACALL

1 4 7 *
P1.1
P1.0
P1.2
A,P1
KOLOM0

;KOLOM 1
SETB
CLR
SETB
MOV
ACALL

2 5 8 0
P1.1
P1.0
P1.2
A,P1
KOLOM1

;KOLOM 2
SETB
SETB
CLR
MOV
ACALL

3 6 9 #
P1.1
P1.0
P1.2
A,P1
KOLOM2

SETB
SETB
SETB
SJMP

P1.1
P1.0
P1.2
START

MikrokontrolerMCS51

119

;-----------------------------------; KEYPAD KOLOM 0


;-----------------------------------KOLOM0:
ANL
CJNE
MOV
ACALL
RET
K01:
CJNE
MOV
ACALL
RET
K02:
CJNE
MOV
ACALL
RET
K03:
CJNE
MOV
ACALL
K04:
RET
;-----------------------------------; KEYPAD KOLOM 1
;-----------------------------------KOLOM1:
ANL
CJNE
MOV
ACALL
RET
K11:
CJNE
MOV
ACALL
RET
K12:
CJNE
MOV
ACALL
RET

A,#11110000B
A,#01110000B,K01
P3,#00010001B
PULSE

;1

A,#10110000B,K02
P3,#00010100B
PULSE

;4

A,#11010000B,K03
P3,#00010111B
PULSE

;7

A,#11100000B,K04
P3,#00011010B
PULSE

;*10

A,#11110000B
A,#01110000B,K11
P3,#00010010B
PULSE

;2

A,#10110000B,K12
P3,#00010101B
PULSE

;5

A,#11010000B,K13
P3,#00011000B
PULSE

;8

A,#11100000B,K14
P3,#00010000B
PULSE

;0

K13:
CJNE
MOV
ACALL
K14:
RET

MikrokontrolerMCS51

120

;-----------------------------------;
KEYPAD KOLOM 2
;-----------------------------------KOLOM2:
ANL
CJNE
MOV
ACALL
RET
K21:
CJNE
MOV
ACALL
RET
K22:
CJNE
MOV
ACALL
RET
K23:
CJNE
MOV
ACALL
K24:
RET

A,#11110000B
A,#01110000B,K21
P3,#00010011B
PULSE

;3

A,#10110000B,K22
P3,#00010110B
PULSE

;6

A,#11010000B,K23
P3,#00011001B
PULSE

;9

A,#11100000B,K24
P3,#00011011B
PULSE

;11

PULSE:
SETB
CLR
ACALL
SETB
ACALL
RET

P3.4
P3.4
DELAY
P3.4
DELAY

;---------------------------------; PROSEDUR DELAY


;---------------------------------DELAY:
MOV
R7,#0
U3:
MOV
R6,#0
U2:
MOV
R5,#0
U1:
INC
R5
CJNE
R5,#50,U1
INC
R6
CJNE
R6,#50,U2
INC
R7
CJNE
R7,#50,U3
RET

Dengan

bantuan

DOWNLOADER

program

tersebut

diisikan

ke

mikrokontroler 89C2051.

MikrokontrolerMCS51

121

Sedangkan logika untuk pengambilan dari keypad dan dikeluarkan ke LED


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

Pindahkan datanya ke P2 (output LED)


MOV

P2,A

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

P3.3,$

; TUNGGU TOMBOL DILEPAS

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:
; PROG07.ASM DIGUNAKAN UNTUK MENAMPILKAN DATA DARI KEYPAD KE LED
; JUMPER OUTPUT : DI LED '0'
; JUMPER INPUT
: DI KEY '0'
ORG 0H
JMP START
START:
JB
MOV
ANL
MOV
JNB
SJMP

P3.3,$
A,P0
A,#0FH
P2,A
P3.3,$
START

MikrokontrolerMCS51

; TUNGGU TOMBOL DITEKAN

; TUNGGU TOMBOL DILEPAS

122

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


4. Kemudian keluarlah ke DOS prompt dan ketikkan
A <SPASI>PROG07 <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 PROG01.HEX
<ENTER> dan tekan sebarang tombol
6. Pilih E.Program <ENTER> dan tunggu sebentar sampai ada indikator 100
% dan tekan sembarang tombol
7. Pilih I. Reset dan lihatlah apa yang terjadi dengan tampilan LED nya
8. Kemudian tekan semua tombol dan isilah tabel berikut:

D7

D6

D5

D4

D3

D2

D1

D0

TOMBOL
0
1
2
3
4
5
6
7
8
9
*
#

9. Kesimpulan apa yang anda peroleh ?

.......................................................................................................................
..............................................................................................................

MikrokontrolerMCS51

123