Keypad

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 7

CONTOH 1

#include <mega16.h>

#include <delay.h>

#include <stdio.h>

// Alphanumeric LCD Module functions

#asm

.equ __lcd_port=0x15

#endasm

#include <lcd.h>

// Declare your global variables here

unsigned char dt, dtkey;

void detek_key(void);

void main(void)

PORTB=0xFF;

DDRB=0xF0;

PORTA=0x00;

DDRA=0xFF;

// LCD module initialization

while (1)

// Place your code here

detek_key();

PORTA=dtkey;

delay_ms(5);

};

}
void detek_key(void) {

PORTB.4=0;

dt=(~PINB & 0x0F);

switch (dt)

case 1: dtkey=0x1;

break;

case 2: dtkey=0x4;

break;

case 4: dtkey=0x7;

break;

case 8: dtkey=0xa;

break;

};

PORTB.4=1; PORTB.5=0;

dt=(~PINB & 0x0F);

switch (dt) {

case 1: dtkey=0x2;

break;

case 2: dtkey=0x5;

break;

case 4: dtkey=0x8;

break;

case 8: dtkey=0x0;

break;

};

PORTB.5=1; PORTB.6=0;

dt=(~PINB & 0x0F);

switch (dt) {

case 1: dtkey=0x3;

break;
case 2: dtkey=0x6;

break;

case 4: dtkey=0x9;

break;

case 8: dtkey=0xb;

break;

};

PORTB.6=1; PORTB.7=0;

dt=(~PINB & 0x0F);

switch (dt)

case 1: dtkey=0xc;

break;

case 2: dtkey=0xd;

break;

case 4: dtkey=0xe;

break;

case 8: dtkey=0xf;

break;

};

PORTB.7=1;

CONTOH 2

#include <mega16.h>

#include <delay.h>

#include <stdio.h>

// Alphanumeric LCD Module functions


#asm

.equ __lcd_port=0x15

#endasm

#include <lcd.h>

// Declare your global variables here

unsigned char dt, dtkey;

void detek_key(void);

void convert();

unsigned char data;

void main(void)

PORTB=0xFF;

DDRB=0xF0;

PORTD=0x00;

DDRD=0xFF;

PORTC=0x00;

DDRC=0xFF;

// LCD module initialization

while (1)

// Place your code here

detek_key();

data=dtkey;

convert();

PORTC.5=0;

PORTC.6=0;

delay_ms(5);

};

}
void detek_key(void) {

PORTB.4=0;

dt=(~PINB & 0x0F);

switch (dt)

case 1: dtkey=0x1;

break;

case 2: dtkey=0x4;

break;

case 4: dtkey=0x7;

break;

case 8: dtkey=0xa;

break;

};

PORTB.4=1; PORTB.5=0;

dt=(~PINB & 0x0F);

switch (dt) {

case 1: dtkey=0x2;

break;

case 2: dtkey=0x5;

break;

case 4: dtkey=0x8;

break;

case 8: dtkey=0x0;

break;

};

PORTB.5=1; PORTB.6=0;

dt=(~PINB & 0x0F);

switch (dt) {

case 1: dtkey=0x3;
break;

case 2: dtkey=0x6;

break;

case 4: dtkey=0x9;

break;

case 8: dtkey=0xb;

break;

};

PORTB.6=1; PORTB.7=0;

dt=(~PINB & 0x0F);

switch (dt)

case 1: dtkey=0xc;

break;

case 2: dtkey=0xd;

break;

case 4: dtkey=0xe;

break;

case 8: dtkey=0xf;

break;

};

PORTB.7=1;

void convert(){

switch(data)

// pg fe dcba

case 0: PORTD=0b11000000;break;
case 1: PORTD=0b11111001;break;

case 2: PORTD=0b10100100;break;

case 3: PORTD=0b10110000;break;

case 4: PORTD=0b10011001;break;

case 5: PORTD=0b10010010;break;

case 6: PORTD=0b10000010;break;

case 7: PORTD=0b11111000;break;

case 8: PORTD=0b10000000;break;

case 9: PORTD=0b10010000;break;

default: PORTD=0xff;

You might also like