Humour me for a bit...
Code:
Define	LCD_DREG	PORTB
Define	LCD_DBIT	0
Define	LCD_RSREG	PORTB
Define	LCD_RSBIT	5
Define	LCD_EREG	PORTB
Define	LCD_EBIT	4
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2
keyin var byte : trisc=$ff : pause 1000 : lcdout $fe,1
main:   keyin = portc : lcdout $fe, $80, BIN8 keyin : goto main
end
Push the buttons, what happens?