Vous êtes sur la page 1sur 13

Instruccin btfsc f,b (bit test f, skip if clear).

Esta instruccin puede actuar de dos formas: Si el bit numero b del registro f es 1 la instruccin que sigue a esta se ejecuta normalmente. Si el bit numero b del registro f es 0 la instruccin que sigue a esta se ignora y se salta.

Ejemplo: Aqu Falso Verdad btfsc goto flag,1 ProcesoX :si el bit 1 del registro Flag es 0 salta. :ha sido 1 :ha sido 0

Antes instruccin: Despus instruccin

(PC)=Direccion de aqu si el bit 1 del registro Flag =0, (PC)=direccin de verdad Si el bit 1 del registro Flag=1, (PC)=direccin de falso

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

Ejemplo: Aqu Falso Verdad Antes instruccin: Despus instruccin btfss goto flag,4 ProcesoX :si el bit 4 del registro Flag es 1 salta. :ha sido 0 :ha sido 1

(PC)=Direccion de aqu si el bit 4 del registro Flag =1, (PC)=direccin de verdad Si el bit 4 del registro Flag=0, (PC)=direccin de falso

;************************************ Saltos_04.asm ************************************* ; ; ; ; ; ; ; ; Compara el dato del puerto de entrada PORTA con un NUMERO (por ejemplo el 13): ; - Si (PORTA) es mayor que NUMERO se encienden todos los LEDs de salida. ; - Si (PORTA) es menor o igual que NUMERO se activan los LEDs pares de salida. ; ; ZONA DE DATOS ********************************************************************** =================================================================== Del libro "MICROCONTROLADOR PIC16F84A. DESARROLLO DE PROYECTOS" E. Palacios, F. Remiro y L. Lpez. Editorial Ra-Ma. www.ra-ma.es =================================================================== www.pic16f84a.com

LIST INCLUDE __CONFIG

P=16F84A <P16F84A.INC> _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

NUMERO EQU a comparar.

d'13'

; Por ejemplo, este nmero

; ZONA DE CDIGOS ********************************************************************

ORG 0 la direccin 0. Inicio bsf clrf TRISB configuran como salida. movlw b'00011111' configuran como entrada. movwf bcf Principal movf entrada. sublw PORTA,W TRISA STATUS,RP0 STATUS,RP0

; El programa comienza en

; Acceso al Banco 1. ; Las lneas del Puerto B se

; Las 5 lneas del Puerto A se

; Acceso al Banco 0.

; Carga el nmero con el dato de

NUMERO

; (W) = NUMERO - (PORTA). ; Supone que (PORTA) > NUMERO,

movlw b'11111111' por tanto va a

; encender todos los LEDs de salida. btfsc (PORTA)? STATUS,C ; C=0?, (W) negativo?, NUMERO <

movlw b'01010101' resultado C=1). movwf PORTB puerto de salida. goto Principal

; NO, PORTA es menor o igual (ha

; Resultado se visualiza por el

END

;************************************ Saltos_05.asm ************************************* ; ; ; ; ; ; ; ; Compara el dato del puerto de entrada PORTA con un "NUMERO". Tres posibilidades: ; - Si (PORTA) = NUMERO se encienden todos los LEDs de salida. ; - Si (PORTA) > NUMERO se activan los LEDs pares de salida. ; - Si (PORTA) < NUMERO se encienden los LEDs del nibble alto y se apagan los del bajo. ; ; Hay que destacar que al no haber instrucciones de comparacin, estas se realizan ; mediante restas. =================================================================== Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS" E. Palacios, F. Remiro y L. Lpez. Editorial Ra-Ma. www.ra-ma.es =================================================================== www.pic16f84a.com

; ZONA DE DATOS **********************************************************************

LIST INCLUDE __CONFIG

P=16F84A <P16F84A.INC> _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

NUMERO

EQU

d'13'

; Por ejemplo, este nmero a comparar.

; ZONA DE CDIGOS ********************************************************************

ORG Inicio bsf clrf movlw entrada. movwf bcf Principal movlw subwf movlw btfss goto movlw btfsc goto movlw ActivaSalida movwf goto

; El programa comienza en la direccin 0.

STATUS,RP0 TRISB b'00011111'

; Acceso al Banco 1. ; Las lneas del Puerto B se configuran como salida. ; Las 5 lneas del Puerto A se configuran como

TRISA STATUS,RP0 ; Acceso al Banco 0.

NUMERO PORTA,W b'11110000' STATUS,C ActivaSalida b'11111111' STATUS,Z ActivaSalida b'01010101'

; Carga el nmero a comparar. ; (PORTA) - NUMERO --> (W). ; Supone (PORTA) es menor. ; C=1?, (W) positivo?, (PORTA) >= NUMERO?. ; No. C=0, por tanto (PORTA) < NUMERO. ; Supone que son iguales. ; Z=0?, son distintos?. ; No. Son iguales ya que Z = 1. ; S, por tanto (PORTA) > NUMERO.

PORTB Principal

; Resultado se visualiza por el puerto de salida. ; Crea un bucle cerrado e infinito.

END

; Fin del programa.

;************************************ Retardo_03.asm ************************************ ; ; ; ; ; ; ; ; Los diodos pares conectados al puerto de salida se encienden durante 0,5 segundos y los ; impares permanecen apagados. Despus al contrario durante el mismo tiempo. ; ; ZONA DE DATOS ********************************************************************** =================================================================== Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS" E. Palacios, F. Remiro y L. Lpez. Editorial Ra-Ma. www.ra-ma.es =================================================================== www.pic16f84a.com

LIST INCLUDE __CONFIG

P=16F84A <P16F84A.INC> _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

CBLOCK 0x0C ENDC

; ZONA DE CDIGOS ********************************************************************

ORG Inicio

bsf clrf bcf movlw movwf Principal call PORTB

STATUS,RP0

STATUS,RP0 b'01010101' PORTB ; Carga el dato inicial en la salida.

Retardo_500ms ; Invierte los diodos LED

comf PORTB,F conectados a la salida. goto Principal

INCLUDE <RETARDOS.INC> END

; Subrutinas de retardo.

Vous aimerez peut-être aussi