Pengetahuan Dasar Pemrograman Keypad 4×4 pada Microcontroller AVR dengan bhs C codevision

untuk Arduino bisa di baca disini :https://pccontrol.wordpress.com/2016/10/29/pengetahuan-dasar-input-data-arduino-menggunakan-keypad-4×4-di-tampilakan-pada-lcd/ 

Dasar pemrograman keypad 4×4

Untuk   menginput  data ( parameter ) ke dalam microcontroller bisa melalui berbagai cara antara lain melalui :  switch on-off, serial port , I2c , switch BCD, Keypad 4×4, pc keyboard dll.   Pemilihan cara menginput tsb tergantung kebutuhan dan efesiensi dilapangan. Tapi dari semua cara input data yang paling umum dipakai adalah dengan keypad 4×4 spt tampak pada gambar dibawah ini.

Data yang bisa diinput oleh keypad 0 sampai  15 (F) ,   jadi untuk  input  data  kita hanya perlu 4 bit dan perlu 4 bit lagi untuk scan kolom.

Skematik

Cara microcontroller membaca keypad 4×4  seperti  tampak pada flowchart berikut ini :


kolom dilambangkan dengan C  (colum)  dan baris dilambangkan R  (row)

Penjelasan Flow Chart:

1.  Kolom pertama  PORTB.7   / C0   diberi logika  0 kolom yang lain diberi 1.

2. Kemudian  cek PORTB.3 sampai PORTB.0 jika tombol ditekan maka  salah satu diantara PORTB.3~PORTB.0 akan bernilai  0.

  • jika tombol o ditekan maka PORTB.3 akan bernilai 0 ,  PortB.3~PORTB.0 akan bernilai 0111
  • jika tombol 4 ditekan maka PORTB.2 akanbernilai 0 , PortB.3~PORTB.0 akan bernilai 1011
  • jika tombol 8 ditekan maka PORTB.1 akanbernilai 0 , PortB.3~PORTB.0 akan bernilai 1101
  • jika tombol C ditekan maka PORTB.0 akanbernilai 0 , PortB.3~PORTB.0 akan bernilai 1110

lebih lengkapnya spt tabel berikut:

Tabel Scan kolom pertama  ( PORTB.7  /  C0   diberi  0 )

3.  Kolom ke dua di beri 0 kolom yang lain diberi 1 kemudian  proses diatas        (no 1 dan 2 ) diulangi   .

Daftar lengkap   Scanning  kolom C0 (PortB.7) ,  C1 (PORTB.6),  C2 (PORTB.5),  C3 (PORTB.4) :

Mencari Rumus  Tombol yang Ditekan

Pemrograman  bahasa C  untuk  keypad 4×4  dgn  Codevision

Scan keypadnya dilakukan oleh Timer , dan code keypad yg ditekan di keluarkan ke PORTC  yg saya hubungkan ke LED.  Perlu dingat  data hanya 4 bit yaitu : PORTC.3~PORTC0.

//*****************************************************

Chip type : ATmega16
Clock frequency : 11.059200 MHz
program by : pccontrol.wordpress.com
*****************************************************/

#include <mega16.h>

unsigned char count;

unsigned char huruf;

char tombol_yang_ditekan(void);

//================membaca keypad berulang-ulang dilakukan oleh timer0.==================

interrupt [TIM0_OVF] void timer0_ovf_isr(void)              // Timer 0 overflow interrupt service routine
{

count=count+1;

if(count==10) //interval timer = interval timer x 10
{

huruf = tombol_yang_ditekan();

count=0;

}
}

// Declare your global variables here

void main(void)
{

// Port B sebagai input dan output
PORTB=0x00;
DDRB=0xF0;

// Port C sebagai output
PORTC=0x00;
DDRC=0xFF;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 10.800 kHz
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x05;
TCNT0=0x00;
OCR0=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x01;

// Global enable interrupts
#asm(“sei”)

while (1)
{
// Place your code here
PORTC = huruf;
};
}

//===========fungsi membaca keypad======================

char tombol_yang_ditekan(void)
{
char baris,kolom;

PORTB= PORTB | 0X0F;

for(kolom=0; kolom<4; kolom++)
{
DDRB = DDRB & ~(0X7F);

DDRB = DDRB | (0X80>>kolom);

for(baris=0;baris<4;baris++)
{
if( !(PINB & (0X08>>baris) ) ) //jika ada salah satu pin di PortB 0 =0
{
return (baris*4+kolom); // rumus tombol yg ditekan
}
}

}
return 0XFF;// tdk ada tombol yg ditekan
}

 


 

Keypad Hemat Energi

Berikut ini rangkaian keypad yg bisa menghemat energi karena microcontroller tidak  terus menerus menscan  untuk membaca data keypad.

keypadint

Cara kerja:

jika ada tombol ditekan maka  akan menimbulkan external interupsi pada pin INT0, lalu program service routine  INT0  akan membaca/scan keypad setelah selesai membaca keypad proses keluar dari service routin INT0 kembali ke program utama atau bisa juga micro menuju keadaan sleep.

 

 

Advertisements

About pccontrol

Berisi Tutorial Menggunakan PC untuk mengontrol Peralatan dengan cara mudah & praktis.

Posted on 23/06/2011, in Menengah-3. Bookmark the permalink. 5 Comments.

  1. pusing cik

  2. kalau program setting jam menggunakan keypad 4×4, seperti pada phonecell itu gmn ya gan, saya masih kesulitan gan, tlg dibantu ya,
    sebelumnya terima kasih

  3. sangat membantu, terima kasih :)

  4. thanks ..

    bermanfaat sakali ..

  5. bosgentongs

    wah makasih Gan terbantu Banget Nich

Komentar ,Saran atau Pertanyaan

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: