Anda di halaman 1dari 3

1.

Gambarkan rangkaian antarmuka mikrokontroler ATmega8535 dengan piranti input


keypad 4x4.
Rangkaian Atmega 8535 dengan keypad

Penjelasan :
-

Pada Keypad Kolom 1 (Cow 1) Dihubungkan dengan PortB.4 MK ATmega8535


Pada Keypad Kolom 2 (Cow 2) Dihubungkan dengan PortB.5 MK ATmega8535
Pada Keypad Kolom 3 (Cow 3) Dihubungkan dengan PortB.6 MK ATmega8535
Pada Keypad Kolom 4 (Cow 4) Dihubungkan dengan PortB.7 MK ATmega8535
Pada Keypad Baris 1 (Row 1) Dihubungkan dengan PortB.0 MK ATmega8535
Pada Keypad Baris 2 (Row 2) Dihubungkan dengan PortB.1 MK ATmega8535
Pada Keypad Baris 3 (Row 3) Dihubungkan dengan PortB.2 MK ATmega8535
Pada Keypad Baris 4 (Row 4) Dihubungkan dengan PortB.3 MK ATmega8535

2. Jelaskan cara mikrokontroler ATmega8535 membaca input dari keypad tersebut.


Jawab :
Pada Settingan Port atau Konfigurasi Awal
- Untuk PortB.4 PortB.7 (Cow 1 4) dijadikan output dengan kondisi awal high
-

( 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

Contoh Program untuk pembacaan baris 1 kolom 1,2,3 dan 4:


unsigned char keypad()

{
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.

(Ki Gae Flowchart) Bingunghim hahaha

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

Anda mungkin juga menyukai