#include <stdlib.h>
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
#include <stdlib.h>
#include "keypad_lib.h"
char read_keypad()
{
DDR_keypad = 0b00001111;
/* 1 2 3
4 5 6
7 8 9
* 0 #
*/
PORT_keypad = 0b11111110;
//scan baris 1
if(PIN_keypad == 0b11101110)
{
return ('1');
}
else if(PIN_keypad == 0b11011110)
{
return ('2');
}
else if(PIN_keypad == 0b10111110)
{
return ('3');
}
//scan baris 2
PORT_keypad = 0b11111101;
if(PIN_keypad == 0b11101101)
{
return ('4');
}
else if(PIN_keypad == 0b11011101)
{
return ('5');
}
else if(PIN_keypad == 0b10111101)
{
return ('6');
}
//scan baris 3
PORT_keypad = 0b11111011;
if(PIN_keypad == 0b11101011)
{
return ('7');
}
else if(PIN_keypad == 0b11011011)
{
return ('8');
}
else if(PIN_keypad == 0b10111011)
{
return ('9');
}
//scan baris 4
PORT_keypad = 0b11110111;
if(PIN_keypad == 0b11100111)
{
return ('*');
}
else if(PIN_keypad == 0b11010111)
{
return ('0');
}
else if(PIN_keypad == 0b10110111)
{
return ('#');
}
return ('$');
}
#ifndef KEYPAD_LIB_H_
#define KEYPAD_LIB_H_
#include <inttypes.h>
#include <avr/pgmspace.h>
#define PORT_keypad PORTB
#define PIN_keypad PINB
#define DDR_keypad DDRB
extern char read_keypad();
#endif /* KEYPAD_LIB_H_ */
DDR_keypad = 0b00001111;