Você está na página 1de 10

7/30/2017 Antarmuka Keypad Matrix dengan Mikrokontroler - AriSulistiono.

Com

Cari Artikel
« Posting Lama Posting Lebih Baru »

Antarmuka Keypad Matrix dengan Mikrokontroler


18 November 2010, 12.34 Diposting Oleh: Ari Sulistiono | lokasi Tag: Control

System, Electronics Hobby, Microcontroller


Like 0 Share 0 Tweet About My Projects
Control System
Electronics Hobby
Ilmu Listrik
Komunikasi Data
Pendahuluan Microcontroller
Otomotif dan
Keypad (papan tombol) merupakan salah satu bagian HMI atau Human Modi kasi
Machine Interface dan memainkan peranan yang sangat penting pada Power System
sebuah sistem terpadu dimana input/masukan dari manusia diperlukan di Products
dalam sistem, misal: pintu elektronik, elevator, kalkulator, microwave, dan Protection Relays
masih banyak lagi. Reyrolle
RTU
Keypad Matrix memang sangat akrab digunakan dalam aplikasi-aplikasi
SCADA
mikrokontroler karena aritekturnya yang sederhana dan mudah untuk
Substation
digabungkan dengan segala macam mikrokontroler. Automation
Tarbiyah
Di dalam bagian dari tutorial ini, kita akan coba mempelajari bagaimana
Tips & Tricks
caranya untuk membuat interface/antarmuka sebuah keypad matrix 4x4
dan mikrokontroler seri 8051. Serta kita juga akan pelajari disini
bagaimana cara memprogramnya dalam bahasa Assembly dan C.
« Related Websites »

Merakit Keypad Matrix


Pembuatan sebuah keypad matrix umumnya sangat mudah. Seperti yang
ditunjukkan oleh gambar dibawah, kita punya empat baris serta empat
kolom sebagai tahapan awalnya. Diantara setiap persimpangan baris dan
kolom disana kita tempatkan sebuah tombol.

http://www.arisulistiono.com/2010/11/antarmuka-keypad-matrix-dengan.html 1/10
7/30/2017 Antarmuka Keypad Matrix dengan Mikrokontroler - AriSulistiono.Com

Sekarang keypad kita sudah siap, yang kita butuhkan sekarang adalah
menghubungkan baris dan kolom ke dalam port sebuah mikrokontroler dan
memprogram mikrokontroler untuk membaca input dari keypad.

Scanning atau Membaca Keypad Matrix ke dalam


Mikrokontroler
Disana ada banyak sekali metode yang digunakan untuk membaca keypad
matrix, tergantung kepada bagaimana keypad itu sendiri dihubungkan
dengan mikrokontroler, namun logika dasarnya tetaplah sama. Kita buat
kolom sebagai input dan kita jadikan baris sebagai output, seluruh prosedur « Subscribe Via Email
dalam pembacaan keyboard dinamakan sebagai scanning. »

Dalam rangka mendeteksi tombol yang mana yang tengah ditekan dari
rangkaian matrix, kita buat jalur pada sisi baris menjadi low “0” satu per
Ketik Alamat Email
satu dan seketika itu juga membaca nilai kolomnya “0” atau “1”.
Katakanlah untuk pertama kita coba buat program dimana baris pertama Kirim We take privacy

menjadi “0”, kemudian pembacaan kolom dilakukan oleh mikrokontroler. seriously.


Your email address will not be
Jika salah satu tombol pada baris pertama yang ditekan maka kolom yang
shared.
terkait akan ikut menjadi “0”, semisal tombol kedua pada baris pertama
ditekan, maka kolom ke dua akan menjadi low atau “0”. Sehingga kita bisa
tahu bahwa tombol nomor 2 telah ditekan. Ini adalah konsep dasar « About Me »
bagaimana keypad scanning dilakukan dalam mikrokontroler.
I have conducted several projects,
trainings, research, develop software, and

http://www.arisulistiono.com/2010/11/antarmuka-keypad-matrix-dengan.html 2/10
7/30/2017 Antarmuka Keypad Matrix dengan Mikrokontroler - AriSulistiono.Com

