Just another WordPress.com site

          Keypad Calculator 6×4 sering digunakan pada aplikasi kalkulator, disini saya akan membahas mengenai cara akses keypad 6×4 dengan mikrokontroller AT-Mega16. Berikut simulasinya di ISIS Proteus :

Gambar 1. Akses Keypad kalkulator

      Untuk metode pengaksesannya saya menggunakan metode scanning baris, jadi untuk setiap kali scanning dapat mengakses 6 buah input keypad. Disini saya tidak menggunakan delay dan looping “for” untuk scanningnya, saya ganti dengan scanning menggunakan timer0, jadi tidak menunda eksekusi program yang lain.

Gambar 2. Posisi Penekanan Tombol “ON/C”

           Berikut source code nya :

 

#include <mega16.h>

#include <stdio.h>

#include <alcd.h>

 

#define t1 PIND.0

#define t2 PIND.1

#define t3 PIND.2

#define t4 PIND.3

#define t5 PIND.4

#define t6 PIND.5

unsigned char i;

// Timer 0 overflow interrupt service routine

interrupt [TIM0_OVF] void timer0_ovf_isr(void)

{

TCNT0=0xFF;

 

if(i==4){i=0;}

i++;

if(i==1){PORTC=0x0E;}

if(i==2){PORTC=0x0D;}

if(i==3){PORTC=0x0B;}

if(i==4){PORTC=0x07;}

}

void main(void)

{

PORTC=0x0F;

DDRC=0x0F;

 

PORTD=0xFF;

DDRD=0x00;

 

// Timer/Counter 0 initialization

// Clock source: System Clock

// Clock value: 15,625 kHz

// Mode: Normal top=0xFF

// OC0 output: Disconnected

TCCR0=0x05;

TCNT0=0xFF;

OCR0=0x00;

TIMSK=0x01;

lcd_init(16);

#asm(“sei”)

 

while (1)

{

if(i==1){

if(!t1){lcd_clear(); lcd_putsf(“ON/C”); delay_ms(100);}

if(!t2){lcd_clear(); lcd_putsf(“7”); delay_ms(100);}

if(!t3){lcd_clear(); lcd_putsf(“8”); delay_ms(100);}

if(!t4){lcd_clear(); lcd_putsf(“9”); delay_ms(100);}

if(!t5){lcd_clear(); lcd_putsf(“X”); delay_ms(100);}

if(!t6){lcd_clear(); lcd_putsf(“:”); delay_ms(100);}

}

 

if(i==2){

if(!t1){lcd_clear(); lcd_putsf(“+/-“); delay_ms(100);}

if(!t2){lcd_clear(); lcd_putsf(“4”); delay_ms(100);}

if(!t3){lcd_clear(); lcd_putsf(“5”); delay_ms(100);}

if(!t4){lcd_clear(); lcd_putsf(“6”); delay_ms(100);}

if(!t5){lcd_clear(); lcd_putsf(“-“); delay_ms(100);}

if(!t6){lcd_clear(); lcd_putsf(“MRC”); delay_ms(100);}

}

 

if(i==3){

if(!t1){lcd_clear(); lcd_putsf(“%”); delay_ms(100);}

if(!t2){lcd_clear(); lcd_putsf(“1”); delay_ms(100);}

if(!t3){lcd_clear(); lcd_putsf(“2”); delay_ms(100);}

if(!t4){lcd_clear(); lcd_putsf(“3”); delay_ms(100);}

if(!t5){lcd_clear(); lcd_putsf(“+”); delay_ms(100);}

if(!t6){lcd_clear(); lcd_putsf(“M-“); delay_ms(100);}

}

 

if(i==4){

if(!t1){lcd_clear(); lcd_putsf(“SQRT”); delay_ms(100);}

if(!t2){lcd_clear(); lcd_putsf(“0”); delay_ms(100);}

if(!t3){lcd_clear(); lcd_putsf(“.”); delay_ms(100);}

if(!t4){lcd_clear(); lcd_putsf(“=”); delay_ms(100);}

if(!t5){lcd_clear(); lcd_putsf(“+”); delay_ms(100);}

if(!t6){lcd_clear(); lcd_putsf(“M+”); delay_ms(100);}

}

}

}

 

Untuk mendownload file project cvar dan simulasi isis proteusnya, dapat di unduh disini

untuk pasword zip file nya “choiruddyn.wordpress.com”

 

Comments on: "Akses Keypad Calculator Dengan AT-Mega16" (2)

  1. wah mantap…i like it.. kunjungi juga blog saya ya…http://panji-mbinx.blogspot.com

    beri masukan juga ya…thx

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: