Anda di halaman 1dari 10

LAPORAN PRAKTIKUM

ANTARMUKA MIKRONTROLER DENGAN KEYPAD


Disusun untuk Memenuhi Matakuliah Workshop Mikroprosesor
Yang Dibimbing oleh
Bu Dyah Lestari,S.T.M.Eng.

Disusun Oleh:
RIZKI NUR ARIFIN (150531507817)
UNIVERSITAS NEGERI MALANG
FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PRODI D3 TEKNIK ELEKTRO
SEPTEMBER 2016

MODUL IV
ANTARMUKA MIKROKONTROLER DENGAN KEYPAD
TUJUAN

Mengetahui dan memahami cara mengantarmukakan mikrokontroler


dengan keypad.
Mengetahui dan memahami bagaimana memrogram mikrokontroler
untuk membaca masukan dari keypad.

KEYPAD
Keypad merupakan tombol push button yang disusun sebagai baris
dan kolom sehingga membentuk matriks. Keypad banyak digunakan sebagai
piranti masukan dalam piranti elektronik. Gambar 4.1 memperlihatkan
bentuk
fisik
keypad.
Keypad
ini
memiliki
16
tombol
yaitu
0,1,2,3,4,5,6,7,8,9,A,B,C, D,* dan #.

Gambar 4.1 Keypad 4x4


Dalam modul I/O yang di Dalam gambar 4.2 keypad dihubungkan ke
PORTB mikrokontroler dengan posisi baris (b1-b4) terhubung ke PORTB.0PORTB.3 dan posisi kolom (c1-c4) terhubung ke PORTB.4-PORTB.7.
Sedangkan untuk mengetahui tombol apa yang ditekan oleh user, 8 buah
LED yang terdapat dalam MODUL I/O dihubungkan ke PORTC.

Gambar 4.2
Rangkaian keypad dan LED
ALAT DAN BAHAN YANG DIGUNAKAN

1
1
1
1
1
1

set PC/Laptop yang sudah berisi program Code Vision dan Khazama
buah catu daya DC +5V
buah multimeter
buah ISP Downloader AVR
buah sistem minimum AVR
buah modul I/O

1 buah keypad
1 buah kabel printer USB
2 buah kabel pita hitam

PROSEDUR
1
2
3
4
5

Hubungkan soket jumper PORTB pada minimum system dengan soket


jumper KEYPAD dan soket jumper PORTC pada minimum system
dengan soket jumper OUTPUT pada I/O.
Buat program dengan menggunakan aplikasi Code Vision AVR
Buatlah file project (.prj) kemudian pilih IC yang digunakan
(ATmega8535) dan atur clock 4.000 Mhz. (seperti praktikum
sebelumnya)
Buatlah file source (.c) kemudian hubungkan file project dengan file
source seperti pada praktikum sebelumnya.
Tambahkan file header

Buatlah program utama dan inisialisasikan PORTB.0-PORTB.3 sebagai


output dengan kondisi awal berlogika HIGH dan PORTB.4-PORTB.7
sebagai input dengan pull-up (DDRB = 0FH dan PORTB=FFH), serta
PORTC sebagai output dan kondisi awal LOW (DDRC = FFH dan
PORTC=00H), sehingga inisialisasi PORTB dan PORTC terlihat sebagai
berikut:

Deklarasikan fungsi keypad() dengan bilangan yang dikembalikan ke


program utama sebagai bilangan integer pada global variabel ( diluar
program utama).

Tambahkan fungsi keypad berikut di luar program utama :

Tuliskan program berikut pada program utama tepatnya di dalam


while(1).

10