Sehingga untuk men-scan keypad secara keseluruhan, kita perlu untuk sharing ideas &
knowledge on the
membuat nilai baris menjadi lowatau “0” satu per satu dan membaca nilai
topics of power
kolom yanh terkait. Jika ada salah satu dari tombol yang ditekan, hal ini system, control &
akan membuat korespondensi dengan kolom untuk berubah ke posisi low, automation, SCADA,

yang mana hal inilah yang akan memberi kita informasi bahwa sebuah PLCs, and protective
relaying system at
tombol telah ditekan pada baris itu. Jika baris 1 di buat = “0” dan tombol
the following
pada kolom 1 ditekan maka nilai pin mikro untuk kolom 1 akan = “0”, institutions
apabila tombol pada kolom 2 yang ditekan maka pin mikro untuk kolom 2 (Portfolio):

akan = “0”, begitu seterusnya..

Okay, jika sudah cukup mengerti, sekarang mari kita mulai berpindah ke
sesi berikutnya yaitu pokok bahasan pemrograman keypad.

Koneksi Keypad Matrix ke AVR Mikrokontroler

View My Complete Resume | Hire/Recruit


Me!

Silahkan klik gambar untuk melihat dalam ukuran sebenarnya.


Dinding Cas Cis Cus..!
Rangkaian diatas hanya untuk menunjukkan bagian koneksi keypad ke
mikrokontroler saja dan tidak meliputi rangkaian reset dan kristal. Untuk tedi: mas, mnt tlg bisa di kirimkan Tutprial
Primavera ke iedifitri@gmail.com
yang masih latihan, kamu harus memiliki rangkaian mikro lengkap dengan Gilang: klw bisa minta tolong kirim file ke alamt
email saya ya mas. hadyangk@gmail.com
tombol reset dan kristal.
Gilang: terima kasih mas
Gilang: boleh saya minta file tentang BMS nya,
►Keypad Connections with 8051 Microcontroller saya rencana ingin membaut analisa terhadap
kegagalan sistem baterai untuk supply perakatan
Please click on the image to scada
Gilang: assalamualaikum mas<
enlarge it [Get a Cbox]
name e-mail / url
Circuit shown above is for message
demonstration and does not help · smilies

include any reset and crystal


circuit. For practical use you need to have a reset circuit and crystal.

Bab Pemrogramman Mikrokontroler AVR


AVR Assembly Programming for ADC0804
CODE:

http://www.arisulistiono.com/2010/11/antarmuka-keypad-matrix-dengan.html 3/10
7/30/2017 Antarmuka Keypad Matrix dengan Mikrokontroler - AriSulistiono.Com

keyport equ P2 ;Keypad port connected


here
col1 equ P2.0 ;Column 1
col2 equ P2.1 ;Column 2
col3 equ P2.2 ;Column 3
col4 equ P2.3 ;Column 4

keyval equ 30H ;To store key number


pressed bit 0H ;Flag

key_init:
mov keyport,#0FH ;Make rows as o/p and col
as i/p
ret

get_key:
mov keyval,#0 ;reset the number
mov keyport,#7FH ;make Row1 low
acall read_col ;read columns

jb pressed, done ;check if flag is set

mov keyval,#4 ;if not then read next row


mov keyport,#0BFH ;make Row2 low
acall read_col ;read columns

jb pressed, done ;check if flag is set

mov keyval,#8 ;if not then read next row


mov keyport,#0DFH ;make row3 low
acall read_col ;read columns

jb pressed, done ;check if flag is set

mov keyval,#12 ;if not read row4


mov keyport,#0EFH ;make row4 low
acall read_col ;read columns

done:
ret

read_col: ;read columns routine


clr pressed ;reset the flag

jb col1, nextcol ;check if first key is


pressed
jnb col1,$ ;if yes then wait for key
release
setb pressed ;set the flag
ret

nextcol: ;read col2


jb col2, nextcol1 ;check if second key is

http://www.arisulistiono.com/2010/11/antarmuka-keypad-matrix-dengan.html 4/10
7/30/2017 Antarmuka Keypad Matrix dengan Mikrokontroler - AriSulistiono.Com

pressed
jnb col2,$ ;if yes then wait for key
release
inc keyval ;its key number 2
setb pressed ;set the flag
ret

nextcol1: ;read col3


