Personally i like to use the 74C922N IC's for interfacing keypads, it uses 1 interupt and 4 data lines for a binary input, there are normally 3 basic ways of handling keypads (there are more but they are more rare)
1.ADC Keypad IO (uses only 1 pin, Slower, More code space, must set up polling)
2.Serial Keypad (uses 1-3 pins based on IO type, fast, still need to set up polling) possible to add extra pin for firing a Interupt
Article on making a serial keypad You will have to modify this code, or look on internet on making serial keypads
3.Genuine keypad IO (5 pins, Interupt based - instant results, no polling needed)
Article where I got mine working