Rabu, 15 Desember 2010
ANTARMUKA MIKROKONTROLER DENGAN KEYPAD
Diposting oleh Dian Puspita di 14.051. 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
PROSEDUR
Gambar 5.3 Rangkaian antarmuka mikrokontroler
PORTB=0xff;
DDRB=0x0f; //portb sebagai input dan output, 0b00001111
PORTC=0x00;
DDRC=0xff; // portc sebagai output
unsigned char keypad();
while (1)
{
PORTC=keypad(); //menampilkan hasil yang dikembalikan oleh fungsi ke LED
}
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);
}
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
1. Jika tombol 0 ditekan semua LED mati.
2. Jika tombol 1 ditekan semua LED menyala.
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 :
while (1)
{
// Place your code here
// PORTC=keypad();
PORTB = 0b11110111;
delay_ms(100);
if(PORTB.5==0) PORTC=0b00000000;
}
b. Jika tombol 1 ditekan semua LED menyala.
while (1)
{
// Place your code here
// PORTC=keypad();
PORTB = 0b11111110;
delay_ms (100);
if(PINB.4==0) PORTC=0b11111111;
}
5. Tuliskan program untuk melaksanakan algoritma pada langkah percobaan no 9.
while (1)
{
// Place your code here
PORTB = 0b11111110; //aktifkan baris1 (memberi logika 0 ke baris1)
delay_ms(100);
if(PINB.7==0) PORTC=0b01010101;
if(PINB.6==0) PORTC=0b00001000;
if(PINB.5==0) PORTC=0b00000100;
if(PINB.4==0) PORTC=0b00000010;
//========================
PORTB = 0b11111101; //aktifkan baris2
delay_ms(100);
if(PINB.7==0) PORTC=0b10101010;
if(PINB.6==0) PORTC=0b01000000;
if(PINB.5==0) PORTC=0b00100000;
if(PINB.4==0) PORTC=0b00010000;
//========================
PORTB = 0b11111011; //aktifkan baris3
delay_ms(100);
if(PINB.7==0)
{
PORTC=0b00001111;
delay_ms(1000);
PORTC=0b11110000;
}
if(PINB.6==0) PORTC=0b11110000;
if(PINB.5==0) PORTC=0b00001111;
if(PINB.4==0) PORTC=0b10000000;
//========================
PORTB = 0b11110111; //aktifkan baris4
delay_ms(100);
if(PINB.7==0)
{
PORTC=0b01010101;
delay_ms(1000);
PORTC=0b10101010;
}
if(PINB.6==0) PORTC=0b11111111;
if(PINB.5==0) PORTC=0b00000001;
if(PINB.4==0) PORTC=0b00000000;
}
6. KESIMPULAN
DAFTAR PUSTAKA
Modul 5.2010. Antarmuka Mikrokontroler Dengan Keypad.Malang:Universitas Negeri Malang, Jurusan Teknik Elektro:
Subscribe to:
Posting Komentar (Atom)
0 komentar:
Posting Komentar