Hot Posts

6/recent/ticker-posts

Scaning Keypad Pada ATMega8535 dengan CAVR

Tombol keypad matrik 4x3 adalah susunan dari beberapa buah saklar tekan (push button) yang disusun secara matrix. Dipasaran terdapat beberapa jenis tombol keypad, dan yang paling sering digunakan diantaranya adalah tombol keypad 4x3 dan 4x4. Susunan tombol tekan yang disusun secara matrik menjadi sebuah keypad dapat dilihat pada gambar berikut:



Tombol keypad ini banyak digunakan dalam aplikasi sistem berbasis mikrokontroler seperti untuk memasukan pasword ataupun data ke sebuah sistem. Cara mengakses tombol keypad ini dilakukan dengan cara scaning, yaitu memberi logika 0 pada salah satu pin (baik baris atau kolom) kemudian membaca titik yang lain. Berikut adalah cara membaca tombol keypad diatas dan menampilkan tombol berapa yang ditekan ke layar LCD 2x16. Program keypad to lcd ini diketik menggunakan CodeVisionAVR yang sekaligus sebagai compiler untuk mikrokontroler seri AVR.

#include mega8535.h
#include stdio.h

// Alphanumeric LCD Module functions
#asm
   .equ __lcd_port=0x18 ;PORTB   // LCD pada portB
#endasm
#include

#include
#include    
unsigned char tombol;
void main(void)
{
PORTD=0x0F;  // 00001111
DDRD=0x1F;    // 00011111 artinya portd.0 sampai portd.4 sebagai output dan yg lain input
lcd_init(16);  // inisialisasi lcd
lcd_gotoxy (0,0); // inisialisasi lcd
lcd_putsf (" MicroVision YK ");
lcd_gotoxy (0,1);
lcd_putsf (" Keypad To LCD  ");
delay_ms(150);

while (1)
 { // mendeteksi tombol 1, 2 dan 3      
  tombol=0xFF;
  PORTD=0xFF;
  PORTD.1=0;  // portd.1 diberi logika 0
  PORTD=tombol; //
  tombol=PIND;   // menyamakan antara PIND dan tombol
  delay_us(10);
    if (tombol==0x7D) {  // tombol 1
      lcd_clear();
      lcd_gotoxy (0,0);
      lcd_putsf (" Anda  Menekan: ");
      lcd_gotoxy (0,1);
      lcd_putsf(" 1 ");
      } 
    else if (tombol==0xBD){   // tombol 2
      lcd_clear();
      lcd_gotoxy (0,0);
      lcd_putsf (" Anda  Menekan: ");
      lcd_gotoxy (0,1);
      lcd_putsf(" 2 ");
      }           
    else if (tombol==0xDD){  // tombol3
      lcd_clear();
      lcd_gotoxy (0,0);
      lcd_putsf (" Anda  Menekan: ");
      lcd_gotoxy (0,1);
      lcd_putsf(" 3 ");
      }       
};
}

Post a Comment

0 Comments