Anda di halaman 1dari 8

PERCOBAAN

INTERFACE DENGAN KEY- PAD

I. DASAR TEORI

Pada mikrokomputer MTK-85 disediakan unit Key-pad (Tombol) yang berfungsi untuk
memasukkan Instruksi dan data pada memori Trainer MTK-85. Key-pad terdiri dari 24 key
seperti ditunjukkan pada gambar 1. Selain tombol untuk memasukkan instruksi dan data tombol
ini juga digunakan sebagai tombol masukan untuk fungsi kendali seperti tombol MOD dan
USER.

Gambar 1. Rangkaian Key-pad


Dari gambar 1 dapat dilihat bahwa susunan key-pad terdiri dari 4kolom x 6 baris, dimana
kolom dihubungkan dengan keluaran decoder 74LS145 dan baris dihubungkan pada port A
8255. Dekoder 74LS145 berfungsi untuk memilih satu dari kolom yang sesuai dengan
masukannya, dimana masukan 74LS145 diberikan dari Port C Lower PPI 8255. Baris key-pad
dihubungkan ke port A dari PPI 8255 yang diset sebagai masukan. Tombol yang ditekan akan
menghubungkan kolom terpilih key-pad dengan baris key-pad terpilih. Jika tombol ditekan
maka logika masukan baris terpilih akan sama dengan logika kolom terpilih. Jika tombol
dilepas masukan baris terbuka atau logika 1.
Untuk mendeteksi tombol dilakukan dengan memberikan logika 0 pada kolom 0 yang
terpilih dan mendeteksi pada baris mana yang mendapat logika 0. Jika tidak ada logika 0 pada
baris berarti tidak ada tombol pada kolom tersebut yang ditekan. Jika belum ada tombol ditekan
pada kolom 0 dilanjutkan dengan memeriksa tombol pada kolom 1 dengan memberikan logika 0
ke kolom 1. Jika pada baris ada logika 0 berarti ada tombol yang ditekan. Untuk menentukan

1
tombol yang ditekan nilai logika pada baris digabungkan dengan nilai yang diberikan pada
masukan kolom. Tabel 1 merupakan logika nilai baris dan kolom dari setiap tombol.
Tabel 1. Data Trace dan Nilai Tombol
KOLOM BARIS NILAI TOMBOL
PC3 PC2 PC1 PC0 PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0
0 0 0 0 1 1 1 1 1 1 1 0 01 RUN
0 0 0 0 1 1 1 1 1 1 0 1 02 INC
0 0 0 0 1 1 1 1 1 0 1 1 03 0
0 0 0 0 1 1 1 1 0 1 1 1 04 4
0 0 0 0 1 1 1 0 1 1 1 1 05 8
0 0 0 0 1 1 0 1 1 1 1 1 06 C

0 0 0 1 1 1 1 1 1 1 1 0 09 ALT
0 0 0 1 1 1 1 1 1 1 0 1 0A DEC
0 0 0 1 1 1 1 1 1 0 1 1 0B 1
0 0 0 1 1 1 1 1 0 1 1 1 0C 5
0 0 0 1 1 1 1 0 1 1 1 1 0D 9
0 0 0 1 1 1 0 1 1 1 1 1 0E D

0 0 1 0 1 1 1 1 1 1 1 0 11 ADDR
0 0 1 0 1 1 1 1 1 1 0 1 12 STEP
0 0 1 0 1 1 1 1 1 0 1 1 13 2
0 0 1 0 1 1 1 1 0 1 1 1 14 6
0 0 1 0 1 1 1 0 1 1 1 1 15 A
0 0 1 0 1 1 0 1 1 1 1 1 16 E

0 0 1 1 1 1 1 1 1 1 1 0 19 DATA
0 0 1 1 1 1 1 1 1 1 0 1 1A HOME
0 0 1 1 1 1 1 1 1 0 1 1 1B 3
0 0 1 1 1 1 1 1 0 1 1 1 1C 7
0 0 1 1 1 1 1 0 1 1 1 1 1D B
0 0 1 1 1 1 0 1 1 1 1 1 1E F
x X x x X 0 X X X X x X MOD
x X x x 0 X X X X X x X USER
Catatan.Tombol MOD dan USER1 tdk bentuk matriks PA6 =MOD, PA7= User1

Percobaan 1. Mendeteksi Tombol


Tujuan : Untuk mengetahui cara mendeteksi Tombol yang disusun secara Matrix Baris kolom.

Sesuai dengan gambar rangkaian gambar 1 Tombol disusun terdiri atas kolom dan baris.
Pendeteksian Tombol dilakukan dengan memberikan logika 0 pada kolom dan memeriksa baris
yang mendapat logika 0. Jika Tombol yang kolomnya diberi logika 0 ditekan maka kolomnya
akan tersambung ke baris tersebut juga mendapat logika 0. Dengan demikian nilai tombol
adalah gabungan nilai Kolom dengan nilai Baris.

