mmm, it's working here as suppose to. Using your code above on a 16F877, i tried with...
Code:
<font color="#000000"> @ __CONFIG _XT_OSC & _LVP_OFF
<font color="#000080">INCLUDE </font>"C:\PBP_PROG\INCLUDE_ROUTINES\KeyPad.bas"
<font color="#000080">INCLUDE </font>"c:\PBP_PROG\EASYPIC4\LCD4.bas"
<font color="#000080">DEFINE </font>KEYPAD_ROW 4 <font color="#008000">' 4 ROW keypad
</font><font color="#000080">DEFINE </font>KEYPAD_ROW_PORT PORTB <font color="#008000">' ROW port = PORTB
</font><font color="#000080">DEFINE </font>KEYPAD_ROW_BIT 4 <font color="#008000">' ROW0 = PORTB.4
</font><font color="#000080">DEFINE </font>KEYPAD_COL 3 <font color="#008000">' 4 COL keypad
</font><font color="#000080">DEFINE </font>KEYPAD_COL_PORT PORTB <font color="#008000">' COL port = PORTB
</font><font color="#000080">DEFINE </font>KEYPAD_COL_BIT 1 <font color="#008000">' COL0 = PORTB.0
</font><font color="#000080">DEFINE </font>KEYPAD_DEBOUNCEMS 20 <font color="#008000">' debounce delay = 20 50 mSec
</font><font color="#000080">DEFINE </font>SCAN_ONCE 1
OPTION_REG.7=0 <font color="#008000">' Enable internal crap pull-up
</font>ByteA <font color="#000080">VAR BYTE
PAUSE </font>500
<font color="#000080">LCDOUT </font>$FE,1,"PRESS ANY KEY"
Start:
@ READKEYPAD _ByteA
<font color="#000080">IF </font>ByteA <font color="#000080">THEN
LCDOUT </font>$FE,$C0,<font color="#000080">REP </font>" "\2,$FE,$C0, <font color="#000080">DEC </font>ByteA
<font color="#000080">ENDIF
GOTO </font>Start
make sure you have disable the LVP mode and there's no faulty I/Os
Bookmarks