Anda di halaman 1dari 16

Keypad sering digunakan sebagi suatu input pada beberapa peralatan yang

berbasis mikroprosessor atau mikrokontroller. Keypad sesungguhnya terdiri


dari sejumlah saklar, yang terhubung sebagai baris dan kolom dengan susuan
seperti yang ditunjukkan pada gambar 7.2.
Agar mikrokontroller dapat melakukan scan keypad, maka port
mengeluarkan salah satu bit dari 4 bit yang terhubung pada kolom dengan logika
low “0” dan selanjutnya membaca 4 bit pada baris untuk menguji jika ada
tombol yang ditekan pada kolom tersebut. Sebagai konsekuensi, selama tidak
ada tombol yang ditekan, maka mikrokontroller akan melihat sebagai logika
high “1” pada setiap pin yang terhubung ke baris.

PERCOBAAN 7 KEYPAD 4X4 TUJUAN:

1. Memahami rangkaian interface keypad 4x4 dengan mikrokontroller

2. Memahami bahasa assembly untuk pengambilan data keypad

3. Memahami bahasa assembly untuk pengambilan data keypad dan mengeluarkan ke LED

4. Memahami bahasa assembly untuk pengambilan data keypad dan mengeluarkan ke 7 Segmen

5. Memahami bahasa assembly untuk pengambilan data keypad dan mengeluarkan ke LCD Karakter

Gambar 7.1 Rangkaian interface keypad 4x4 Keypad sering digunakan sebagi suatu input pada beberapa peralatan
yang berbasis mikroprosessor atau mikrokontroller. Keypad sesungguhnya terdiri dari sejumlah saklar, yang
terhubung sebagai baris dan kolom dengan susuan seperti yang ditunjukkan pada gambar 7.2.

Agar mikrokontroller dapat melakukan scan keypad, maka port 7-1 2 mengeluarkan salah satu bit dari 4 bit yang
terhubung pada kolom dengan logika low 0 dan selanjutnya membaca 4 bit pada baris untuk menguji jika ada
tombol yang ditekan pada kolom tersebut. Sebagai konsekuensi, selama tidak ada tombol yang ditekan, maka
mikrokontroller akan melihat sebagai logika high 1 pada setiap pin yang terhubung ke baris. Gambar 7.3.
Rangkaian dasar keypad 4x4
7-2

 Percobaan 7.1. scan data keypad 1x4, COR-MEN-UpArrow-DnArrow Pada percobaan ini, akan dilakukan scan data
keypad COR-MEN-UpArr.- DnArr. dan mengeluarkan data ke LED. Untuk melakukan percobaan ini lakukan
beberapa langkah sebagai berikut: 1. Buka jumper pada DAC_EN, apabila sedang terpasang. 2. Hubungkan jumper
pada LED_EN. 3. Hubungkan modul Microcontroller Trainer dengan power supply +5V 4. Hubungkan modul
Microcontroller Trainer dengan rangkaian programmer Gambar 7.4. Display LED sebagai Output Data Keypad 5.
Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program 6. Ketik program berikut ini: col4 bit
P2.0 col3 bit P2.1 col2 bit P2.2 col1 bit P2.3 row1 bit P2.4 row2 bit P2.5 row3 bit P2.6 row4 bit P2.7 keydata equ
70h keybounc equ 71h keyport equ P2 org 0h mov P2,# b start: call keypad4x4 calling subroutine keypad4x4 Mov
A,keydata A = keydata Cjne A,#0FFh,send sjmp start LOOPING FOREVER send: CPL A A = NOT A Mov P0,A P0 = A
Sjmp start LOOPING FOREVER PART 2 7-3

4 ========================================== subroutine scan keypad 1 column x 4 row


========================================== Keypad4x4: mov keybounc,#50 keybounc = 50 mov
keyport,#0ffh keyport=p2= FF clr col4 col1= P3.0 = 0 keycor: jb row4,keymen Key COR djnz keybounc,keycor mov
keydata,#0ah Data Output = 0Ah keymen: jb row3,keyupa Key MEN djnz keybounc,keymen mov keydata,#0bh
Data Output = 0bh keyupa: jb row2,keydna djnz keybounc,keyupa mov keydata,#0ch Data Output = 0ch keydna: jb
row1,nokey djnz keybounc,keydna mov keydata,#0dh Data Output = 0dh Nokey: mov keydata,#0ffh
================================ The end of Keypad 4x4 subroutine ================================
delay: mov R0,#0 delay1:mov R2,#50 djnz R2,$ djnz R0,delay1 end 7. Simpanlah program yang anda ketik dan beri
nama : prog71a.asm 8. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program dari
*.asm ke *.hex. 9. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software ( Lihat
Petunjuk Penggunaan) 10. Lakukan modifikasi pada program tersebut diatas untuk scan data keypad ENT 11.
Lakukan modifikasi pada program tersebut diatas untuk scan data keypad Lakukan modifikasi pada program
tersebut diatas untuk scan data keypad CAN 7-4

