Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

01/04/2008 #1

Avatar de Meta

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.
01/04/2008 #2


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.
01/04/2008 #3


ACA TENGO UNA RESPUESTA Q TE PUEDE AYUDAR
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
01/04/2008 #4

Avatar de Meta

Muchas gracias.

Me funciona.
01/04/2008 #5


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.
02/04/2008 #6


Hola Meta
SI bien veo que quieres programar en assembler, deberias probar tambien con "C", lenguaje que al parecer dominas.
Entra en la página de mikroC y baja el software para probar. Te aseguro que es un buen consejo.
Saludos
http://www.mikroe.com/en/compilers/mikroc/pic/
02/04/2008 #7

Avatar de Meta

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.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.