Antarmuka Keypad Matrix Dengan Mikrokontroler - AriSulistiono

10
13/09/13 Antarmuka Keypad Matrix dengan Mikrokontroler - AriSulistiono.Com www.arisulistiono.com/2010/11/antarmuka-keypad-matrix-dengan.html#.UjITJtJShcU 1/10 Posting Lebih Baru » « Posting Lama Tweet 0 0 18 November 2010, 12.34 Antarmuka Keypad Matrix dengan Mikrokontroler Diposting Oleh: Ari Sulistiono | lokasi Tag: Control System , Electronics Hobby , Microcontroller Pendahuluan Keypad (papan tombol) merupakan salah satu bagian HMI atau Human Machine Interface dan memainkan peranan yang sangat penting pada sebuah sistem terpadu dimana input/masukan dari manusia diperlukan di dalam sistem, misal: pintu elektronik, elevator, kalkulator, microwave, dan masih banyak lagi. Keypad Matrix memang sangat akrab digunakan dalam aplikasi-aplikasi mikrokontroler karena aritekturnya yang sederhana dan mudah untuk digabungkan dengan segala macam mikrokontroler. Di dalam bagian dari tutorial ini, kita akan coba mempelajari bagaimana 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. 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. Like 0 Cari Artikel About My Projects CBM Control System Electronics Hobby Ilmu Listrik Info Lowongan Kerja Internet and Blogging Tips It's About My Life Komunikasi Data Lyrics and Chord Coll Microcontroller Power System Products Protection Relays SCADA Serba-Serbi dan Aneka Informasi Tips dan Trik Komputer

Transcript of Antarmuka Keypad Matrix Dengan Mikrokontroler - AriSulistiono

Page 1: Antarmuka Keypad Matrix Dengan Mikrokontroler - AriSulistiono

13/09/13 Antarmuka Keypad Matrix dengan Mikrokontroler - AriSulistiono.Com

www.arisulistiono.com/2010/11/antarmuka-keypad-matrix-dengan.html#.UjITJtJShcU 1/10

Posting Lebih Baru »« Posting Lama

Tweet 0 0

18 November 2010, 12.34

Antarmuka Keypad Matrix dengan Mikrokontroler

Diposting Oleh: Ari Sulistiono | lokasi Tag: Control System, Electronics Hobby,

Microcontroller

Pendahuluan

Keypad (papan tombol) merupakan salah satu bagian HMI atau Human Machine Interface dan memainkan

peranan yang sangat penting pada sebuah sistem terpadu dimana input/masukan dari manusia diperlukan di

dalam sistem, misal: pintu elektronik, elevator, kalkulator, microwave, dan masih banyak lagi.

Keypad Matrix memang sangat akrab digunakan dalam aplikasi-aplikasi mikrokontroler karena aritekturnya

yang sederhana dan mudah untuk digabungkan dengan segala macam mikrokontroler.

Di dalam bagian dari tutorial ini, kita akan coba mempelajari bagaimana 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.

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.

Like 0

Cari Artikel

About My Projects

CBM

Control System

Electronics Hobby

Ilmu Listrik

Info Lowongan Kerja

Internet and Blogging Tips

It's About My Life

Komunikasi Data

Lyrics and Chord Coll

Microcontroller

Power System

Products

Protection Relays

SCADA

Serba-Serbi dan Aneka Informasi

Tips dan Trik Komputer

Page 2: Antarmuka Keypad Matrix Dengan Mikrokontroler - AriSulistiono

13/09/13 Antarmuka Keypad Matrix dengan Mikrokontroler - AriSulistiono.Com

www.arisulistiono.com/2010/11/antarmuka-keypad-matrix-dengan.html#.UjITJtJShcU 2/10

Berdasarkan dari sketsa diatas, maka dapat kita buat sebuah keypad dengan beberapa buah SPST Switch

seperti yang ditunjukkan oleh rangkaian dibawah ini:

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

« Dapatkan Artikel By Email »

