With an 8x8 keypad, you can connect that up directly to an arduino (which has 20 digital inputs).
Then use the keypad library to read them.
http://www.arduino.cc/playground/Code/Keypad
You will expand this section of code
// all this stuff goes before void setup()
#include <Keypad.h> // Matrix Keypad library
const byte rows = 4; //four rows << 8 rows
const byte cols = 3; //three columns << 8 columns
char keys[rows][cols] = {
{'1','2','3'}, // call these what you'd like: A1 thru A8, B1 thru B8, etc
{'4','5','6'},
{'7','8','9'},
{'#','0','*'}
};
byte rowPins[rows] = {5, 4, 3, 2}; //connect to the row pinouts of the keypad << assign your 8 pins here
byte colPins[cols] = {8, 7, 6}; //connect to the column pinouts of the keypad << assign the other 8 pins here
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, rows, cols );
then write your code that will read it in void loop:
void loop(){
// go read the keypad
char key = keypad.getKey(); // reading the keypad
if(key) // same as if(key != NO_KEY)- did something change?
{
// a key was pressed, do something
switch (key){
case "A1":
// button A1 code
break;
case "A1":
// button A2 code
break;
//etc
case "H8":
//button H8 code
break:
} // end switch
} // end if (key)
// do other stuff while waiting for a key press
} // end void loop