vi tu codigo teine algunos errores, esta algo desordenado, ya que si enceindes o apagas un led, debes asegurarte que no vueva a pasar por esa linea de codigo ya qeu lo puede apagar o encender por accidente:
inicio
bcf portb,0 ;esto lo pongo porque se me enciende este led y asi lo apago, jej
esto no se lo hace en el bucle inicio, se lo hace antes, es la inicializacion del puerto, por eso es que seguramente cuando se enciende lo vuelve a apagar.
bsf portb,2
goto inicio2
inicio2 no tiene sentido porque inicio2 esta inmediatamente
Si quieres que se encienda el led despues de los 2 pulsos y se mantenga asi por un tiempo corto debes agregarle un retardo, para poder visualizar, ya que la velocidad el micro esta a 1MHz (si usas un cristal de 4MHz) por instrucción y eso no es visible si haces:
bsf PORTB,2
bcf PORTB,2
lo correcto seria con un retardo para ver el encendido:
bsf PORTB,2
call delay ;(delay es una rutina que debe ser creada, existen programas para ello como el PICDEL, o tu deberás imprementarla si es que quieres, considerando el vaor de la frecuencia del cristal que usaras)
bcf PORTB,2
por eso me anime a cambiar la condicion qeu mencionaste, y lo hice asi: a los 2 pulsos se enciende RB2 y al 5to pulso se apaga y vuelve a empezar, osea a los 2 pulsos otra vez se enciende, para esto el codigo es:
list p=16f84a
include P16F84a.INC ; haciendo el include no hace falta definir los registros (tris,option,status,port,etc.)
; ya que estan definidos en el archivo indicado, y se usasn los nombres que ahi dicen
__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC ; palabra de configuración
org 0
inicio
bsf STATUS,RP0
movlw b'00000000'
movwf TRISB
movlw b'11111'
movwf TRISA
movlw b'00111000'
movwf OPTION_REG
bcf STATUS,RP0
clrf TMR0
clrf PORTA ; inicialización del puerto A
clrf PORTB ; inicialización del puerto B
bucle
movf TMR0,W ; copio el valor del TMR0 al w
xorlw .2 ; XOR entre w y el valor 2, osea a los 2 pulsos deveria de activarse el led, si no, pues a seguir esperando
btfsc STATUS,Z
goto cambio
bcf PORTB,1
bcf PORTB,2
goto bucle
cambio
bcf PORTB,1
bsf PORTB,2
cambio1
movf TMR0,W
xorlw .5 ;ahora una vez qe se me activó con el segundo pulso, espero al quinto pulso para hacer lo mismo
btfsc STATUS,Z
goto cambio2
goto cambio1
cambio2
bcf PORTB,1
bcf PORTB,2
clrf TMR0 ; vuelvo a cero a TMR0 para comenzar otra vez la cuenta de 2
goto bucle
end
es mejor que uses el INCLUDE para evitar los EQU que colocaste, te ahorra lineas de esritura que debes hacer, y el status,5 por ejemplo se ve mejor y mas entendible como status,rp0. Tampoco te olvides del CONFIG
creo que con eso esta, bueno si tienes alguna duda o se me paso algo no dudes en preguntar, un saludo adios.