jb col3, nextcol2 ;check if third key is
pressed
jnb col3,$ ;if yes then wait for key
release
inc keyval ;its key 3
inc keyval
setb pressed ;set the flag
ret

nextcol2: ;read column 4


jb col4, exit ;check if fourth key
pressed
jnb col4,$ ;if yes then wait for key
release
inc keyval ;its key 4
inc keyval
inc keyval
setb pressed ;set the flag
ret

exit: ;if no key is pressed


clr pressed ;clr the flag
clr keyval ;reset the number
ret

end

Programming AVR in C for ADC0804


CODE:

#include <AT89X51.H> //Include file for 8051


#define keyport P2 //keypad connected to P2
#define col1 P2_0 //column 1
#define col2 P2_1 //column 2
#define col3 P2_2 //column 3
#define col4 P2_3 //column 4
#define TRUE 1 //some defines
#define FALSE 0

/*
+---------------------------------------+
| Prototype: void key_init(void); |
| Return Type: void |
| Arguments: None |
| Description: Initialize ports and |

http://www.arisulistiono.com/2010/11/antarmuka-keypad-matrix-dengan.html 5/10
7/30/2017 Antarmuka Keypad Matrix dengan Mikrokontroler - AriSulistiono.Com

| Keypad. |
+---------------------------------------+
*/
void key_init(){
keyport &=0x0F; //make Rows as o/p and cols are
i/p
}

/*
+-----------------------------------------------+
| Prototype: unsigned char get_key(void); |
| Return Type: unsigned char |
| Arguments: None |
| Description: To read key from the keypad |
+-----------------------------------------------+
*/
unsigned char get_key(){
unsigned char i,k,key=0;
k=1;
for(i=0;i<4;i++){ //loop for 4 rows
keyport &=~(0x80>>i); //to make rows low
1 by 1
if(!col1){ //check if key1 is
pressed
key = k+0; //set key
number
while(!col1); //wait for
release
return key; //return
key number
}
if(!col2){ //check if key2 is
pressed
key = k+1; //set key
number
while(!col2); //wait for
release
return key; //return
key number
}
if(!col3){ //check if key3 is
pressed
key = k+2; //set key
number
while(!col3); //wait for
release
return key; //return
key number
}
if(!col4){ //check if key4 is
pressed
key = k+3; //set key
number
while(!col4); //wait for
http://www.arisulistiono.com/2010/11/antarmuka-keypad-matrix-dengan.html 6/10
7/30/2017 Antarmuka Keypad Matrix dengan Mikrokontroler - AriSulistiono.Com

release
return key; //return
key number
}
k+=4; //next row key
number
keyport |= 0x80>>i; //make the row
high again
}
return FALSE; //return false if
no key pressed
}

Selamat mencoba dan terimakasih telah mebaca tulisan saya. Semoga


bermanfaat.

Apabila anda tertarik dengan tulisan-tulisan kami, anda bisa


mendapatkannya via email dengan mengetikkan alamat email anda di
kolom « Subscribe Via Email » yang ada disamping halaman ini.

Anda memiliki pertanyaan? atau masih ada yang kurang jelas dengan
tulisan kami, silahkan isikan pertanyaan anda pada kolom komentar
dibawah.

You may share this document under Creative Commons License – Terima
kasih telah membaca tulisan ini. © 2011 Ari Sulistiono, Indonesian Electrical
Engineer.

Apabila artikel atau postingan di website ini bermanfaat atau cukup


menarik untuk dibaca, mohon tinggalkan komentar agar kami mendapat
feedback untuk lebih meningkatkan isi postingan di website ini. Pembaca
yang baik adalah yang tidak lupa untuk meninggalkan jejak komentarnya
di website ini.

Tags: Control System, Electronics Hobby, Microcontroller

Artikel Serupa yang Direkomendasikan


Electronics Hobby
Cara Memperbaiki Sendiri Horn Speaker TOA/Speaker Corong Masjid
yang Rusak
Membuat Baterry Monitor Sederhana (Skematik)
http://www.arisulistiono.com/2010/11/antarmuka-keypad-matrix-dengan.html 7/10
7/30/2017 Antarmuka Keypad Matrix dengan Mikrokontroler - AriSulistiono.Com

