Source Code CVAVR for DI-Smart KEY4X4 Input (KEYPAD 4X4)

#include <mega8535.h>

#include <delay.h>

// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd.h>

#define pinkey PINC
#define portkey PORTC

// Declare your global variables here
char datakey, buffer;

//program pembacaaan key apa yang ditekan oleh user
//keypad yang digunakan mengunakan metode scanning

char get_key(void)
{
buffer=’-‘;
//portkey=0xFF;
delay_ms(1);

portkey.4=0;
delay_us(1); //untuk memberikan waktu pada mikrokontrolller mencapture penekanan
if (pinkey.0==0) buffer=’1′;
else if (pinkey.1==0) buffer=’2′;
else if (pinkey.2==0) buffer=’3′;
else if (pinkey.3==0) buffer=’A’;
portkey.4=1;

portkey.5=0;
delay_us(1);
if (pinkey.0==0) buffer=’4′;
else if (pinkey.1==0) buffer=’5′;
else if (pinkey.2==0) buffer=’6′;
else if (pinkey.3==0) buffer=’B’;
portkey.5=1;

portkey.6=0;
delay_us(1);
if (pinkey.0==0) buffer=’7′;
else if (pinkey.1==0) buffer=’8′;
else if (pinkey.2==0) buffer=’9′;
else if (pinkey.3==0) buffer=’C’;
portkey.6=1;

portkey.7=0;
delay_us(1);
if (pinkey.0==0) buffer=’*’;
else if (pinkey.1==0) buffer=’0′;
else if (pinkey.2==0) buffer=’#’;
else if (pinkey.3==0) buffer=’D’;
portkey.7=1;

return buffer;
}

//fungsi untuk mendeteksi tombol selesai di tekan

void key_up (void)
{
portkey=0x0F;
delay_us(1);
while (pinkey != 0x0F);
delay_ms(10);
}

void main(void)
{
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;

// Port C initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=In Func2=In Func1=In Func0=In
// State7=1 State6=1 State5=1 State4=1 State3=P State2=P State1=P State0=P
PORTC=0xFF;
DDRC=0xF0;

// LCD module initialization
lcd_init(16);

//program utama menampilkan penekanan tombol ke LCD
while (1)
lcd_clear();
{
// Place your code here

datakey=get_key();

if (datakey != ‘-‘) lcd_putchar(datakey); // key yang ditekan ditampilkan di LCD

key_up(); // tunggu sd key di-release (dilepas)

delay_ms(100);
};
}

Iklan

7 thoughts on “Source Code CVAVR for DI-Smart KEY4X4 Input (KEYPAD 4X4)

  1. Salam knal, Wah ! kbetulan saya sedang mencari contoh program untuk mengkontrol keypad 4×4 dengan lcd, menggunakan mikrokontroler ATmega8535 . . . dicoba y mas . . . . !

    Suka

  2. Gan gimana cara memasukan ke digit puluhan dan ratusan pada avr 8535 dan gmana cara merubah digit # menjadi enter buat masukan pada program avr contoh kita mau menyalahkan led no 13 lalu enter maka led diportc.5 menyala/ riley 5 menyala dan untuk mematikannya juga tekan angka 13 lalu enter dengan menekan digit #. Sebelumya tanks banget ga…… By kun.

    Suka

Tinggalkan Balasan

Please log in using one of these methods to post your comment:

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