Sie sind auf Seite 1von 3

Practica4

Objetivo: Desarrollar programas por medio de prcticas en lenguaje ensamblador,


los cuales ejemplifiquen las diferentes instrucciones y funciones bsicas as como
la forma de estructurarlas.
Saltos
Saltos condicionales
Anteriormente, ya se explic el funcionamiento de la instruccin de salto
incondicional goto. El repertorio del PIC16F84A tambin dispone de
instrucciones de salto condicional, que son aquellas que producen un salto en
funcin de que se cumpla o no una condicin. Estas son cuatro:

Aquellas que pueden producir el salto en funcin del estado de un bit.


Son btfsc y btfss.
Aquellas que pueden producir el salto en funcin del contenido de un
registro distinto de cero. Son decfsz e incfsz.

Saltos en funcin de un bit


Instruccin btfsc f,b
(Bit Test f, Skip if Clear). Esta instruccin acta de dos formas:

Si el bit nmero b del registro f es 1 la instruccin que sigue a sta


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

Ejemplo:
btfsc Flag, 1
; Si el bit 1 del
registro Flag es 0 salta
goto Proceso1
; Ha sido 1
goto Proceso2
;Ha sido 0

Instruccin btfss f,b


(Bit Test f, skip if Set). Esta instruccin acta de forma contraria a la instruccin
anterior, es decir:

Si el bit nmero b del registro f es 0 la instruccin que sigue a sta


se ejecuta normalmente.

Si el bit nmero b del registro f es 1 la instruccin que sigue a sta


se ignora y se salta.

btfss Flag, 4
Flag es 1 salta
goto Proceso1
goto Proceso2

; Si el bit 4 del registro


; Ha sido 0
;Ha sido 1

Programa de Prctica 4
Con base al siguente codigo en ensamblador realizar lo siguiente:
;************************************ Saltos_01.asm
*************************************
; El Puerto B, que acta como salida es controlado por el bit 0 del Puerto A, que acta
como
; entrada. De manera tal que:
; Si el bit 0 del PORTA es "1", se encienden todos los LEDs de salida.
; Si el bit 0 del PORTA es "0", se encienden los LEDs del nivel alto y se apagan
los bajo.
;
; ZONA DE DATOS
*********************************************************************
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
;
LIST
P=16F84A
;incluye el tipo de dispositivo que se
utilizara
INCLUDE <P16F84A.INC>
;Se incluye la librera del pic
; ZONA DE CDIGOS
********************************************************************
ORG

; Se iniciara en

Inicio
bsf
STATUS,RP0
clrf
TRISB
movlw b'00011111'
movwf TRISA
bcf
STATUS,RP0
Principal
movlw b'11111111'
btfss PORTA,0
movlw b'11110000'
movwf PORTB

; se coloca en 1 el bit 5
; limpia trisb
;mueve a w el valor en binario
;mueve a trisA el valor de w
;pone en 0 el bit 5
;inicia la etiqueta
;mueve el valor a w
;si esta en 0 salta
; mueve el valor 11110000 a w
; el valor que contiene w pasa a PORTB

goto
END

Principal

; ira a principal
;Finaliza

1. Comertar cada linea de codigo.


2. Compilar el archivo.asm para obtener el arhivo *.hex
3. Desarrollar el circuito que muestre la funcionalidad en el protoboard.

Das könnte Ihnen auch gefallen