Professional Documents
Culture Documents
Keypad
Keypad
Keypad
#include <mega16.h>
#include <delay.h>
#include <stdio.h>
#asm
.equ __lcd_port=0x15
#endasm
#include <lcd.h>
void detek_key(void);
void main(void)
PORTB=0xFF;
DDRB=0xF0;
PORTA=0x00;
DDRA=0xFF;
while (1)
detek_key();
PORTA=dtkey;
delay_ms(5);
};
}
void detek_key(void) {
PORTB.4=0;
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;
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;
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;
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>
.equ __lcd_port=0x15
#endasm
#include <lcd.h>
void detek_key(void);
void convert();
void main(void)
PORTB=0xFF;
DDRB=0xF0;
PORTD=0x00;
DDRD=0xFF;
PORTC=0x00;
DDRC=0xFF;
while (1)
detek_key();
data=dtkey;
convert();
PORTC.5=0;
PORTC.6=0;
delay_ms(5);
};
}
void detek_key(void) {
PORTB.4=0;
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;
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;
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;
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;