Compile dan Build program jika ada yang error perbaiki program.
Masukkan file hex menggunakan Khanzama AVR Programer. Klik auto
program, tekan tombol keypad, amati nyala LED dan isi Tabel 4.1.
Ubah program utama untuk algoritma berikut:
a Jika tombol 0 ditekan semua LED mati.
b Jika tombol 1 ditekan semua LED menyala.
Buatlah satu program dengan algoritma sebagai berikut:
a Jika tombol 0 ditekan LED bit 0 menyala.
b Jika tombol 1 ditekan LED bit 1 menyala.
c Jika tombol 2 ditekan LED bit 2 menyala.
d Jika tombol 3 ditekan LED bit 3 menyala.
e Jika tombol 4 ditekan LED bit 4 menyala.
f Jika tombol 5 ditekan LED bit 5 menyala.
g Jika tombol 6 ditekan LED bit 6 menyala.
h Jika tombol 7 ditekan LED bit 7 menyala.
i Jika tombol 8 ditekan LED menyala sesuai gambar dibawah ini ber
urutan dari atas kebawah dengan delay 1 detik. (Gunakan
perulangan for ...)

11
12

LED Menyala
LED Mati

Jika tombol 9 ditekan LED menyala sesuai gambar dibawah ini ber
urutan dari atas kebawah dengan delay 1 detik. (Gunakan
perulangan for ...)
LED Menyala
LED Mati

k Jika tombol A ditekan LED bit 0,2,4,6 menyala dan bit 1,3,5,7 mati.
l Jika tombol B ditekan LED bit 0,2,4,6, mati dan bit 1,3,5,7 menyala.
m Jika tombol C ditekan ditekan algoritma k dan l dilaksanakan
bergantian dengan delay 1 detik.
n Jika tombol D ditekan ditekan maka LED menyala menunjukkan nilai
biner dua digit terakhir NIM anda.
o Jika tombol * semua LED mati.
p Jika tombol # semua LED menyala.

DATA HASIL PERCOBAAN


1
2

Tabel 4.1
Tombol keypad
Nilai tampilan LED
No
yang ditekan
Tampilan LED
(dalam desimal)
1
0
2
1
3
2
4
3
5
4
6
5
7
6
8
7
9
8
1
0
9
1
1
A
1
2
B
1
3
C
1
4
D
1
5
*
1
6
#
code program pada langkah percobaan nomor 8
Source code program pada langkah percobaan nomor 9

Sou
rce

ANALISA DATA
1
2
3
4

Analisa hasil percobaan pada tabel 4.1!


Instruksi apa yang digunakan untuk mebaca tombol keypad yang
ditekan?
Instruksi yang digunakan untuk menyalakan LED sesuai keypad yang
ditekan?
Buatlah flowchart instruksi pada nomor 3 dan jelaskan algoritmanya!

DATA HASIL PERCOBAAN


1 Tabel
Tombol keypad
Nilai tampilan LED
No
yang ditekan
Tampilan LED
(dalam desimal)
1
0
00000000
0
2
1
00000001
1
3
2
00000010
2
4
3
00000011
3
5
4
00000100
4
6
5
00000101
5
7
6
00000110
6
8
7
00000111
7
9
8
00001000
8
1
0
9
00001001
9
1
1
A
00001010
10
1
2
B
00001011
11
1
3
C
00001100
12
1
4
D
00001101
13
1
5
*
00001110
14
1
6
#
00001111
15
2 Source code program pada langkah percobaan nomor 11

3 Source code program pada langkah percobaan nomor 12

ANALISA DATA

1 Analisa hasil percobaan pada tabel 4.1!