5 Percobaan 7.2. Scan data keypad 4x4 dan mengeluarkan ke LCD Pada percobaan ini, akan dilakukan scan data
keypad dan mengeluarkan data ke LCD Karakter. Untuk melakukan percobaan ini lakukan beberapa langkah
sebagai berikut: 1. Pasang jumper EN_LCD 2. Buka jumper pada EN_DAC, apabila sedang terpasang 3. Hubungkan
modul Microcontroller Trainer dengan power supply +5V 4. Hubungkan modul Microcontroller Trainer dengan
rangkaian programmer 5. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program 6. Ketik
program berikut ini: col4 bit P2.0 col3 bit P2.1 col2 bit P2.2 col1 bit P2.3 row1 bit P2.4 row2 bit P2.5 row3 bit P2.6
row4 bit P2.7 keydata equ 70h keybounc equ 71h keyport equ P2 org 0h mov P2,# b call Init_LCD start: call
keypad4x4 calling subroutine keypad4x4 Mov A,keydata A = keydata Cjne A,#0FFh,WrLCD sjmp start LOOPING
FOREVER PART 1 WrLCD: Mov R1,#80h Pick DDRAM 1st row and 1st col call write_inst Mov R1,#30h Add A,R1 Mov
R1,A call write_data write data Sjmp start LOOPING FOREVER PART 2 Init_lcd: mov r1,# b Display clear call
write_inst mov r1,# b Functionset,Data8bit,2 line font 5x7 call write_inst mov r1,# b Display
on,cursoroff,cursorblink off call write_inst mov r1,# b Entry mode, Set increment call write_inst Write_inst: clr P3.6
P3.6 = RS =0 mov P0,R1 P0 = D7 s/d D0 = R1 7-5
SCAN KEY_PAD 4X4
Matrix Keypad 4x4 Keypad adalah bagian penting dari suatu perangkat elektronika yang membutuhkan
interaksi manusia. Keypad berfungsi sebagai interface antara perangkat elektronika atau dikenal dengan
istilah HMI (Human Machine Interface). Matrix Keypad ini memiliki konstruksi atau susunan yang
sederhana dan hemat dalam penggunaan port mikrokontroler.

Konfigurasi keypad dengan susunan bentuk matrix ini bertujuan untuk penghematan port
mikrokontroler karena jumlah tombol yang dibutuhkan banyak pada suatu sistem mikrokontroler.
Gambar 2. 14 Matrix Keypad 4x4 Sumber: https://circuitdigest.com/microcontroller-projects/4x4-
keypadinterfacing-with-pic16f877a 20

Cara Kerja Matrix Keypad 4x4 Matrix Keypad 4x4 memiliki konfigurasi seperti gambar di bawah ini:
Gambar 2. 15 Konfigurasi Matrix Keypapd 4x4 Sumber:
https://rikihamdanielektro.wordpress.com/2014/03/29/keypad

Bila akses port bukan akses parallel , maka Bila C1 dibuat 0, maka kita perlu baca kondisi R1 … R4

Kondisinya bisa di buatkan table

C1 dibuat 0 C2 dibuat 0 C3 dibuat 0 C2 dibuat 0


R1 = 0 bila 1 R1 = 0 bila 2 R1 = 0 bila 3 R1 = 0 bila CLR
ditekan ditekan ditekan ditekan
R2 = 0 bila 4 R2 = 0 bila 5 R2 = 0 bila 6 R2 = 0 bila
ditekan ditekan ditekan ditekan
R3 = 0 bila 7 R3 = 0 bila 8 R3 = 0 bila 9 R3 = 0 bila 8
ditekan ditekan ditekan ditekan
R2 = 0 bila CAN R2 = 0 bila 0 R2 = 0 bila enter R2 = 0 bila 0
ditekan ditekan ditekan ditekan
Bila C1 dibuat 0, Setaip kolom ada
kita bisa uji 4 4 uji berarti ada
kondisi maksimum 16 uji
R1,R2,R3,R4 dan baru tekan
enter.
Baris 1 (Port D2) ; .. D3 ; D4 ; D5

Kolom 1 (Port D6); .. D7; D8; D9

Baris 1

Konstruksi matrix keypad 4x4 pada gambar 2. 15 cukup sederhana, yaitu terdiri dari 4 baris dan 4 kolom
dengan bentuk saklar push button yang diletakkan di setiap persilangan kolom dan 4 kolom. Delapan
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 4×4 ini tidak mengikat, dapat dikonfigurasikan kolom sebagi
input dan baris sebagai output atau sebaliknya. Proses scanning untuk membaca penekanan tombol
pada Matrix Keypad 4×4 untuk mikrokontroler dilakukan secara bertahap, kolom demi kolom dari kolom
pertama hingga kolom keempat dan baris pertama hingga baris keempat.

