Professional Documents
Culture Documents
Penjelasan :
-
( berlogika 1)
Untuk PortB.0 PortB.3 (Row1 4) dijadikan input dengan kondisi awal pull Up
Hasilnya :
PORTB=0xff; //0b11111111
DDRB=0x0f; //PORTB sebagai input dan output, 0b00001111
{
PORTB = 0b11111110;//aktifkan baris1 (memberi logika 0 ke baris1)
delay_ms(100);
if(PINB.7==0);
if(PINB.6==0);
if(PINB.5==0);
if(PINB.4==0);
}
Jadi misal ketika PINB.4 (Kolom 1) atau angka 1 ditekan, Maka Kolom 1 dan Baris 1
menjadi rangkaian tertutup Baris 1(PortB.0) akan mendapat masukan logika 1 dari kolom
1(PINB.4) yang sebelumnya diaktifkan PORTB = 0b11111110;//aktifkan baris1 (memberi
logika 0 ke baris1).
3.
4. Listing Proogram
Agar mengatahui tombol berfungsi maa digunakan Ouput berupa Led pada Port C
yang berrlogika 0 (Low) seegingga :
PORTB=0xff; //0b11111111
DDRB=0x0f; //PORTB sebagai input dan output, 0b00001111
PORTC=0x00;
DDRC=0xff;
//PORTC sebagai output
Lalu Deklarasi Fungsi keypad
unsigned char keypad();
Lalu pada main Program:
while (1)
{
PORTC=keypad();
//menampilkan hasil yang dikembalikan oleh fungsi ke LED
}
Kemudian masukan fungsi berikut di bawah main program (di luar fungsi void) :
unsigned char keypad()
{
PORTB = 0b11111110;
//aktifkan baris1 (memberi logika 0 ke
baris1)
delay_ms(100);
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.6==0) return (6);
if(PINB.5==0) return (5);
if(PINB.4==0) return (4);
//========================
}
Ketika Angka 1 ditekan maka led yang ditampilkan Binner dari decimal 1
Ketika Angka 2 ditekan maka led yang ditampilkan Binner dari decimal 2
Ketika Angka 3 ditekan maka led yang ditampilkan Binner dari decimal 3
Ketika Angka 4 ditekan maka led yang ditampilkan Binner dari decimal 4
Ketika Angka 5 ditekan maka led yang ditampilkan Binner dari decimal 5