Ketik Alamat Email Kirim We

take privacy seriously.

Your email address will not be shared.

« My Project Portfolio »

I have conducted several projects,

trainings, research, develop

software, and sharing ideas &

knowledge on the topics of power

system, control & automation,

SCADA, PLCs, and protective

relaying system at the following

institutions (Portfolio):

View My Complete Resume | Hire Me!

Page 3: Antarmuka Keypad Matrix Dengan Mikrokontroler - AriSulistiono

13/09/13 Antarmuka Keypad Matrix dengan Mikrokontroler - AriSulistiono.Com

www.arisulistiono.com/2010/11/antarmuka-keypad-matrix-dengan.html#.UjITJtJShcU 3/10

buat kolom sebagai input dan kita jadikan baris sebagai output, seluruh prosedur 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 satu dan seketika itu juga membaca nilai kolomnya “0” atau “1”.

Katakanlah untuk pertama kita coba buat program dimana baris pertama menjadi “0”, kemudian pembacaan

kolom dilakukan oleh mikrokontroler. Jika salah satu tombol pada baris pertama yang ditekan maka kolom

yang 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 bagaimana keypad scanning dilakukan dalam mikrokontroler.

Sehingga untuk men-scan keypad secara keseluruhan, kita perlu untuk membuat nilai baris menjadi lowatau

“0” satu per satu dan membaca nilai kolom yanh terkait. Jika ada salah satu dari tombol yang ditekan, hal ini

akan membuat korespondensi dengan kolom untuk berubah ke posisi low, yang mana hal inilah yang akan

memberi kita informasi bahwa sebuah tombol telah ditekan pada baris itu. Jika baris 1 di buat = “0” dan

tombol pada kolom 1 ditekan maka nilai pin mikro untuk kolom 1 akan = “0”, apabila tombol pada kolom 2 yang

ditekan maka pin mikro untuk kolom 2 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

Silahkan klik gambar untuk melihat dalam ukuran sebenarnya.

« Join Our Community! »

Join this sitew ith Google Friend Connect

Members (9)

Already a member? Sign in

Kicau Di Twitter Hari Ini!

Dinding Cas Cis Cus..!

ardi: selamat pagi

ardi: tes tes

nicola tesla: nice blog...keep spirit!!..

Mansur Hidayat: salam kenal, blognya mantap ninformatif

Fauzan: ri

Fauzan: ri. blog nya keren... minta template nyadong

harland: salam bergabung [Get a Cbox] refresh

name e-mail / url

message Go

help · smilies · cbox

Page 4: Antarmuka Keypad Matrix Dengan Mikrokontroler - AriSulistiono

13/09/13 Antarmuka Keypad Matrix dengan Mikrokontroler - AriSulistiono.Com

www.arisulistiono.com/2010/11/antarmuka-keypad-matrix-dengan.html#.UjITJtJShcU 4/10

Rangkaian diatas hanya untuk menunjukkan bagian koneksi keypad ke mikrokontroler saja dan tidak meliputi

rangkaian reset dan kristal. Untuk yang masih latihan, kamu harus memiliki rangkaian mikro lengkap dengan

tombol reset dan kristal.

►Keypad Connections with 8051 Microcontroller

Please click on the image to enlarge it

Circuit shown above is for demonstration and does not 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:

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

Page 5: Antarmuka Keypad Matrix Dengan Mikrokontroler - AriSulistiono

13/09/13 Antarmuka Keypad Matrix dengan Mikrokontroler - AriSulistiono.Com

www.arisulistiono.com/2010/11/antarmuka-keypad-matrix-dengan.html#.UjITJtJShcU 5/10

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 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

Page 6: Antarmuka Keypad Matrix Dengan Mikrokontroler - AriSulistiono

13/09/13 Antarmuka Keypad Matrix dengan Mikrokontroler - AriSulistiono.Com

www.arisulistiono.com/2010/11/antarmuka-keypad-matrix-dengan.html#.UjITJtJShcU 6/10

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 |

