Hola oicer_electronics, fíjate si este programa funciona, si es así verás que tiene varias reformas
LIST P = 16F84A
INCLUDE <P16F84A.INC>
;...........................................
org .0
bcf STATUS,RP0
bcf STATUS,RP1
goto START
org .4
bcf INTCON,GIE
return
;...........................................
TABLA
addwf PCL,F
retlw 0x3f
retlw 0x06
retlw 0x5b
retlw 0x4f
retlw 0x66
retlw 0x6d
retlw 0x7d
retlw 0x07
retlw 0x7f
retlw 0x67
retlw 0X77
retlw 0X7C
retlw 0X39
retlw 0X5E
retlw 0X79
retlw 0X71
;...........................................
START
clrf PORTB
clrf INTCON
bsf STATUS,RP0
movlw B'11111111'
movwf TRISA
clrf TRISB
bcf STATUS,RP0
INICIO
movf PORTA,W
addlw .1
call TABLA
movwf PORTB
goto INICIO
;...........................................
END
1) En el vector de inicio solo selecciono el banco 0 y salto la la dirección de inicio START
2) Veras que defino la dirección de la interrupción, la desactivo y retorno, (esto es por seguridad de funcionamiento)
3) Las tablas (tal como te las enseñaron) deben ir en las primeras 256 direccines de memoria de programa, por lo que el
programa principal va despues de estas
4) Seteo los dos puertos y no solo uno, también por seguridad de funcionamiento
5) En la rutina inicio sobrava una instrucción y faltaba la llamada a la tablacon el "call TABLA"
Espero te sea de ayuda, un saludo.
Atte. CARLOS.