5volt.ir
				
					
				#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;
	
					
				








