prueba de autoevaluación 2p electrónica ii upb 1_2014-solución
DESCRIPTION
prueba de auto evaluacion para electronica aplicada 2 en lenguaje de programacion de MPLABTRANSCRIPT
ASIGNATURA: ELECTRNICA APLICADA II
PRUEBA DE AUTOEVALUACIN SEGUNDO PARCIALCREAR UNA CARPETA CON EL APELLIDO Y NOMBRE DE CADA UNO Y AH CREAR SU PROYECTO REFERIDO AL DISEO Y ASIMISMO EN LA MISMA CARPETA VACIAR LA INFORMACION DEL CDIGO FUENTE EN ENSAMBLADOR Y LOS ARCHIVO COMPILADOS INCLUYENDO EN DE SIMULACIN EN PROTEUS.Disee un circuito digital con el microcontrolador PIC16F628A que evale la operacin de resta binaria A B en complementos a 2. Cada nmero programado A y B, de 4 bits cada uno, ser ledo por el puerto B y el resultado de la resta ser enviado al puerto A. El quinto bit (RA4) del puerto A indicar el signo de la resta. El mdulo equivalente del circuito restador se muestra en la figura 1 y el circuito fsico en la figura 2. Elabore el diagrama de flujo. Figura 1.
Figura 2.
list P=16F628A
#Include P16F628A.INC ____ equ 0x0_
____
org 0x00
goto inicio
org 0x05
inicio
bsf STATUS,5
-
-
-
bcf STATUS,5 bucle
-
-
-
end;Este programa evala la resta binaria en complementos a 2 de dos nmeros de cuatro bits
;Lee del puerto B los ocho bits y ordena en grupos de cuatro bits
;y luego el resultado de la resta copia al puerto A
list p=16f628a
;identificacin del dispositivo
#include p16f628a.inc;inclusin de los registros especiales al programa
num1 equ0x20
num2 equ0x21
resul equ 0x22
org 0x00
;origen del programa
inicio bsf STATUS,5;apunta al banco 1
clrf TRISA
;configura el puerto A como salida
movlw b'11111111';configura el puerto B
movwf TRISB
;como entrada
bcf STATUS,5;apunta al banco 0
BUCLE movf PORTB,W;copia informacin del puerto B a W
andlw b'00001111';discrimina los cuatro bits menos significativos
;leidos del puerto B
movwfnum1
;copia de W actual a num1
movf PORTB,W;restablece informacin del puerto B a W
andlw b'11110000';discrimina los cuatro bits ms significativos MSB
;leidos del puerto B
movwfnum2
;copia de W actual a num2
swapf num2,W
;realiza el intercambio de nibles (4 bits) de num2
movwfnum2
;copia los bits intercambiados en W a num2
comf num2,W
;complementa a 1 num2
andlw b'00001111' ;discrimina el complemento a 1 a 4 bits LSB
movwf num2
;copia el valor discriminado a num2
ncfnum2,W
;incrementa 1 al resultado de num2 (complementa a 2) y guarda en W
addwfnum1,W
;suma num1 a num2 (W) y guarda el resultado en W
movwf resul
;copia el resultado de la suma de W a resul
btfss resul,4
;inspecciona el carry o acarreo=1(resultado positivo) de la suma en el bit 4 de resul
gotonegativo
;resultado negativo bit 4 de resul=0 ir a la linea de negativo
movf resul,W
;copia el resultado positivo a W
movwf PORTA
;y copia de W al puerto A de salida
gotoBUCLE
;retorna a bucle para leer otro dato del puerto B
negativo comf resul,W
;complementa a 1 el valor de resul
andlwb'00001111';discrimina a 4 bits el resultado de resul
movwf resul
;copia de W a resul
incf resul,F
;incrementa en 1 el valor de resul (complemento a 2)
movfresul,W
;copia el resultado de resul a W
movwf PORTA
;copia de W al puerto A
goto BUCLE
;retorna a bucle para leer otro dato del puerto B
end