comando btfsc para pic16f84

#1
Hola a todos al grano usando el picsimulator en clases nos enseñaron la intruccion para poder leer una variable.

bueno la cosa es que no puedo prender un led y no se que esta mal:
Uso proteus y picsimulator ide

aqui el codigo:

org 0x00
rb1 equ 1
ra1 equ 1

bsf status,rp0 ;me cambio de banco 1
bcf trisb,rb1 ; rb1 como entrada
bsf trisa,ra1 ; ra1 como salida

bcf status,rp0 ; vuelvo al banco 0
btfsc porta,ra1 ; pregunta el estado de la entrada si es bajo se salta y no prende el led.
bsf portb,rb1 ; prende el led
end

si no es mucha molestia cual es el error que tengo.perdon mi ignorancia pero nadie nace caminando y me cuesta un poco entender, la explicacion del profe no me dejo muy claro.

se lo que hace la instruccion :

BTFSC Test de bit y salto
esta es la conexion

Descripción: Si el bit b del registro f es 0, se salta una instrucción y se continúa con la ejecución. En caso de salto, ocupará dos ciclos de reloj.
conexion en proteus:
conexion pruebacon bt.png
muchas gracias por su tiempo.:)
 
Última edición:
#4
Primero necesitas revisar los comentarios....

bsf status,rp0 ;me cambio de banco 1
bcf trisb,rb1 ; rb1 como entrada <-----pones a 0 RB1 y eso indica una salida (Output)
bsf trisa,ra1 ; ra1 como salida <---- pones a 1 RA1 y eso indica una entrada (Input)
Segundo... no veo una instruccion para que el PIC ejecute el programa en forma de ciclo, por lo que tu programa se ejecutara en unos 50uS y no creo que te de tiempo de presionar el boton tan rapido :D

coloca una etiqueta y un goto (etiqueta) para que el PIC siempre este ejecutando el programa

Código:
org 0x00
rb1 equ 1
ra1 equ 1

bsf status,rp0 ;me cambio de banco 1
bcf trisb,rb1 ; rb1 como entrada
bsf trisa,ra1 ; ra1 como salida

loop:
bcf status,rp0 ; vuelvo al banco 0
btfsc porta,ra1 ; pregunta el estado de la entrada si es bajo se salta y no prende el led.
bsf portb,rb1 ; prende el led
goto loop
end
 
Arriba