PRINCIPAL
CALL INVLED1 ;Rutina de LED1
CALL INVLED2 ;Rutina de LED2
GOTO PRINCIPAL ;repite secuencia
; Subrutina de LED 1
INVLED1
BTFSS PORTA,0 ; Boton presionado? (presionado = 1)
RETURN ; No esta presioando, entonces vuelve
AUXLED1
BTFSC PORTA,0 ; Se solto el boton? Es decir espero hasta que el boton se suelte
GOTO AUXLED1 ; Mientras esta presionado vuelve a preguntar por el boton
MOVLW B'00000001' ; Se solto, asi que ahora a cambiar led 1, en este caso RB0
XORWF PORTB ; Hacemos una XOR de W con PORTB, al estar en W el unico 1 en el bit0 va a invertir unicamente el bit0 de PORTB
RETURN ; Vuelvo
; Subrutina de LED 2
INVLED2
BTFSS PORTA,1 ; Boton presionado? (presionado = 1)
RETURN ; No esta presioando, entonces vuelve
AUXLED2
BTFSC PORTA,1 ; Se solto el boton? Es decir espero hasta que el boton se suelte
GOTO AUXLED2 ; Mientras esta presionado vuelve a preguntar por el boton
MOVLW B'00000010' ; Se solto, asi que ahora a cambiar led 1, en este caso RB1
XORWF PORTB ; Hacemos una XOR de W con PORTB, al estar en W el unico 1 en el bit1 va a invertir unicamente el bit1 de PORTB
RETURN ; Vuelvo