1. TUJUAN
1. Mengetahui dan memahami cara mengantarmukakan mikrokontroler dengan keypad.
2. Mengetahui dan memahami bagaimana memprogram mikrokontroler untuk membaca masukan dari keypad.
2. DASAR TEORI
Keypad merupakan tombol push button yang disusun sebagai baris dan kolom sehingga membentuk matriks. Keypad banyak digunakan sebagai piranti masukan dalam piranti elektronik. Gambar 5.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 5.1 Keypad 4x4
Dalam gambar 5.2 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 I/O dihubungkan ke PORTC.

Gambar 5.2 Rangkaian keypad dan LED
ALAT DAN BAHAN YANG DIGUNAKAN
- 1 set Personal Computer/Laptop yang sudah berisi program Code Vision dan Khazama
- 1 buah catu daya DC +5V
- 1 buah multimeter
- 1 buah ISP Downloader AVR
- 1 buah sistem minimum AVR
- 1 buah I/O
- 1 buah kabel printer USB
- 1 buah kabel pita hitam
PROSEDUR
- Rangkailah peralatan yang diperlukan seperti dalam Gambar 5.3. 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.

Gambar 5.3 Rangkaian antarmuka mikrokontroler
- Buka program Code Vision AVR
- Buatlah project baru dengan inisialisasi 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 pada program bagian inisialisasi PORTB dan PORTC terlihat sebagai berikut:
PORTB=0xff;
DDRB=0x0f; //portb sebagai input dan output, 0b00001111
PORTC=0x00;
DDRC=0xff; // portc sebagai output
- Deklarasikan fungsi keypad() dengan bilangan yang dikembalikan ke program utama sebagai bilangan integer.
unsigned char keypad();
- Tuliskan script berikut dalam program utama:
while (1)
{
PORTC=keypad(); //menampilkan hasil yang dikembalikan oleh fungsi ke LED
}
- Tambahkan fungsi berikut di bawah program utama:
unsigned char keypad()
{
PORTB = 0b11111110; //aktifkan baris1 (memberi logika 0 ke baris1)
delay_ms(100);
if(PINB.7==0) return (10);
if(PINB.6==0) return (3);
if(PINB.5==0) return (2);
if(PINB.4==0) return (1);
//========================
PORTB = 0b11111101; //aktifkan baris2
delay_ms(100);
if(PINB.7==0) return (11);
if(PINB.6==0) return (6);
if(PINB.5==0) return (5);
if(PINB.4==0) return (4);
//========================
PORTB = 0b11111011; //aktifkan baris3
delay_ms(100);
if(PINB.7==0) return (12);
if(PINB.6==0) return (9);
if(PINB.5==0) return (8);
if(PINB.4==0) return (7);
//========================
PORTB = 0b11110111; //aktifkan baris4
delay_ms(100);
if(PINB.7==0) return (13);
if(PINB.6==0) return (15);
if(PINB.5==0) return (0);
if(PINB.4==0) return (14);
}
- Tekan tombol keypad, amati nyala LED dan tuliskan nyala LED tersebut dalam Tabel 5.1.
Tabel 5.1 Hasil percobaan
No | Tombol keypad yang ditekan | Tampilan LED | Nilai tampilan LED (dalam desimal) |
1 | 1 | OOOOOOOO | |
2 | 2 | OOOOOOOO | |
3 | 3 | OOOOOOOO | |
4 | 4 | OOOOOOOO | |
5 | 5 | OOOOOOOO | |
6 | 6 | OOOOOOOO | |
7 | 7 | OOOOOOOO | |
8 | 8 | OOOOOOOO | |
9 | 9 | OOOOOOOO | |
10 | 0 | OOOOOOOO | |
11 | * | OOOOOOOO | |
12 | # | OOOOOOOO | |
13 | A | OOOOOOOO | |
14 | B | OOOOOOOO | |
15 | C | OOOOOOOO | |
16 | D | OOOOOOOO | |
- Ubah program utama untuk algoritma berikut:
1. Jika tombol 0 ditekan semua LED mati.
2. Jika tombol 1 ditekan semua LED menyala.
- Buatlah gabungan algoritma berikut menjadi sebuah program.
1. Jika tombol 0 ditekan LED bit 0 menyala.
2. Jika tombol 1 ditekan LED bit 1 menyala.
3. Jika tombol 2 ditekan LED bit 2 menyala.
4. Jika tombol 3 ditekan LED bit 3 menyala.
5. Jika tombol 4 ditekan LED bit 4 menyala.
6. Jika tombol 5 ditekan LED bit 5 menyala.
7. Jika tombol 6 ditekan LED bit 6 menyala.
8. Jika tombol 7 ditekan LED bit 7 menyala.
9. Jika tombol 8 ditekan LED bit 0-3 menyala, bit 4-7 mati.
10. Jika tombol 9 ditekan LED bit 0-3 mati, bit 4-7 menyala.
11. Jika tombol A ditekan LED bit 0,2,4,6 menyala, bit 1,3,5,7 mati.
12. Jika tombol B ditekan LED bit 0,2,4,6,mati, bit 1,3,5,7 menyala.
13. Jika tombol C ditekan ditekan algoritma 9 dan 10 dilaksanakan bergantian dengan delay time 1 detik.
14. Jika tombol D ditekan ditekan algoritma 11 dan 12 dilaksanakan bergantian dengan delay time 1 detik.
15. Jika tombol * semua LED mati.
16. Jika tombol # semua LED menyala.
DATA HASIL PERCOBAAN
Tabel 5.1 Hasil percobaan
No | Tombol keypad yang ditekan | Tampilan LED | Nilai tampilan LED (dalam desimal) |
1 | 1 | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | 1 |
2 | 2 | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | 2 |
3 | 3 | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | 3 |
4 | 4 | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | 4 |
5 | 5 | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | 5 |
6 | 6 | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | 6 |
7 | 7 | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | 7 |
8 | 8 | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | 8 |
9 | 9 | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | 9 |
10 | 0 | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | 0 |
11 | * | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | 14 |
12 | # | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | 15 |
13 | A | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | 10 |
14 | B | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | 11 |
15 | C | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | 12 |
16 | D | ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | 13 |
Hasil program no 8
n
Hasil Nyala LED dalam praktikum :
1. Jika tombol keypad yang ditekan adalah 1, maka nyala LED :