Algoritma Deteksi Tombol


1. -Inisialisasi PPI 8255
2. -Set nilai Kolom=0
3. -Berikan nilai kolom ke Kolom
4. -Periksa bit-bit baris
5. -Apakah ada logika 0
6. -Jika ada simpan nilai kolom dan baris dan lanjut ke langkah 10

2
7. -Jika tidak ada logika 0 naikkan nilai kolom
8. -Periksa kolom apakah kolom terakhir, kalau belum ulangi langkah 3
9. -Jika terakhir ulangi langkah awal (2)
10. Tukar nilai baris dan kolom ke nilai Tombol
11. Selesai
Program Periksa Tombol:
Address Machine Label Mnemonic Komentar
8100 3E-98 MVI A,98H Inisialisasi
8102 D3-13 OUT 13H
8104 CD-30-88 CALL TUNDA2 Mengatasi Bounch saat RUN ditekan
8107 0E-00 ULANG: MVI C,00 Set nilai kolom =00
8109 79 DETEK1: MOV A,C Ambil nilai kolom
810A D3-12 OUT 12H Berikan ke kolom tombol
810C CD-20-88 CALL TUNDA Tunggu
810F DB-10 IN 10H Baca Baris
8111 47 MOV B,A Simpan nilai baris
8112 E6-3F ANI 3FH Periksa Baris
8114 FE-3F CPI 3FH
8116 C2-23-81 JNZ TUKAR Lompat jika ada ditekan
8119 0C INR C Naikkan nilai kolom
811A 79 MOV A,C Periksa nilai kolom
811B FE-04 CPI 04 Apakah telah maksimum
811D C2-09-81 JNZ DETEK1 Ulangi jika belum maksimum
8120 C3-07-81 JMP ULANG Jika maksimum kembali ke awal
8123 51 MOV D,C Simpan nilai kolom
8124 58 MOV E,B Simpan nilai baris
8125 78 TUKAR: MOV A,B Ambil nilai Baris
8126 06-00 MVI B,00 Clear nilai Tombol
8128 04 UL_GSR: INR B Naikkan counter baris
8129 0F RRC Periksa bit baris yg logika 0
812A DA-28-81 JC UL_GSR Jika logika 1 ulang periksa
812D 3E-00 MVI A,00 Clear hasil kali
812F 0C INR C Naikkan kolom shg pengali tdk 0
8130 0D KALI: DCR C
8131 CA-3A-81 JZ SELESAI
8134 C6-08 ADI 08 Kalikan nilai kolom dengan 8
8136 C3-30-81 JMP KALI Kurangi pengali
8139 80 SELESAI: ADD B Hasil kali kolom + counter baris
813A FF RST 7 Nilai Tombol pada Acc

8820 1E-FF TUNDA: MVI E,FFH Set banyak loop delay


8822 00 TUN: NOP
8823 1D DCR E Kurangi loop
8824 C2-22-88 JNZ TUN Ulangi jika loop belum habis
8827 C9 RET Kembali

3
8830 26-50 TUNDA2: MVI H,50H
8832 CD -20-88 TUN2: CALL TUNDA
8835 25 DCR H
8836 C2-32-88 JNZ TUN2
8839 C9 RET

Langkah Kerja
1.- Masukkan program Periksa tombol di atas berikut delay
2.- Jalan Program
3.- Tekan tombol angka 0 (program akan langsung keluar ke monitor program)
4.- Periksa isi register D sebagai nilai Kolom dan register E sebagai nilai Baris
5.-Periksa isi register A sebagai nilai Tombol
5. Ulangi eksekusi program dengan menekan tombol yang lainnya seperti pada tabel 1.
6. Ulangi untuk tombol yang lain dan isikan nilai register A, , Register B, Register D dan E pada
Tabel 2.
Tabel 2. Pengujian Nilai Tombol
No Tombol Isi Isi Isi Isi Komentar
Ditekan Register E Register D Register Register A
B (Nilai tombol)
1 0 FB 00 03 00
2 1 FB 01 03 08
3 2 FB 02 03 10
4 3 FB 03 03 18
5 4 F7
6 5
7 6
8 7
9 8
10 9
11 A
12 ADDR
13 DATA
14 +
dst dst

Percobaan 2. Buatlah Program dimana jika tombol 5 ditekan huruf “y” tampil pada peraga 7-
segment digit 0 dan jika tombol 6 ditekan menampilkan “n”
Pertanyaan:
1. Jelaskan cara mendeteksi tombol tersebut
2. Analisa data yang didapat (reg. A,B,D,E) dengan tombol yang ditekan
3. Berikan kesimpulan sementara

