Anda di halaman 1dari 12

Laporan Praktikum

Laboratorium MIKROKONTROLER 1
8051

Proyek 06
Keypad

Disusun oleh:

Kelompok EK-2A / 01
06 - Ari Hardoyo Abdur Rahman NIM 3.32.15.0.06
12 - Helmi Adi Pradana 3.32.15.0.12
18 - Prasetyo Muhammad Sakti 3.32.15.0.18

Dosen: Dr. Samuel BETA; Ing-Tech.,M.T.

PROGRAM STUDI TEKNIK ELEKTRONIKA


JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI SEMARANG
2016-2017
Lab. Mikrokontroler I 1

Proyek 06
KEYPAD

1. Tujuan
Tujuan dari percobaan ini praktikan dapat :
Memahami cara kerja keypad secara keseluruhan dan mampu membuat masukan dari
keypad
Memahami cara kerja perangkat keras (rangkaian) keypad dan mampu menghubungkan
mikrokontroler 8051 dengan keypad
Memahami cara kerja perangkat lunak (program) dan perintah bahasa rakitan
mikrokontroler 8051 dan mampu membuat program untuk rangkaian keypad

2. Dasar Teori

Untuk mengakses memory atau register, prosesor 8051 memiliki beberapa cara
pengalamatan, yaitu :
1. Pengalamatan Register (register addressing).
Cara ini hanya berlaku untuk register R0 sampai R7. Misalnya instruksi;
MOV R7,22H menyebabkan isi RAM internal alamat 22H disalin ke
Register R7.
2. Pengalamatan Langsung (direct addressing).
Cara pengalamatan seperti ini hanya berlaku untuk RAM internal dan SFR. Pada
cara ini, dalam instruksinya operand ditunjukkan oleh suatu alamat yang
lebarnya 8-bit. Misalnya instruksi;
MOV 24H,22H menyebabkan isi RAM internal alamat 22H disalin ke RAM
internal alamat 24H.
MOV TMOD,#00010001B menyebabkan angka biner 00010001
dimasukkan ke register TMOD.
MOV 24H,P1 menyebabkan kondisi pin pada Port 1 direkam ke dalam
RAM internal alamat 24H.
3. Pengalamatan tidak langsung (indirect addressing).

P06 Keypad
Lab. Mikrokontroler I 2
Cara pengalamatan ini hanya berlaku untuk RAM internal. Pada cara ini,
instruksi menunjukkan suatu register yang isinya adalah alamat dari suatu
operand . Misalnya instruksi;
MOV @R0,22H menyebabkan isi RAM internal alamat 22H disalin ke
RAM internal yang alamatnya tersimpan pada registe R0.
4. Pengalamatan segera (immediate addressing).
Cara ini berlaku untuk RAM internal dan SFR, di mana data yang akan
dilibatkan tertulis langsung pada instruksinya, misalnya instruksi;
MOV TMOD,#00010001B menyebabkan angka biner 00010001
dimasukkan ke register TMOD.
MOV 24H,#22H menyebabkan angka 22H dimasukkan ke RAM internal
alamat 24H.
5. Pengalamatan berindeks (indexed addressing).
Biasanya cara ini digunakan untuk mengambil data yang ditulis pada memory
program. Cara ini ditujukan untuk menbaca look-up table yang ada di memori
program. Misalnya instruksi;
MOVC A,@A+DPTR menyebabkan data yang terletak pada memory yang
alamatnya merupakan hasil penjumlahan isi register A dengan isi register
DPTR disalin ke register A.
CPL bit berfungsi melengkapi variabel bit ditentukan. Sedikit yang telah menjadi 1
diubah menjadi 0 dan sebaliknya. Tidak ada yang lain flag yang terpengaruh. CLR dapat
beroperasi pada carry atau bit langsung dialamatkan.
Catatan: Ketika instruksi ini digunakan untuk memodifikasi output pin, nilai yang
digunakan sebagai data asli dibaca dari output data latch, bukan input pin. Misalnya
instruksi;
Port 1 sebelumnya telah ditulis dengan 5BH (01.011.101 B). instruksi mengikuti
urutan, CPL P1.1CPL P1.2 meninggalkan pelabuhan diatur ke 5BH (01.011.011
B).
CLR bit berfungsi membersihkan bit ditunjukkan (reset ke 0). Tidak ada flag lain
yang terpengaruh. CLR dapat beroperasi pada carry flag atau bit langsung dialamatkan.
Misalnya instruksi;
Port 1 sebelumnya telah ditulis dengan 5DH (01.011.101 B). Instruksi berikut,
CLR P1.2 meninggalkan pelabuhan set ke 59H (01.011.001 B).