2. Jika tombol keypad yang ditekan adalah 2, maka nyala LED :

3. Jika tombol keypad yang ditekan adalah 3, maka nyala LED :

4. Jika tombol keypad yang ditekan adalah 4, maka nyala LED :

5. Jika tombol keypad yang ditekan adalah 5, maka nyala LED :

6. Jika tombol keypad yang ditekan adalah 6, maka nyala LED :

7. Jika tombol keypad yang ditekan adalah 7, maka nyala LED :

8. Jika tombol keypad yang ditekan adalah 8, maka nyala LED :

9. Jika tombol keypad yang ditekan adalah 9, maka nyala LED :

10. Jika tombol keypad yang ditekan adalah 0, maka nyala LED :

11. Jika tombol keypad yang ditekan adalah *, maka nyala LED :

12. Jika tombol keypad yang ditekan adalah #, maka nyala LED :

13. Jika tombol keypad yang ditekan adalah A, maka nyala LED :

14. Jika tombol keypad yang ditekan adalah B, maka nyala LED :

15. Jika tombol keypad yang ditekan adalah C, maka nyala LED :

16. Jika tombol keypad yang ditekan adalah D, maka nyala LED :

PEMBAHASAN
1. Buatlah kesimpulan Tabel 5.1.
2. Instruksi yang digunakan untuk membaca tombol keypad yang ditekan adalah
3. Instruksi yang digunakan untuk menyalakan LED sesuai keypad yang ditekan adalah
4. Tuliskan program untuk melaksanakan algoritma pada langkah percobaan no 8.
a. Jika tombol 0 ditekan semua LED mati, maka programnya adalah :
|
b. Jika tombol 1 ditekan semua LED menyala.
|
5. Tuliskan program untuk melaksanakan algoritma pada langkah percobaan no 9.
|
6. KESIMPULAN
DAFTAR PUSTAKA
Modul 5.2010. Antarmuka Mikrokontroler Dengan Keypad.Malang:Universitas Negeri Malang, Jurusan Teknik Elektro:
0 komentar:
Posting Komentar