Jumat, 20 Januari 2012

Akses Keypad Matrix 4x4 dengan Bascom AVR Menggunakan Mikrokontroler Atmega32

Pada artikel Akses Keypad Matrix 4x4 dengan Bascom AVR Menggunakan Mikrokontroler  Atmega32, kita akan membahas tentang keypad matri
Keypad matrix merupakan sekumpulan tombol-tombol yang disusun secara matrix, yaitu dengan adanya baris dan kolom. Kelebihan dari keypad matrix ini adalah dapat menghemat Port mikrokontroler yang digunakan, misal pada mikrokontroler Atmega 32 digunakan PORTB untuk keypad matrix maka 4 port digunakan sebagai baris dan 4 lain digunakan sebagai kolom. Keypad matrix 4x4 yang artinya terdapat 4 baris dan 4 kolom tombol, dimana semua nya terdapat 16 tombol
Salah satu cara yang digunakan untuk mengakses keypad matrix adalah dengan cara scanning . Kenapa dengan cara scanning? karena dalam satu port digunakan untuk beberapa tombol secara bersamaan, dan tidak memungkinkan untuk mengecek dua atau lebih tombol dalam waktu bersamaan.
Proses scanning, adalah sebuah proses pengecekan yang dilakukan dengan cara memberikan pengumpanan data dan pengecekan umpan balik. Dalam hal ini umpan data menggunakan kolom dan umpan balik pada baris. Oleh karena itu untuk melakukan proses scanning maka mikrokontroler mengeluarkan 4 dari 8-bit dengan logika '0' dalam rangkaian keypad matrix pada gambar yaitu baris, dan lainnya untuk menguji jika ada tombol yang ditekan. Maka dalam rangkaian gambar keypad matrix selama tidak ada tombol yang ditekan maka mikrokontroler akan melihat logika '1' pada setiap port yang terhubung pada kolom.

Berikut rangkaian keypad matrix nya :

Keypad matrix
Keypad Matrix

Berikut listing program menggunakan BASCOM AVR :
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
' Created by Mirza Dhanu Sulistya
' posting on 20 january 2012

$regfile = "m32def.dat"
$crystal = 11059200

Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
Config Lcdbus = 4
Config Lcd = 16 * 2
Cursor Off

Config Kbd = Portd , Debounce = 20[ , Delay = 100]
Dim Keypad As Byte

Cls
Main:
Do
Keypad = Getkbd()
Locate 1 , 1
Lcd "Keypad Matrix"
Locate 2 , 1
Goto Label_tombol
Loop

Label_tombol:
Select Case Keypad
Case 0 : Lcd "tombol 0 ditekan"
Case 1 : Lcd "tombol 1 ditekan"
Case 2 : Lcd "tombol 2 ditekan"
Case 3 : Lcd "tombol 3 ditekan"
Case 4 : Lcd "tombol 4 ditekan"
Case 5 : Lcd "tombol 5 ditekan"
Case 6 : Lcd "tombol 6 ditekan"
Case 7 : Lcd "tombol 7 ditekan"
Case 8 : Lcd "tombol 8 ditekan"
Case 9 : Lcd "tombol 9 ditekan"
Case 10 : Lcd "tombol 10 ditkan"
Case 11 : Lcd "tombol 11 ditkan"
Case 12 : Lcd "tombol 12 ditkan"
Case 13 : Lcd "tombol 13 ditkan"
Case 14 : Lcd "tombol 14 ditkan"
Case 15 : Lcd "tombol 15 ditkan"
Case 16 : Lcd "Keypad blm dtekn"
End Select
Goto Main
-----------------------------------------------------------------------------------------------------------------------------------

Akses Keypad Matrix 4x4 dengan Bascom AVR Menggunakan Mikrokontroler  Atmega32 Sedikit penjelasannya program nya:
Karena beberapa syntax dan fungsi-fungsi sudah dijelaskan di beberapa postingan sebelumnya, maka disini aku tidak bahas lagi di Akses Keypad Matrix 4x4 dengan Bascom AVR Menggunakan Mikrokontroler  Atmega32.



Config Kbd = Portd , Debounce = 20[ , Delay = 100]
untuk mengkonfigurasi fungsi KBD pada portD, dan nilai debouncing sebesar 20 dengan tundaan sebesar 100 milisekon.
fungsi umum Confid KBD dalam BASCOM AVR sebagai berikut :
CONFIG KBD = PORTx , DEBOUNCE = value [, DELAY = value]
PORTx dimana letak port yang digunakan, untuk nilai debounce, default nya sebesar 20, untuk nilai maksimum nya 255, Delay, tundaan ini optional, bisa dipakai maupun tidak. parameter yang optional yang menyebabkan fungsi GETKBD() untuk menunggu waktu tertentu saat setelah keypad ditekan ( kurang lebih begitu penjelasan dari INDEX nya BASCO AVR hehheeehe )


Dim Keypad As Byte , mendeklarasikan variabel Keypad dengan tipe data BYTE.

Keypad = Getkbd() , berfungsi untuk scan keypad matrix dan mengembalikan nilai dari tombol yang ditekan.

Goto Label_tombol , untuk melompat ke label tertentu, dalam hal ini melompat ke label Label_tombol

Label_tombol: , label Label_tombol
Select Case Keypad, adalah instruksi operasi bersyarat menggunakan SELECT..CASE, yang diakhiri dengan END SELECT . Untuk mengetahui operator dalam BASCOM AVR, disini


Goto Main, lompat ke label MAIN


Untuk hasil simulasi pada proteus sebagai berikut :
Hasil
Hasil
Sekian dulu artikel Akses Keypad Matrix 4x4 dengan Bascom AVR Menggunakan Mikrokontroler  Atmega32, mohon koreksi nya apabila ada salah kata, semoga bermanfaat buat semuanya. Terimakasih sudah berkunjung.
Artikel Terkait Lainnya :


3 komentar:

numpang nanya mas broow……
kalau untuk menampilkan text di lcd dengan penekanan tombol bagaimana ya caranya mas broow?????suatu misal jika tombol_1 ditekan maka akan tampil text “aaaaa” jika tombol_2 ditekan maka akan tampil text “bbbbbbb”demikian mas broow mohon pencerahannya.makasih………
salam!!!!

mau nanya gan, bisa ga config kbd dibuat 2 port? misal
config kbd = portc
config kbd = portd
karena aku mau pake 2 matrks 4x4. makasih atas pencerahannya.

kesusahan buat desainnya.. minta file designya dong gaan :((

Posting Komentar

Silahkan berkomentar

Site Search