P06 Keypad
Lab. Mikrokontroler I 3
SetB menetapkan bit ditunjukkan untuk satu. SetB dapat beroperasi pada carry flag
atau bit langsung dialamatkan. Tidak ada yang lain flag yang terpengaruh. Misalnya
instruksi;
Membawa bendera dibersihkan. Output Port 1 yang telah ditulis dengan nilai
34h (00110100B). Pengikut instruksi,
SetB C
SetB P1.0
menetapkan membawa bendera ke 1 dan perubahan output data pada Port 1 ke
35H (00110101B).
SJMP cabang kontrol program tanpa syarat ke alamat yang ditunjukkan. Tujuan cabang
dihitung dengan menambahkan perpindahan masuk instruksi byte kedua untuk PC, setelah
incrementing PC dua kali. Oleh karena itu, berbagai tujuan yang diizinkan adalah dari 128 byte
sebelumnya instruksi ini 127 byte mengikutinya
KEYPAD

Keypad adalah bagian penting dari suatu perangkat elektronika yang membutuhkan
interaksi manusia. Keypad berfungsi sebagai interface antara perangkat (mesin) elektronik
dengan manusia atau dikenal dengan istilah HMI (Human Machine Interface). Matrix
keypad 44 pada artikel ini merupakan salah satu contoh keypad yang dapat digunakan
untuk berkomunikasi antara manusia dengan mikrokontroler. Matrix keypad 44 memiliki
konstruksi atau susunan yang simple dan hemat dalam penggunaan port mikrokontroler.
Konfigurasi keypad dengan susunan bentuk matrix ini bertujuan untuk penghematan port
mikrokontroler karena jumlah key (tombol) yang dibutuhkan banyak pada suatu sistem
dengan mikrokontroler. Konstruksi matrix keypad 44 untuk mikrokontroler dapat dibuat
seperti pada gambar berikut.

P06 Keypad
Lab. Mikrokontroler I 4

Konstruksi Matrix Keypad 44 Untuk Mikrokontroler


Konstruksi matrix keypad 44 diatas cukup sederhana, yaitu terdiri dari 4 baris
dan 4 kolom dengan keypad berupas saklar push buton yang diletakan disetiap persilangan
kolom dan barisnya. Rangkaian matrix keypad diatas terdiri dari 16 saklar push buton dengan
konfigurasi 4 baris dan 4 kolom. 8 line yang terdiri dari 4 baris dan 4 kolom tersebut
dihubungkan dengan port mikrokontroler 8 bit. Sisi baris dari matrix keypad ditandai dengan
nama Row1, Row2, Row3 dan Row4 kemudian sisi kolom ditandai dengan nama Col1, Col2,
Col3 dan Col4. Sisi input atau output dari matrix keypad 44 ini tidak mengikat, dapat
dikonfigurasikan kolom sebagi input dan baris sebagai output atau sebaliknya tergantung
programernya.

3. Praktikum
3.1. Keypad
3.1.1. Permasalahan

Program untuk menyalakan LED sesuai tombol keypad yang ditekan.


Masukan : Keypad
Proses : Peralihan data segera ke pintu P0
Keluaran : Pintu P0.0-7 (LED)

P06 Keypad
Lab. Mikrokontroler I 5
Gambar rangkaian :

3.1.2. Penyelesaian

Pada program untuk menampilkan tombol keyapad yang ditekan pada LED.
LED menyala sesuai dengan nomor atau kode yang tertera pada LED. Sebagai contoh
ketika tombol angka 1 pada Keypad ditekan makan tampilan pada LED sesuai kode
biner angka 1 = 00000001b.

