
#define keypad_mask 0x0F  
#define keypad_address (*((unsigned char xdata*)0x8007))

const char code key_table[16] = "123A456B789C*0#D";
unsigned char key;
unsigned char key_lcd;

void ex0_isr (void) interrupt 0
{
	keypad_read();
}

void keypad_read(void)
{
unsigned char keypad_scan;
    key = ((keypad_scan=keypad_address)&keypad_mask);
  	key_lcd = key_table[key];
}

.
.
.
.
	case 7 : goto_xy(17,0); putch_lcd('7'); break;
	case 8 : goto_xy(17,0); putch_lcd('8'); break;
	case 9 : goto_xy(17,0); putch_lcd('9'); break;
	case 10 : goto_xy(17,0); putch_lcd('A'); break;
	case 11 : goto_xy(17,0); putch_lcd('B'); break;
	case 12 : goto_xy(17,0); putch_lcd('C'); break;
.
.
.
.