Mengenal Dasar Pemrograman LCD (Liquid Crystal Display)


Microcontroller
Pulse Width Modulation (PWM): Contoh Program Mikon
Pulse Width Modulation (PWM): Pengenalan
Mengenal Dasar Pemrograman LCD (Liquid Crystal Display)
Tugas Akhir Saya Semasa di Politeknik Negeri Jakarta
Control System
Petunjuk Pengoperasian Redundant Inverter 110VDC-220VAC
Perhitungan Pengaman Motor Listrik
Latar Belakang, Alur Data, Aplikasi & Keterbatasan Protocol Modbus
Bagaimana Sih Siklus Kerja PLTU Batubara Itu?

Artikel berjudul "Antarmuka Keypad Matrix dengan Mikrokontroler", URL artikel:


http://www.arisulistiono.com/2010/11/antarmuka-keypad-matrix-dengan.html
diposting pada tgl. 18 November 2010 , 12.34 di dalam folder le Control
System,Electronics Hobby,Microcontroller. Anda bisa menyimak semua tanggapan pada
artikel ini melalui RSS 2.0 feed. Atau cukup kirim tanggapan. Klik disini untuk mengirim
Artikel ke LintasBerita.Com. | Tulisan/postingan diatas dapat anda salin, cetak, modi kasi
dan distribusikan secara bebas, asalkan tetap mencantumkan nama penulis serta URL
lengkap artikel.

KOMENTAR

http://www.arisulistiono.com/2010/11/antarmuka-keypad-matrix-dengan.html 8/10
7/30/2017 Antarmuka Keypad Matrix dengan Mikrokontroler - AriSulistiono.Com

Komentar Komunitas 
1 Masuk

Urut dari yang Terlama


 Rekomendasikan 1 ⤤ Bagikan

Gabung diskusinya...

MASUK DENGAN

ATAU DAFTAR DISQUS ?

Nama

Blacksweat91 • 6 tahun yang lalu


cara membaca keypad bagaimana?
1△ ▽ • Balas • Bagikan ›

Ari Sty. Mod > Blacksweat91 • 6 tahun yang lalu


Dengan metode "Scanning" nilai bit pada port
yang disambungkan dengan keypad. Lihat kode
program "read_col" untuk bahasa ASM dan lihat
kode program "get_key()" untuk bahasa C.
△ ▽ • Balas • Bagikan ›

ikwan • 5 tahun yang lalu


Pak, apakah terima jasa pembuatan keypad??
△ ▽ • Balas • Bagikan ›

JUGA DI ARISULISTIONO.COM

Kalkulator Arus (Ampere) - Pengujian Tahanan Isolasi


Arus DC, AC 1 Phasa dan dapat Menyelamatkan
AC
2 3 Phasa
komentar • 4 tahun yang lalu• Motor
Satu Listrik
komentar • 4 tahun yang lalu•
Urip Setiabudi — TRIMA Rajalalistrik3 —
KASIH ATAS IDE pertamax. rajalistrik.com
PEMBUATAN
KALKULATOR DAYANYA
Cara Menguji Power Swing Siemens BCU Display with
dengan Menggunakan new Symbol & PLN
Omicron
Satu (disertai
komentar … lalu•
• 3 bulan yang Standard
Satu komentarSymbol
• 4 tahun yang lalu•

AvatarFaizal Radika Hermansyah Avatarmang ohle —


— sampe d bikinin trit Akhirnyaaaaa....postingan

http://www.arisulistiono.com/2010/11/antarmuka-keypad-matrix-dengan.html 9/10
7/30/2017 Antarmuka Keypad Matrix dengan Mikrokontroler - AriSulistiono.Com

Copyright © 2007-2012 Ari Sulistiono's Blog. All rights reserved. || Powered by Google.Com (Blogger.Com, Google
Apps & Picasa.Com).
Seluruh artikel di Ari-Sty.Cz.Cz dapat anda salin, cetak, modi kasi dan distribusikan secara bebas, asal tetap mencantumkan URL lengkap artikel.

RSS FEEDS XHTML 1.1 KE ATAS

http://www.arisulistiono.com/2010/11/antarmuka-keypad-matrix-dengan.html 10/10

Você também pode gostar