Por si te sirve de ayuda, este tambien fue mi primer proyecto, lo hice sin tabla y con cinco LEDs:
__CONFIG _RC_OSC
LIST P=16F84A
include <P16F84A.inc>
STATUS equ 0x03
PTOB equ 0x06
REG1 equ 0x0C
REG2 equ 0x0D
REG3 equ 0x0E
reset
org 0x00 ; origen del programa, aquí comenzará
goto inicio ; siempre que ocurra un reset
org 0x05 ; salta a "inicio"
inicio
bsf STATUS,5 ; pone rp0 a 1 y pasa al banco1
movlw b"0" ; carga W con 00000000
movwf TRISB ; y pasa el valor a trisb
bcf STATUS,5 ; pone rp0 a 0 y regresa al banco0
ahora
bsf PTOB,1 ; pone a 1 en RB1(enciende el LED1)
call retardo ; llama al retardo
bcf PTOB,1 ; pone a 0 RB1 (apaga el LED1)
bsf PTOB,2 ; pone a 1 en RB2(enciende el LED2)
call retardo ; llama al retardo
bcf PTOB,2 ; pone a 0 RB2 (apaga el LED2)
bsf PTOB,3 ; pone a 1 en RB3(enciende el LED3)
call retardo ; llama al retardo
bcf PTOB,3 ; pone a 0 RB3 (apaga el LED3)
bsf PTOB,4 ; pone a 1 en RB4(enciende el LED4)
call retardo ; llama al retardo
bcf PTOB,4 ; pone a 0 RB4 (apaga el LED4)
bsf PTOB,5 ; pone a 1 en RB5(enciende el LED5)
call retardo ; llama al retardo
call retardo
bcf PTOB,5 ; pone a 0 RB5 (apaga el LED5)
bsf PTOB,4 ; pone a 1 en RB4(enciende el LED4)
call retardo ; llama al retardo
bcf PTOB,4 ; pone a 0 RB4 (apaga el LED4)
bsf PTOB,3 ; pone a 1 en RB3(enciende el LED3)
call retardo ; llama al retardo
bcf PTOB,3 ; pone a 0 RB3 (apaga el LED3)
bsf PTOB,2 ; pone a 1 en RB2(enciende el LED2)
call retardo ; llama al retardo
bcf PTOB,2 ; pone a 0 RB2 (apaga el LED2)
bsf PTOB,1 ; pone a 1 en RB1(enciende el LED1)
call retardo ; pone a 0 RB1 (apaga el LED1)
bcf PTOB,1
call retardo
call retardo ;esto es una parada entre
call retardo ;ciclo y ciclo
call retardo
call retardo
call retardo
call retardo
call retardo
call retardo
call retardo
call retardo
call retardo
call retardo
call retardo
call retardo
call retardo
call retardo
call retardo
call retardo
call retardo
goto ahora ; repite todo de nuevo
retardo
movlw 10 ; Aquí se cargan los registros
movwf REG1 ; reg1, reg2 y reg3
; con los valores 10, 20 y 30
tres
movlw 20 ; respectivamente
movwf REG2
dos
movlw 30
movwf REG3
uno
decfsz REG3,1 ; Aquí se comienza a decrementar
goto uno ; Cuando reg3 llegue a 0
decfsz REG2,1 ; le quita 1 a reg2
goto dos ; cuando reg2 llegue a 0
decfsz REG1,1 ; le quita 1 a reg1
goto tres ; cuando reg1 llegue a 0
retlw 00 ; regresa al lugar
; de donde se hizo la llamada
end
Un Saludo