Prinsip kerja dari keypad adalah jika ditekan maka akan bernilai 1
dan jika tidak ditekan bernilai 0, (tergantung rangkaiannya, bisa juga
sebaliknya), dan jika memberikan logika 1 pada row (baris) 0, maka
jika tombol 1 ditekan maka col (kolom) 0 akan bernilai 1, sementara
kolom yang lain dibaris 0 akan bernilai 0, dan selanjutnya jika tombol
2 ditekan maka kolom 2 akan bernilai satu dan kolom yang lain
dibaris 0 akan bernilai 0, begitu seterusnya sampai tombil A, dan
begitupun untuk baris selanjutnya.
Jadi untuk mendeteksi tombol yang ditekan kita tinggal mencari
kombinasi dari 8 bit pin yang bernilai 1 pada baris dan kolomnya
(dalam kasus penggunaan keypad seperti ini), sebagai contoh,
kombinasi pin untuk tombol 1, baris 0 bernilai 1 dan baris lainnya
bernilai 0, kolom 1 bernilai 1 dan kolom lainnya bernilai satu,, sehingga
untuk menyatakan tombol satu dalam bilangan biner, urutannya
sebagai berikut, baris 0, baris1, baris2, baris3, kolom1, kolom2,
kolom3, kolom4 atau tombol 1 = 0b10001000
2 Instruksi apa yang digunakan untuk mebaca tombol keypad yang
ditekan?

3 Instruksi yang digunakan untuk menyalakan LED sesuai keypad yang


ditekan?
If (keypad()==x)PORTC=0bxxxxxxxx
Misalnya : If (keypad()==1)PORTC=0b00000101

4 Buatlah flowchart instruksi pada nomor 8 dan jelaskan algoritmanya!


Mulai

Set nilai kolom ke


i=0
Baca baris ke j

Nilai baris ke j=0

ya

Keypad di tekan
tampilkan data

tidak

j=j+1
Scan baris

j>3?

tidak
ya
J=0

i=i+1

i>3

Scan kolom berikut

Kembali scan kolom 0


I=0

Finish

Penejelasan Algoritma
1. Kolom pertama PORTB.7 / C0 diberi logika 0 kolom yang lain
diberi 1.
2. Kemudian cek PORTB.3 sampai PORTB.0 jika tombol ditekan maka
salah satu diantara PORTB.3~PORTB.0 akan bernilai 0.
a.jika tombol o ditekan maka PORTB.3 akan bernilai 0 ,
PortB.3~PORTB.0 akan bernilai 0111
b.jika tombol 4 ditekan maka PORTB.2 akanbernilai 0 ,
PortB.3~PORTB.0 akan bernilai 1011
c.jika tombol 8 ditekan maka PORTB.1 akanbernilai 0 ,
PortB.3~PORTB.0 akan bernilai 1101
d.jika tombol C ditekan maka PORTB.0 akanbernilai 0 ,
PortB.3~PORTB.0 akan bernilai 1110
e.dst.
3. Kolom ke dua di beri 0 kolom yang lain diberi 1 kemudian proses
diatas (no 1 dan 2 ) diulangi

KESIMPULAN

1.

Keypad merupakan tombol push button yang disusun sebagai baris


dan kolom sehingga membentuk matriks. Keypad sebagai input dan
LED sebagai output. Keypad dihubungkan ke PORTB mikrokontroler
dengan posisi baris (b1-b4) terhubung ke PORTB.0-PORTB.3 dan posisi
kolom (c1-c4) terhubung ke PORTB.4-PORTB.7. Sedangkan untuk
mengetahui tombol apa yang ditekan oleh user, 8 buah LED yang
terdapat dalam modul dihubungkan ke PORTC. Agar lampu LED dapat
menyala dan mati maka pada script perlu di deklarasikan variabel LED
terslebih dahulu.Unsigned char keypad(); Berfungsi untuk
mendeklarasikan fungsi keypad() dengan bilangan yang dikembalikan
ke program utama sebagai bilangan integer.

2.

Dalam memprogram mikrokontroler untuk menyalakan suatu LED


adalah dengan memasukkan instruksi-instruksi dalam sebuah program
sesuai dengan tampilan LED yang diinginkan.

DAFTAR PUSTAKA

Modul 5.2010. Antarmuka Mikrokontroler Dengan Keypad.Malang:Universitas


Negeri Malang, Jurusan Teknik Elektro:
http://www.ari-sty.cz.cc/2010/11/antarmuka-keypad-matrix-dengan.html (Online)