oK, ESPERO QUE ME PUEDAN AYUDAR,(realmente creo que estoy remal a la hora de checar que tecla fue pulsada no tengo mucha idea por eso ayudenme porfavor

) aqui esta la coneccion del teclado matricial y mas abajo el codigo (pic basic pro 2.46):
1----------2--------3--------A >>fila1
4----------5--------6--------B >>fila2
7----------8--------9--------C >>fila3
*----------0--------#--------D >>fila4
___ ___ ___ ___
col1------col2-----col3-----col4
pines del teclado|corresponden a:
______________________________
1 | fila 2
2 |fila3
3 |col1
4 |fila4
5 |col2
6 |col3
7 |col4
8 |fila1
el teclado esta conectado al pic asi:
pines de teclado | pines del pic
___________________________
1 | portb.0
2 | portb.1
3 | portb.2
4 | portb.3
5 | portb.4
6 | portb.5
7 | portb.6
8 | portb.7
DEVICE=16F648A
CONFIG INTRC_OSC_NOCLKOUT,WDT_OFF,PWRTE_ON,CP_OFF,BODEN_OFF,LVP_OFF,MCLRE_OFF
LED VAR PORTA.0
FILA1 VAR PORTB.7
FILA2 VAR PORTB.0
FILA3 VAR PORTB.1
COL1 VAR PORTB.2
COL2 VAR PORTB.4
COL3 VAR PORTB.5
FILA1 = 0
FILA2 = 0
FILA3 = 0
COL1 = 0
COL2 = 0
COL3 = 0
LOW LED
ANALIZADOR:
IF (FILA1 = 1) AND (COL1 = 1) THEN TECLA1
IF (FILA1 = 1) AND (COL2 = 1) THEN TECLA2
IF (FILA1 = 1) AND (COL3 = 1) THEN TECLA3
IF (FILA2 = 1) AND (COL1 = 1) THEN TECLA4
IF (FILA2 = 1) AND (COL2 = 1) THEN TECLA5
IF (FILA2 = 1) AND (COL3 = 1) THEN TECLA6
IF (FILA3 = 1) AND (COL1 = 1) THEN TECLA7
IF (FILA3 = 1) AND (COL2 = 1) THEN TECLA8
IF (FILA3 = 1) AND (COL3 = 1) THEN TECLA9
GOTO ANALIZADOR
TECLA1:
HIGH LED
PAUSE 300
LOW LED
GOTO ANALIZADOR
TECLA2:
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
GOTO ANALIZADOR
TECLA3:
HIGH LED
PAUSE 300
LOW LED
PAUSE 300HIGH LED
PAUSE 300
LOW LED
PAUSE 300HIGH LED
PAUSE 300
LOW LED
GOTO ANALIZADOR
TECLA4:
HIGH LED
PAUSE 300
LOW LED
PAUSE 300HIGH LED
PAUSE 300
LOW LED
PAUSE 300HIGH LED
PAUSE 300
LOW LED
PAUSE 300HIGH LED
PAUSE 300
LOW LED
GOTO ANALIZADOR
TECLA5:
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
GOTO ANALIZADOR
TECLA6:
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
GOTO ANALIZADOR
TECLA7:
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
GOTO ANALIZADOR
TECLA8:
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
GOTO ANALIZADOR
TECLA9:
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
PAUSE 300
HIGH LED
PAUSE 300
LOW LED
GOTO ANALIZADOR