| Keypad. |

+---------------------------------------+

Page 7: Antarmuka Keypad Matrix Dengan Mikrokontroler - AriSulistiono

13/09/13 Antarmuka Keypad Matrix dengan Mikrokontroler - AriSulistiono.Com

www.arisulistiono.com/2010/11/antarmuka-keypad-matrix-dengan.html#.UjITJtJShcU 7/10

*/ 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 release

return key; //return key number }

k+=4; //next row key number

keyport |= 0x80>>i; //make the row high again

Page 8: Antarmuka Keypad Matrix Dengan Mikrokontroler - AriSulistiono

13/09/13 Antarmuka Keypad Matrix dengan Mikrokontroler - AriSulistiono.Com

www.arisulistiono.com/2010/11/antarmuka-keypad-matrix-dengan.html#.UjITJtJShcU 8/10

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

}

return FALSE; //return false if no key pressed }

Selamat mencoba dan terimakasih telah mebaca tulisan saya. Semoga bermanfaat.

You may share this document under Creative Commons License – Terima kasih telah

membaca tulisan ini. © 2011 Ari Sulistiono, Indonesian Electrical Engineer.

Tags: Control System, Electronics Hobby, Microcontroller

Artikel Serupa yang DirekomendasikanControl 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?

Antarmuka Keypad Matrix dengan Mikrokontroler

Electronics Hobby

Antarmuka Keypad Matrix dengan Mikrokontroler

Membuat Baterry Monitor Sederhana (Skematik)

Mengenal Dasar Pemrograman LCD (Liquid Crystal Display)

Microcontroller

Antarmuka Keypad Matrix dengan Mikrokontroler

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

Page 9: Antarmuka Keypad Matrix Dengan Mikrokontroler - AriSulistiono

13/09/13 Antarmuka Keypad Matrix dengan Mikrokontroler - AriSulistiono.Com

www.arisulistiono.com/2010/11/antarmuka-keypad-matrix-dengan.html#.UjITJtJShcU 9/10

dalam folder file 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, modifikasi dan distribusikan secara bebas, asalkan tetap mencantumkan nama penulis serta URL

lengkap artikel.

3 komentar

Apa ini?JUGA DI ARISULISTIONO.COM

Tulis komentar Anda disini...

Terlama Komunitas ⚙ ⤤Bagikan

Balas

Blacksweat91 • 2 tahun yang lalu

cara membaca keypad bagaimana?

1△ ▽

Balas

Ari Sty . • 2 tahun yang laluM o d > Blacksweat91

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

ikwan • setahun yang lalu

Pak, apakah terima jasa pembuatan keypad??

△ ▽

1★

Bagikan ›

Bagikan ›

Bagikan ›

KOMENTAR

Page 10: Antarmuka Keypad Matrix Dengan Mikrokontroler - AriSulistiono

13/09/13 Antarmuka Keypad Matrix dengan Mikrokontroler - AriSulistiono.Com

www.arisulistiono.com/2010/11/antarmuka-keypad-matrix-dengan.html#.UjITJtJShcU 10/10

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, modifikasi dan distribusikan secara bebas, asal tetap mencantumkan URL lengkap artikel.

RSS FEEDS XHTML 1.1 KE ATAS

Contact

Apa ini?JUGA DI ARISULISTIONO.COM

Taukah Anda? Hari ini adalah Hari Pi(π).. :: Catatan Ari Sulistiono :: …

4 komentar • 4 tahun yang lalu

harto — Berkunjung tuk mempererat tali

silaturahim jalin persahabatan sesama

saudaraku para blogger. Ada info …

DS No. B4.2 Moving Handle-nya Lepas!Masih Ada 150kV Disana...

Satu komentar • 3 bulan yang lalu

sobatpenghibur — sabar ya mas Ari,

segala sesuatu mungkin takkan berbuah

indah didunia. Yakinlah setiap …

Um pan Kom entarr Langganan via em ai l✉