3.1.2.1. Diagram Alir


Mulai

Input
Keypad

Tombol T
ditekan?

Led (heksa) = kode


keypad

Tampilkan
pada LED

Selesai

P06 Keypad
Lab. Mikrokontroler I 6

3.1.2.2. Program
;/* =======================================================================
;/* =======================================================================
; Pemrogram : Kelompok EK-2A /06
; 1. 06-Ari Hardoyo A.R. NIM:3.32.15.0.06
; 2. 12-Helmi Adi Pradana NIM:3.32.15.0.12
; 3. 18-Prasetyo Muhammad S. NIM:3.32.15.0.18
;Tgl.Praktikum : Rabu, 5 April 2017
;===================================================================
=======
;Proyek06-Keypad
;P061a-Keypad1k
; program untuk menyalakan LED sesuai tombol keypad yang ditekan
;-------------------------------------------------------------------
-------
;Materi baru:
;- masukan keypad
;-------------------------------------------------------------------
-------
;Komponen:
;- 1x Papan Tombol (Keypad) 3x4
;- 8x R10K
;- 8x LED
;- 8x R220
;===================================================================
==== */
;=== Deklarasi variabel ===
led equ P0 ;led dipasang pada P0
keypad equ P2 ;keypad dipasang pada P2
tombol equ 30h ;tombol yang ditekan
pantul equ 31h ;pencacah (anti pantul)
lepas equ 11111111b ;tombol dilepas (tidak ada yang ditekan)

;Koneksi baris dan kolom pada pintu P2


bar3 equ P2.0 ;baris 3
bar2 equ P2.1 ; 2
bar1 equ P2.2 ; 1
bar0 equ P2.3 ; 0
kol2 equ P2.4 ;kolom 2
kol1 equ P2.5 ; 1

P06 Keypad
Lab. Mikrokontroler I 7
kol0 equ P2.6 ; 0

;Nilai tombol sesuai baris dan kolom