Program untuk scaning matrix keypad 4×4 dapat bermacam-macam. Proses scanning Matrix Keypad 4x4
dapat dituliskan sebagai berikut:
1. Mengirimkan logika LOW untuk kolom 1 (Col1) dan logika HIGH (tidak usah diberi kondisi,
sudah HIGH) untuk kolom yang lain kemudian membaca data baris, misal tombol SW1 ditekan
maka data baris pertama (Row1) akan LOW sehingga data baris yang dibaca adalah 0111, atau
tombol yang ditekan tombol SW5 maka data pada baris ke 2 akan LOW sehingga data yang
terbaca 1011, atau tombol SW9 21 yang ditekan sehingga data yang terbaca 1101, atau tombol
SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada tombol pada kolom
pertama yang di tekan maka data pembacaan baris akan 1111. 2.
2. Mengirimkan logika LOW untuk kolom 2 (Col2) dan logika HIGH untuk kolom yang lain kemudian
membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW
sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data
pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan
sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang dibaca
adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data
pembacaan baris akan 1111. 3.
3. Mengirimkan logika LOW untuk kolom 3 (Col3) dan logika HIGH untuk kolom yang lain kemudian
membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW
sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data
pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan
sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang dibaca
adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data
pembacaan baris akan 1111.
4. Mengirimkan logika LOW untuk kolom 4 (Col4) dan logika HIGH untuk kolom yang lain kemudian
membaca data baris, misal tombol SW1 ditekan maka data baris pertama (Row1) akan LOW
sehingga data baris yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka data
pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau tombol SW9 yang ditekan
sehingga data yang terbaca 1101, atau tombol SW13 yang ditekan maka data yang dibaca
adalah 1110 dan atau tidak ada tombol pada kolom pertama yang di tekan maka data
pembacaan baris akan 1111.

Kemudian data pembacaan baris tersebut diolah sebagai pembacaan data penekanan tombol
keypad. Sehingga tiap tombol pada Matrix Keypad 4×4 dengan teknik scanning akan menghasilkan
data penekanan tiap-tiap tombol sebagai berikut.
22 SW1 = 0111 0111 SW9 = 0111 1101 SW2 = 1011 0111 SW10 = 1011 1101 SW3 = 1101 0111 SW11
= 1101 1101 SW4 = 1110 0111 SW12 = 1110 1101 SW5 = 0111 1011 SW13 = 0111 1110 SW6 = 1011
1011 SW14 = 1011 1110 SW7 = 1101 1011 SW15 = 1101 1110 SW8 = 1110 1011 SW16 = 1110 1110
Data port mikrokontroler, misalkan pada SW2 = 1011 0111 tersebut terbagi dalam nible atas dan
nible bawah dimana data nible atas (1011) merupakan data yang kita kirimkan sedangkan data nible
bawah (0111) adalah data hasil pembacaan penekanan tombol keypad SW2 pada proses scanning
Matrix Keypad 4×4 diatas (Purnama, 2018).

Program dalam fungsi

A. Input data pasien


1. Baca No Urut (int, 2 byte)
2. Baca Gender (2 byte/ 1 byte)
3. Baca Kelahiran ( 6 byte) dan proses hasil Umur
4. Umur (2 byte)
B. Input Informasi pasien
a. Nomer Urut ( 2 byte)
b. Gender (1 byte)
Input data pasien
c. Umur (1 byte)
Algortima Isi data balita dari keypad , panjang ini bro !

Baca keypad harus jadi kelas tapi buat sendiri !

1. Tampilkan informasi : isi data balita , pilih ya atau tekan enter


2. Tampilkan informasi : Isi nomer urut , nomor urut ini mestinya update, bisa keluar sendiri kali
ya.
3. Baca keypad 3 digit dan simpan pada variable NU (int).
4. Tekan Enter
5. Tampilkan informasi : Isi Jenis Kelamin 0 = P dan 1 L
6. Baca keypad 0 atau 1 dan simpan data pada G (byte)
7. Tekan Enter
8. Tampilkan informasi : Isi Tanggal Lahir
9. Baca keypad dua digit dan simpan data pada TL (int)
10. Tekan Enter
11. Tampilkan informasi : Isi Bulan Lahir
12. Baca keypad dua digit dan simpan data pada BL (int)
13. Tekan Enter
14. Tampilkan informasi : Isi Tahun Lahir
15. Baca keypad dua digit dan simpan data pada ThL (int)
16. Tekan Enter
17. Proses Umur, simpan data umur pada U
18. Tampilkan U pada monitor.

Anda mungkin juga menyukai