Вы находитесь на странице: 1из 10

Juan Francisco Ayala Lozano

Microcontroladores
Reyes Olgun Arturo
Matricula 1313083134
Mecatrnica 180501
18/02/2015

MARCO TEORIO:

SALTOS EN FUNCION DE UN BIT.


Son muy ponderosas ya que permiten al programa tomar decisiones en funcin del estado de
un bit perteneciente a cualquier registro o puerto de entrada/salida. Hay dos instrucciones de
este tipo:
Instruccin btfsc f,b
(bit test f, skip if clear). Esta instruccin puede actuar de dos formas:

Si el bit nmero b del registro f es 1 la instruccin que sigue a esta se ejecuta

normalmente.
Si el bit nmero b del registro f es 0 la instruccin que sigue a esta se ignora y se
salta.
INSTRUCCION btfss f,b
(bit test f, skip if set). Esta instruccin acta de forma contraria a la instruccin anterior:

Si el bit nmero b del registro f es 0 la instruccin que sigue a esta se ejecuta

normalmente
Si el bit nmero b del registro f es 1 la instruccin que sigue a esta se ignora y salta.

INSTRUCCIONES SALTOS1.
Disear, ensamblar, simular, grabar el microcontrolador y comprobar los siguientes programas.
Saltos_01.asm: el puerto B, que acta como salida, es controlado por el bit 0 de puerto A que
acta como entrada, de tal manera que:

Si el bit 0 del PORTA =1, se encienden todos los led de salida


Si el bit 0 del porta=1, solo se encienden los led del nible alto.

PROGRAMA:
__CONFIG _HS_OSC

saltos_01.asm

LIST P=16F877A
INCLUDE <P16F877A.INC>
ORG 0x000
Inicio bsf STATUS,RP0
CONF_ADCON1 equ b'00000110'
clrf TRISB
bsf STATUS,RP0
bcf STATUS,RP1
movlw CONF_ADCON1

Configuracion
PORTA
entradas
PORTB salidas
PORTA =w
Inicio

movwf ADCON1
clrf TRISB
clrf TRISC
movlw b'11111111'

W=1?

movwf TRISA
bcf STATUS,RP0

SI

Prenden
todos
led

bcf STATUS,RP1
Principal
btfss PORTA,0
goto on
goto of
on
movlw b'11111111'
movwf PORTB
movwf PORTC
goto Principal
of
movlw b'11110000'
movwf PORTB

prenden led
nible
NO
alto.

GOTO
GOTO

los

movwf PORTC

PRINCIPAL

goto Principal
END

EVIDENCIAS:
Entrada de datos PORTA=00000001, Salida PORTB=11111111

Entrada de datos PORTA=00000000, salida de datos PORTB=11110000

INSTRUCIONES SALTOS2
Saltos_2.asm:
Compara el dato del Puerto de entrada, PORTA con el nmero 13.
Pueden darse dos posibilidades:

Si PORTA= NUMERO, se encienden todos los leds de salida


Si PORTA NO ES =NUMERO, se activan los led pares.

__CONFIG _HS_OSC
LIST P=16F877A
INCLUDE <P16F877A.INC> ORG 0x000
Inicio
bsf STATUS,RP0
CONF_ADCON

Saltos 2

1 equ b'00000110'
clrf TRISB
bsf STATUS,RP0
bcf STATUS,RP1

Configuracin
PORTA=ENTRA
DA
PORTB=SALID
AS PORTA=W

movlw CONF_ADCON1
movwf ADCON1

INICIO

clrf TRISB
clrf TRISC
movlw b'00111111'
movwf TRISA

W=13

SI

bcf STATUS,RP0
bcf STATUS,RP1
Principalbtfsc PORTA,0

NO

goto uno
goto pares uno
btfsc PORTA
goto pares

Prenden
todos los
led de
salida

GOTO

Solo prenden
los leds pare

btfsc PORTA,2
goto tres
goto pares tres
btfss PORTA,3
goto pares
movlw b'11111111'
movwf PORTB
movwf PORTC
goto Principal
pares
movlw b'01010101'
movwf PORTB
movwf PORTC
goto Principal
END

Entrada de datos PORTA= 00000000, Salida PORTB= 00001101

principal
GOTO

Entrada desato PORTA= 00000000, salida de datos PORTB, 13

SALTOS3
Compara el dato introducido por el PORTA, que acta como entrada por un nmero, pueden darse 2
posibilidades:

Si PORTA es igual o mayor que NUMERO prenden todos los leds.


Si PORTA, es menor que NUMERO se activan lo leds pares de la salida.

__CONFIG _HS_OSC
LIST P=16F877A I
NCLUDE <P16F877A.INC> ORG 0x000
Inicio
bsf STATUS,RP0
CONF_ADCON1
equ b'00000110'
clrf TRISB
bsf STATUS,RP0
bcf STATUS,RP1
movlw CONF_ADCON1
movwf ADCON1
clrf TRISB
clrf TRISC
movlw b'00111111'
movwf TRISA
bcf STATUS,RP0
bcf STATUS,RP1

Saltos_03.asm

Configuracin
PORTA=ENTRADA
PORTB=SALIDA
W=PORTA
NUMERO=14

principal
movlw d'14'
subwf PORTA,W
btfsc STATUS,C
goto mayor
movlw b'01010101'
movwf PORTB
movwf PORTC
goto principal mayor
movlw b'11111111'
movwf PORTB
movwf PORTC
goto principal
END

WNUMERO?

SI

NO

PRENDEN SOLO
LEDS PARES DE
SALIDA

PRENDEN TODOS
LOS LEDS

GOTO
GOTO

WNUMERO?

Entrada de datos PORTA= 14, Salida PORTB= 11111111.

Entrada de datos PORTA NO ES =14, Salida PORTB=101010101.

CONCLUCIONES:
Es importante recordar, que es muy recomendable simular el programa,
antes de llevarlo a la forma fsica, ya que pueden existir ciertos errores en
el programa que afectaran el funcionamiento del circuito, si es necesario,
revisar con atencin el programa ya que puede suceder que el erro que
tenga no lo detecte el programa, tratar con cuidado el integrado, ya que sus
pines son muy frgiles, lo programas no son tan difciles de entender ,
recomendamos que si es necesario aprendan de memoria el cuerpo
principal del programa ya que en muchos casos es muy similar para
cualquier programa de este tipo de dificultad.

Вам также может понравиться