4
II. ALGORITMA DAN FLOWCHART

Algoritma Deteksi Tombol


1. -Inisialisasi PPI 8255
2. -Set nilai Kolom=0
3. -Berikan nilai kolom ke Kolom
4. -Periksa bit-bit baris
5. -Apakah ada logika 0
6. -Jika ada simpan nilai kolom dan baris dan lanjut ke langkah 10
7. -Jika tidak ada logika 0 naikkan nilai kolom
8. -Periksa kolom apakah kolom terakhir, kalau belum ulangi langkah 3
9. -Jika terakhir ulangi langkah awal (2)
10. Tukar nilai baris dan kolom ke nilai Tombol
11. Selesai

5
FLOWCHART

Start

Inisialilasi PPI 8255

Set nilai kolom = 0

Berikan nilai kolom ke kolom

Periksa bit – bit baris

Apakah ada
logika 0 ? tidak
ya

Simpa nilai kolom dan Naikkan nilai kolom


Baris

Tukar nilai baris dan kolom


Ke nilai tombol

Periksa kolom , apakah


Kolom terakhir? Jika belum
maka ulangi langkah 3

Jika terakhir ulangi

Selesai

6
III. PERCOBAAN DAN PROGRAM

Program Periksa Tombol:


Address Machine Label Mnemonic Komentar
8100 3E-98 MVI A,98H Inisialisasi
8102 D3-13 OUT 13H
8104 CD-30-88 CALL TUNDA2 Mengatasi Bounch saat RUN ditekan
8107 0E-00 ULANG: MVI C,00 Set nilai kolom =00
8109 79 DETEK1: MOV A,C Ambil nilai kolom
810A D3-12 OUT 12H Berikan ke kolom tombol
810C CD-20-88 CALL TUNDA Tunggu
810F DB-10 IN 10H Baca Baris
8111 47 MOV B,A Simpan nilai baris
8112 E6-3F ANI 3FH Periksa Baris
8114 FE-3F CPI 3FH
8116 C2-23-81 JNZ TUKAR Lompat jika ada ditekan
8119 0C INR C Naikkan nilai kolom
811A 79 MOV A,C Periksa nilai kolom
811B FE-04 CPI 04 Apakah telah maksimum
811D C2-09-81 JNZ DETEK1 Ulangi jika belum maksimum
8120 C3-07-81 JMP ULANG Jika maksimum kembali ke awal
8123 51 MOV D,C Simpan nilai kolom
8124 58 MOV E,B Simpan nilai baris
8125 78 TUKAR: MOV A,B Ambil nilai Baris
8126 06-00 MVI B,00 Clear nilai Tombol
8128 04 UL_GSR: INR B Naikkan counter baris
8129 0F RRC Periksa bit baris yg logika 0
812A DA-28-81 JC UL_GSR Jika logika 1 ulang periksa
812D 3E-00 MVI A,00 Clear hasil kali
812F 0C INR C Naikkan kolom shg pengali tdk 0
8130 0D KALI: DCR C
8131 CA-3A-81 JZ SELESAI
8134 C6-08 ADI 08 Kalikan nilai kolom dengan 8
8136 C3-30-81 JMP KALI Kurangi pengali
8139 80 SELESAI: ADD B Hasil kali kolom + counter baris
813A FF RST 7 Nilai Tombol pada Acc

8820 1E-FF TUNDA: MVI E,FFH Set banyak loop delay


8822 00 TUN: NOP
8823 1D DCR E Kurangi loop
8824 C2-22-88 JNZ TUN Ulangi jika loop belum habis
8827 C9 RET Kembali

8830 26-50 TUNDA2: MVI H,50H


8832 CD -20-88 TUN2: CALL TUNDA
8835 25 DCR H

7
8836 C2-32-88 JNZ TUN2
8839 C9 RET

IV. HASIL

Tabel 2. Pengujian Nilai Tombol


No Tombol Isi Isi Isi Isi Komentar
Ditekan Register E Register D Register Register A
B (Nilai tombol)
1 0 FB 00 03 00
2 1 FB 01 03 08
3 2 FB 02 03 10
4 3 FB 03 03 18
5 4 F7 00 04 00
6 5 F7 01 04 08
7 6 F7 02 04 10
8 7 F7 03 04 18
9 8 EF 00 05 00
10 9 EF 01 05 08
11 A EF 02 05 10
12 B EF 03 05 18
13 C DF 00 06 00
14 D DF 01 06 08
15 E DF 02 06 10
16 F DF 03 06 18
17 INC FD 00 02 00
18 DEC FD 01 02 08
19 STEP FD 02 02 10
20 HOME FD 03 02 18
21 RUN FE 00 01 00
22 ALT FE 01 01 08
23 ADDR FE 02 01 10
24 DATA FE 03 01 18

Anda mungkin juga menyukai