PERCOBAAN V
ANTARMUKA
MIKROKONTROLER DENGAN KEYPAD
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
|
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
|
|
Hasil
program no 8
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.
5.
Tuliskan
program untuk melaksanakan algoritma pada langkah percobaan no 9.
KESIMPULAN


ah materine bu diah lak iki
BalasHapuskesimpulanya tada dicamtumkan
BalasHapus