Practica4 LI

3
Practica4 Objetivo: Desarrollar programas por medio de prácticas en lenguaje ensamblador, los cuales ejemplifiquen las diferentes instrucciones y funciones básicas así como la forma de estructurarlas. Saltos Saltos condicionales Anteriormente, ya se explicó el funcionamiento de la instrucción de salto incondicional goto. El repertorio del PIC16F84A también dispone de instrucciones de salto condicional, que son aquellas que producen un salto en función de que se cumpla o no una condición. Estas son cuatro: Aquellas que pueden producir el salto en función del estado de un bit. Son btfsc y btfss. Aquellas que pueden producir el salto en función del contenido de un registro distinto de cero. Son decfsz e incfsz. Saltos en función de un bit Instrucción “btfsc f,b” (Bit Test f, Skip if Clear). Esta instrucción actúa de dos formas: Si el bit número ´b´ del registro ‘f’ es ‘1’ la instrucción que sigue a ésta se ejecuta normalmente. Si el bit número ‘b’ del registro ‘f’ es ‘0’ la instrucción 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”

description

Practicas

Transcript of Practica4 LI

Practica4Objetivo: Desarrollar programas por medio de prcticas en lenguaje ensamblador, los cuales ejemplifiquen las diferentes instrucciones y funciones bsicas as como la forma de estructurarlas.SaltosSaltos condicionalesAnteriormente, 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 bitInstruccin 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 saltagoto Proceso1; Ha sido 1goto 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; Si el bit 4 del registro Flag es 1 saltagoto Proceso1; Ha sido 0goto Proceso2;Ha sido 1

Programa de Prctica 4Con 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 utilizaraINCLUDE ;Se incluye la librera del pic

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

ORG 0; Se iniciara en IniciobsfSTATUS,RP0; se coloca en 1 el bit 5clrfTRISB; limpia trisb movlwb'00011111';mueve a w el valor en binariomovwfTRISA ;mueve a trisA el valor de wbcfSTATUS,RP0;pone en 0 el bit 5Principal ;inicia la etiquetamovlwb'11111111';mueve el valor a wbtfssPORTA,0;si esta en 0 salta movlwb'11110000'; mueve el valor 11110000 a wmovwfPORTB; el valor que contiene w pasa a PORTBgoto Principal ; ira a principal

END;Finaliza

1. Comertar cada linea de codigo.2. Compilar el archivo.asm para obtener el arhivo *.hex3. Desarrollar el circuito que muestre la funcionalidad en el protoboard.