MICROPROCESADORES Y MCROCONTROLADORES
Epicyon1987Informe2 de Mayo de 2018
4.231 Palabras (17 Páginas)256 Visitas
Paso 2 - Diseñar la propuesta de proyecto de implementación
MICROPROCESADORES Y MCROCONTROLADORES
Por
Edwin Andrés Jiménez García
William Fernando RodriguezSergio Giovani Sanclemente
Gloria Susana Tovar Rojas
John Wilmar Romero Morera
Tutor
NESTOR JAVIER RODRIGUEZ
Grupo: 309696_36
Universidad Nacional Abierta y A Distancia UNAD
Escuela de Ciencias Básicas Tecnología e Ingeniería
Marzo 2018
Contenido
Introducción 3
Objetivos 4
Desarrollo de actividad colaborativa 5
Links youtube 22
Propuesta grupal para el desarrollo de trabajo final 22
Conclusiones 26
Referencias Bibliográficas 27
Introducción
En el desarrollo de este trabajo grupal, fue fundamental realizar las lecturas de los temas propuestos, la participación en el foro, los talleres impartidos por el director del curso y los laboratorios realizados, con lo cual afianzamos nuestros conocimientos en la programación de dispositivos es sus entornos de desarrollo integrado. Donde aplicamos algoritmos y programamos en lenguaje ensamblador para el desarrollo de los ejercicios propuestos, tanto en simuproc y mpalb.
Objetivos
- Comprender y aplicar el diseño de algoritmos en simuprog, ya que es un entorno para lenguaje ensamblador.
- Conocer las estructuras lógicas utilizadas en el lenguaje ASM, para ser aplicadas es diferentes IDE.
- Mostrar el funcionamiento de los ejercicios propuestos, mediante un video en el cual se explique el funcionamiento y así aplicarlo posteriormente en el laboratorio.
Desarrollo de actividad colaborativa
- tomando las edades de cada uno de los 5 integrantes de grupo como constantes hallar c1, c2, c3, c4, c5:
a: Realizar el promedio de la suma de las 5 edades de los integrantes del grupo.
Solución:
Edades: (24,29,30,31,26) la edad que falto se completa con 26.
SUMA 140/5=28
Código en Simuproc:
#SimuProc 1.4.2.0
MSG "***********************"
MSG "******UNAD - G36*******"
MSG "**PROMEDIO DE EDADES***"
MSG "***MICROPROCESADORES***"
MSG "**********************"
MSG "El programa sumara las siguientes edades"
MSG "Edad 1: 24"
MSG "Edad 2: 29"
MSG "Edad 3: 31"
MSG "Edad 4: 30"
MSG "Edad 5: 27"
CLA ;hace ax = 0
LDF 034; Carga Edad 1, que está en el registro de memoria 34 ;
ADDF 036 ; Carga Edad 1, que está en el registro de memoria 36 ;
ADDF 038 ; Carga Edad 1, que está en el registro de memoria 38 ;
ADDF 03A ; Carga Edad 1, que está en el registro de memoria 3A;
ADDF 03C ; Carga Edad 1, que está en el registro de memoria 3C;
MSG "LA SUMA ES:";-->Muestra un mensaje en pantalla
OUT 1,AX ; Imprime en pantalla lo contenido en la variable
DIVF 03E ;--> divide el contenido de AX, por el valor de la dirección de registro 039
MSG "EL PROMEDIO DE LAS EDADES ES: "
OUT 1,AX ; Imprime en pantalla lo contenido en la variable
HLT ;-->Terminar Programa
#034
0100000111000000
0000000000000000;--> guarda el número 24 en float de 32 bits
#036
0100000111101000
0000000000000000;--> guarda el número 29 en binario en el registro llamado.
#038
0100000111111000
0000000000000000;--> guarda el número 31 en binario en el registro llamado.
#03A
0100000111110000
0000000000000000;--> guarda el número 30 en binario en el registro llamado.
#03C
0100000111011000
0000000000000000;--> guarda el número 27 en binario en el registro llamado.
#03E
0100000010100000
0000000000000000;--> guarda el número 5 en binario en el registro llamado.
Ejecución del programa
[pic 2]
b: hallar el área del trapezoide Lado a=8, lado b= 5 Lado c 12 = Lado d = 7
Solución:
En este ejercicio es más complicado, ya que el trapezoide tiene todos los lados diferentes, así que primero con ayuda de GeoGebra dibuje el trapezoide para hacerme una idea de cómo realizar el ejercicio.
[pic 3]
Luego de graficarlo puedo utilizar el lado a y el lado b, para hallar la hipotenusa mediante el teorema de Pitágoras.
[pic 4]
[pic 5]
Luego puedo hallar el área de ese triangulo, la cual seria
[pic 6]
[pic 7]
Ahora teniendo la hipotenusa, puedo hallar el área del siguiente triangulo utilizando la fórmula de Herón.
Primero calculamos el semiperímetro:
[pic 8]
[pic 9]
Luego el área seria:
[pic 10]
Finalmente sumamos las dos áreas y obtenemos el área del trapezoide
[pic 11]
Código:
#SimuProc 1.4.2.0
MSG "***********************"
MSG "******UNAD - G36*******"
MSG "**PROMEDIO DE EDADES***"
MSG "***MICROPROCESADORES***"
MSG "**********************"
MSG 'lado a:'
LDF 100
out 1,AX
MSG 'lado b:'
LDF 102
out 1,AX
MSG 'lado c:'
LDF 104
out 1,AX
MSG 'lado d:'
LDF 106
out 1,AX
;Primero hallamos la hipotenusa, para lo cual utilizaremos el lado a y b, aplicando pitagoras
; h= raiz (a^2 + b^3)
; Elevamos a al cuadrado
LDF 100; Cargo lado a en AX
MULF 100; Multiplicacion de AX por lo que hay en 100.
MSG "lado a al cuadrado:"
out 1,AX
STF 10A; Guardo el cuadrado del lado a en la posicion de memoria 10A
; Elevamos b al cuadrado
LDF 102; Cargo lado a en AX
MULF 102; Multiplicacion de AX por lo que hay en 102.
MSG "lado b al cuadrado:"
out 1,AX
STF 10C; Guardo el cuadrado del lado a en la posicion de memoria 10C
;Sumamos los cuadrados en la variable de hipotenusa
;como AX esta cargado con el valor del lado b cuadrado, sumamos directamente
ADDF 10A; Se sumo AX a lo que hay en la posicion 10A
STF 108; Se guarda en posicion de la hipotenusa
MSG "Suma de lados cuadradoas a y b:"
out 1,AX
; Ahora procedemos a sacar la raiz de la suma de los cuadrados para obtener la hipotenusa
; Se tiene en AX la suma de los cuadrados
STF 092 ; variable a
LDF 094 ; variable b
SUBF 092 ; le resto a
JEQ 02B ; salto si es verdadero, si no comienza el while
LDF 092 ; cargo a
STF 094 ; cambio valores b=a
LDF 108 ; cargo x
DIVF 092 ; x / a
ADDF 092 ; + a
DIVF 096 ; / 2
STF 092 ; se almacena en la variable a
JMP 020 ; finalizo el ciclo, salto a la dir 4
MSG ' La raiz cuadrada de su numero es : '
LDF 092
OUT 1,ax ; muestro el resultado en pantalla
STF 108; Guardo el valor final de la hipotenusa
;El area del primer cuadrado es (b*h)/2
;Entonces seria el lado a * el lado b, dividido 2
LDF 100; Cargo el lado a
MULF 102; Multiplico AX por lo que tiene 102
STF 10E; guardo la multiplicacion en la variable Area1
DIVF 096; Divido entre 2
STF 10E; Guardo el area 1
MSG ' Ela area del triandgulo 1 es: '
OUT 1,ax ; muestro el resultado en pantalla
; Ahora para el siguiente triangulo del cual no conocemos ningun angulo
;Utilizaremos la formula de Herón, la cual nos indica que;
;Primero hallamos el semiperimetro s= (a+b+c)/2
;Donde a es el lado c, b es el lado d y c es la hipotenusa.
...