k0b3 equ 03h ;kolom 0 baris 3: tombol [3]
k0b2 equ 06h ; 2: [6]
k0b1 equ 09h ; 1: [9]
k0b0 equ 0fh ; 0: [#]
;=== Pengesetan Awal ====
ORG 0 ;alamat awal
awal:
MOV keypad,#lepas ;semua baris dan kolom dinon-aktifkan

;=== Program Utama ===


mulai:
CALL bacaKeypad ;baca keypad
MOV A,tombol ; hasil pembacaan

CJNE A,#lepas,tampil;tombol ditekan? Y: tampilkan


SJMP mulai ; T: ulangi baca lagi

tampil:
CPL A ;led aktif 0
MOV led,A ;tampilkan di led

SJMP mulai ;kembali ke mulai


;-------------------------------------------------------------------
-------

;=== Sub program ===

;-bacaKeypad: membaca tombol yang ditekan ---------------------------


------
bacaKeypad:
MOV pantul,#10 ;anti pantul

kolom0: ; ----- Kolom 0 -----


MOV keypad,#lepas ;semua baris dan kolom dinon-aktifkan
CLR kol0 ;hanya 1 kol yang diaktifkan (aktif 0)

P06 Keypad
Lab. Mikrokontroler I 8
kol0bar0:
JB bar0,kol0bar1 ;ditekan? 1: T:cek selanjutnya
DJNZ pantul,kol0bar0; 0 Y:pastikan (anti pantul)
MOV tombol,#k0b0 ;hasil pasti tombol yg ditekan
RET ;kembali
kol0bar1:
JB bar1,kol0bar2
DJNZ pantul,kol0bar1
MOV tombol,#k0b1
RET ;kembali
kol0bar2:
JB bar2,kol0bar3
DJNZ pantul,kol0bar2
MOV tombol,#k0b2
RET ;kembali
kol0bar3:
JB bar3,kosong
DJNZ pantul,kol0bar3
MOV tombol,#k0b3
RET ;kembali

kosong:
MOV keypad,#lepas ;semua baris dan kolom dinon-aktifkan
balik:
RET ;kembali

;-------------------------------------------------------------------
-------

;=== Tabel Konversi ===


END ;selesai

;===================================================================
==== */

P06 Keypad
Lab. Mikrokontroler I 9

3.1.2.3. Hasil Percobaan

Untuk mendapatkan hasil percobaan ini, langkah percobaan yang dilakukan adalah
sebagai berikut:
1. Membuka aplikasi EdSim51DI, geser kursor ke tombol [ DI / LD ], klik [ DI ]. Setelah
muncul menunya, mencari LED 0 lalu dikonfigurasi pada P[0] bit [7]. Kemudian
simpan, keluar, dan buka kembali.
2. Memasukkan program, mengkompilasi [Assm], menjalankan program langkah per
langkah [ Step ].Hasilnya diamati setiap langkah.
3. Sebelum keluar simpan dengan nama: P061a-Keypad4x4.asm dan .hex
4. Selanjutnya , buka software simulasi Proteus > ISIS 8.1 Profesional .
5. Program yang sudah jadi disimulasikan ke Proteus, masukkan file P061a-
KeypadLED.hex ke Mikrokontroler AT89C52. Lalu click tombol play untuk
menjalankan simulasinya. Dan amati hasilnya.
6. Menghubungkan bootloader ke pintu USB komputer dan ke konektor
[PROGRAMER]. Menyalakan modul pelatihan.
7. Membuka program isp. Jika USB sudah terhubung maka progamstate bertuliskan
PROGSIP akan menyala hijau.
8. Membuka program progisp,pilih AT89S52 pada SelectChip, klik load Flash, unggah
file P061a-KeypadLED.hex ke kit, klik erase, kemudian klik auto.

P06 Keypad
Lab. Mikrokontroler I 10
Lihat hasil nya pada layar LCD di modul pelatihan
3.1.3. Pembahasan
Program dengan menggunakan keypad sebagai input dan LED sebagai
output pada pintu 0 menggunakan perintah JB ( jump bit untuk mengecek tombol lain yang
ada pada keypad sehingga pada tombol yang kita tekan akan di pastikan oleh perintah JB
apakan tombol lain di tekan atau tidak.

;=== Program Utama ===


mulai:
CALL bacaKeypad ;baca keypad
MOV A, tombol ;hasil pembacaan
CJNE A,#11111111b, tampil ;apakah tombol ditekan? Y:Tampilkan
SJMP mulai ; T:Ulangi

tampil:
CPL A ;komplemen (led aktif 0)
MOV led, A ;tampilkan
ulang:
SJMP mulai ;ulangi

Pada program utama di atas pada A akan di isi data tombol 1 yang akan di tekan lalu selanjutnya
di beri perintah CJNE untuk memerika apakah tombol 0 di tekan atau tidak setelah perintah
tersebut benar atau tombol di tekan maka program akan melanjutkan ke proses tampil pada
pintu 0 sebagai output LED yaitu bilangan biner angka 1= 00000001b.

4. Simpulan
Dari percobaan praktikum keenam yang berjudul Keypad ini kami menarik kesimpulan bahwa:
1. Program pertama untuk menampilkan tombol keypad 4 kolom x 4 baris yang ditekan
pada LED pada program pada deklarasi variabel ditulis :
bar3 equ P2.0 ;baris 3
bar2 equ P2.1 ; 2
bar1 equ P2.2 ; 1
bar0 equ P2.3 ; 0
kol2 equ P2.4 ;kolom 2
kol1 equ P2.5 ; 1
kol0 equ P2.6 ; 0

2. Program kedua untuk menampilkan tombol keypad 4 kolom x 4 baris yang ditekan pada
LED pada deklarasi variable ditambahkan baris dan kolom ditulis :
bar3 equ P2.0 ;baris 3
bar2 equ P2.1 ; 2
bar1 equ P2.2 ; 1
bar0 equ P2.3 ; 0
kol3 equ P2.4 ; 3
kol2 equ P2.5 ;kolom 2
kol1 equ P2.6 ; 1

P06 Keypad
Lab. Mikrokontroler I 11
kol0 equ P2.7 ; 0
=====================

P06 Keypad

Anda mungkin juga menyukai