Ayuda a programar 16F84A

Hola:

Estoy dándome la tabarra con la instrucción btfss a ver si me sale una cosa.

Tengo en la salida del puerto B RB6 y RB7 en cada ella un diodo LED.

En el puerto A RA0 si se detecta que en su entrada hay 1 se activa el RB6, y si detecta 0 salta al BR7.

¿Cómo hago esto bien hecho?

Se que es algo de esto.

Código:
     btfss     PORTA,0
                  PORTB,7
                  PORTB,6

Espero que se entienda lo que quiero decir.
 
Hola Meta, lo que quieres hacer yo lo haría asi

Código:
REVISARA0
	btfss	PORTA,0
	goto	ACTIVARB7
ACTIVARB6
	bcf	PORTB,7
	bsf	PORTB,6
	goto	OTROLUGAR
ACTIVARB7
	bcf	PORTB,6
	bsf	PORTB,7
	goto	OTROLUGAR

OTROLUGAR
	...
	...

Con btfss checas si RA0 = 1, si es igual a 1 se salta la siguiente instruccion y entra directamente a ACTIVARB6, si es igual a 0 ejecuta la instruccion goto ACTIVARB7 y enciende ese led. Antes de encender cada led apaga el otro led con la instruccion bcf, eso lo puedes quitar si quieres pero yo lo puse porque supongo que solo quieres tener un led encendido al mismo tiempo. Al final de cada "subrutina" salta a OTROLUGAR que es donde debes seguir escribiendo el código que quieras, o bien podrias volver a saltar a REVISARA0 y que el programa siempre este haciendo lo mismo.

Espero que esto haya sido lo que querias.
 
En el puerto A RA0 si se detecta que en su entrada hay 1 se activa el RB6, y si detecta 0 salta al BR7.

CLRF PORTB
CLRF PORTA

BTFSS PORTA,0
GOTO PUERTOB6
BSF PORTB,6
BCF PORTB,7

PUERTOB6
BSF PORTB,7
BCF PORTB,6
END
 
ESPECIALISTA hay un problema con tu codigo y es que cuando enciendes RB6 y apagas RB7 inmediatamente se ejecuta la instrucción que enciende RB7 y apaga RB6, ahi te falta algun salto como el que yo incluí en el código que puse.
 
Hola:

Tengo el CCS instalado, por mucho que sepas C, si no lo has usado para PIC, no haces nada, buenos, cosas ligeras.

Es buen programa, por ahora me interesa dominar el ASM ya que este lenguaje es el que se usa mucho en mi instituto y universidad. Cuando lo domine bien, quizás me meta en ASM con la gama 18F para probarlo y después el C.
 
Atrás
Arriba