Sei sulla pagina 1di 5

UNIVERSIDAD DE IBAGU

FACULTAD DE INGENIERA
PROGRAMA DE INGENIERA ELECTRNICA
LABORATORIO 1 DE ELECTRNICA DIGITAL 3
LINA ENCISO
JORGE ANGARITA

Objetivos:

Incursionar en la programacin en leguaje ensamblador.


conocer las herramientas del compilador para una mayor facilidad de
solucin de problemas.
Implementar un diagrama de flujo a un programa que sea que saque el
MCD de tres nmeros cualquiera.
Poner en practica la teoria vista y corrobar conceptos brindados por el
docente

Estrategia de solucin:
Para llevar a cabo este problema, se emple plantear primero un algoritmo, el cual
una vez estuviera bien se procedera al desarrollo del cdigo. Basado en
movimiento de registros a variables determinadas.
Diagrama de flujo:

Cdigo del programa


;*
DESCRIPCIN DEL PROGRAMA mcd
;
;
;
autores: lina isabel enciso
;
jorge andres angarita
*
;*
*
;*
*
;*
;*
MICRO:
PIC 16F877A
*
;*
OSCILADOR:
4 MHz
*
;*
*
;******************************************************************************************
;
;
LIST p=16F877A
#INCLUDE "p16F877A.inc"
;
__CONFIG
3F71
;
;
ERRORLEVEL -302
;
; *************
DECLARACIN DE VARIABLES
*******************************
;
CBLOCK 20
DATOA, DATOB, DATOC,AUX,N1,N2,R1,MCD1,MCD
ENDC
; ********************
DEFINICIONES GENERALES
******************************
;#DEFINE
;#DEFINE
;#DEFINE
; ________________________________________________________________________________________
;|
|
;|
DECLARACIN DE MACROS
|
;|________________________________________________________________________________________|
;----------------------------------------------------------------------------------------;
ORG
00
; VECTOR DE RESET
GOTO INICIO
; ________________________________________________________________________________________
;|
|
;|
TABLAS Y PROCEDIMIENTOS
|
;|________________________________________________________________________________________|
;******************************************************************************************
;*
*
;*
PROGRAMA PRINCIPAL
*
;*
*
;******************************************************************************************
INICIO
MOVLW
.18
MOVWF DATOB
MOVWF N1

MOVLW
.12
MOVWF DATOC
MOVWF N2
MOVLW
.24
MOVWF DATOA
PREGUNTA
MOVFW
SUBWF

N2
N1,W

;MUEVE B A W
;DATOA-DATOB->W

MOVWF
BTFSS
GOTO
MOVFW
MOVWF
GOTO

AUX
STATUS,0 ;PREGUNTA POR CARRY SI ES 1
MENOR
;SI EL CARRY ES 1 N1<=N2
AUX
;SI EL CARRY ES 0 N1>N2
N1
PREGUNTA

MOVFW
MOVWF

N1
R1

BTFSS
GOTO
GOTO

STATUS,Z
LOOP2
SIGUE

MOVFW
MOVWF

N2
N1

MOVFW
MOVWF
GOTO

R1
N2
PREGUNTA

MOVFW
MOVWF

N2
MCD1

MENOR

;PREGUNTA SI R1 ES CERO
;SI R1 NO ES CERO
;SI R1 ES CERO

LOOP2

SIGUE

;HASTA AQUI SE SACO MCD1


MOVFW
MOVWF

DATOA
N1

MOVFW
MOVWF

MCD1
N2

PREGUNTA2
MOVFW
SUBWF
MOVWF
BTFSS
GOTO
MOVFW
MOVWF
GOTO PREGUNTA2
MENOR2
MOVFW
MOVWF

N2
N1,W

;MUEVE MCD1 A W
;DATOA-MCD1->W

AUX
STATUS,0 ;PREGUNTA POR CARRY SI ES 1
MENOR2
;SI EL CARRY ES 1 N1<=N2
AUX
;SI EL CARRY ES 0 N1>N2
N1

N1
R1

BTFSS
GOTO
MOVFW
MOVWF
GOTO FINAL

STATUS,Z
LOOP22

;PREGUNTA SI R1 ES CERO
;SI R1 NO ES CERO

N2
MCD

LOOP22
MOVFW
MOVWF
MOVFW
MOVWF
GOTO PREGUNTA2

N2
N1
R1
N2

FINAL
MOVWF
MCD
goto
INICIO
END

Funcionamiento del programa:


En esta captura de pantalla se observa el ingreso de 3 variables (18,12,24), despues de esto el
programa se encarga de obtener de los 3 numeros el maximo comun divisor. En la parte medio
superior derecha se observa la casilla resaltada en rojo, ese es el valor de nuestro MCD.

Se observa que el consumo de RAM fue de 56

Aqu se observa otro ejemplo de funcionamiento del programa con los nmeros 6, 9, 3.

El tiempo de ejecucin en este caso fue de 17,6 uS

Observaciones:
A la hora de programar es muy importante poder observar las variables y sus cambios para llevar un
mejor control del programa y as mismo efectividad.
Al cambiar las variables, el checksum del programa cambia, debe ser por lo que las variables se
ingresan desde el cdigo fuente. El programa va quedar con el que el profesor registro.

Conclusiones:

Entre menos consumo de memoria RAM y ROM tenga el programa, ms eficiente va a ser y
consumir menos recursos del microcontrolador.
Se requiere probar que el diagrama de flujo est bien pensado, ya que si hay algn error en el
, que se supone va a ser una gua para luego proceder a programar, el programa creado no
ser el deseado.
MPLab, es una herramienta muy til para la programacin de microcontroladores, por que
permite la simulacin paso a paso y asi mismo la visualizacin de instruccin por instruccin y
el cambio de sus variables para determinar la correcta estructura y fucnionamiento del
programa.

Potrebbero piacerti anche