ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Laboratorio Microprocesadores

corcel5917 de Octubre de 2013

2.685 Palabras (11 Páginas)694 Visitas

Página 1 de 11

MICROPROCESADORES Y MICROCONTROLADORES

LABORATORIOS 1, 2,3.

Presentado a:

Grupo:

309696

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD

PROGRAMA DE INGENIERIA DE SISTEMAS

DESCRIPCION GENERAL DEL LABORATORIO

Como primera práctica respecto a la primera unidad que trata los microprocesadores, se plantea el desarrollo de varios programas utilizando lenguaje ensamblador el cual es fácilmente accesible desde cualquier computador mediante consola, con el DEBUG, el objetivo es integrar los conocimientos adquiridos en el curso de algoritmos para hallar una solución a un par de situaciones prácticas que permitan adquirir habilidades en la programación de bajo nivel en lenguaje ensamblador.

OBJETIVO

Diseñar un algoritmo para generar el código fuente y de ahí compilarlo, depurarlo, guardarlo, cargarlo y ejecutarlo utilizando para ello el intérprete DEBUGGER o el simulador SIMUPROC.

INTENCIONALIDAD FORMATIVA

Con el diseño y solución de los problemas prácticos propuestos se busca aclarar dudas conceptuales, integrar las soluciones con el diseño de algoritmos y desarrollar las habilidades y competencias en la programación de microprocesadores.

PROCEDIMIENTO

El laboratorio debe estar compuesto de los siguientes 2 Ejercicios:

Diseñar un programa que permita recibir números y realizar las cuatro operaciones aritméticas básicas.

Diseñe un programa que represente la solución matemática a un problema, por ejemplo, hallar el área, el volumen, o encontrar la solución a un sistema de ecuaciones lineales, puede optar por sistemas básicos 2x2, 3x3 o un programa que halle la solución a un sistema nxn

INSUMOS

Se utiliza principalmente herramientas de Software estas pueden ser:

Simulador SIMUPROC, que posee un conjunto de instrucciones fijo de un microprocesador hipotético al igual que también funciona como compilador que es compatible con versiones Windows

EQUIPOS

Computador PC compatible con sistema operativo Windows o que pueda instalarse los paquetes de software antes mencionados.

EJERCICIO N° 1:

Calculadora básica con assembler

Diseñar un programa que permita recibir números y realizar las cuatro operaciones básicas de suma, resta, multiplicación y división utilizando una interfaz de usuario adecuada y de fácil manejo.

DESARROLLO

Para desarrollar esta Ejercicio es conveniente seguir los siguientes pasos:

Establecer las variables, constantes y demás parámetros relevantes en el diseño del algoritmo.

• Diseñar el algoritmo y diagrama de flujo solución del problema planteado.

• Generar el código fuente, producto del algoritmo diseñado.

• Guardar el código fuente en .COM o .EXE.

• Compilar, depurar y ejecutar el programa generado.

• Guardar los cambios realizados.

Solución ejercicio 1

Simulado en SimuProc

#SimuProc 1.4.3.0

CLA

INC AX

MOV 40,AX

INC AX

MOV 41,AX

INC AX

MOV 42,AX

INC AX

MOV 43,AX

INC AX

MOV 44,AX

CLA

MSG 'CALCULADORA' ;Muestro el mensaje en Pantalla

MSG 'Pedire dos numeros y realizare las operaciones aritmeticas basicas'

LDT 'Entre el Primer numero' ;Leo del teclado, este luego sera llevado a AX

MOV 47,AX ;guardo el primer numero en 1C

LDT 'Entre el Segundo Numero'

MOV 48,AX ;Guardo el segundo numero en 1D

MSG 'OPERACION A REALIZAR'

MSG '1 SUMA'

MSG '2 RESTA'

MSG '3 MULTIPLICA'

MSG '4 DIVIDE'

MSG '5 SALIR'

LDT 'ESCOJA OPERACION A REALIZAR'

MOV 45,AX

SUB 40

JEQ 1D

JMP 22

LDA 47

ADD 48 ;AX = AX + 38

EAP 'Suma:' ;Muestro el Valor de AX en pantalla

CLA

JMP 12

LDA 45

SUB 41

JEQ 26

JMP 2B

LDA 47

SUB 48 ;AX = AX - 38

EAP 'Resta:'

CLA

JMP 12

LDA 45

SUB 42

JEQ 2F

JMP 34

LDA 47

MUL 48 ;AX = AX * 38 Multiplicacion

EAP 'Mult:' ;Muestro el Valor de AX en pantalla

CLA

JMP 12

LDA 45

SUB 43

JEQ 38

JMP 3D

LDA 47

DIV 48 ;AX = AX / 38 en BX queda el residuo

EAP 'Div:' ;Muestro el Valor de AX en pantalla

CLA

JMP 12

LDA 45

JMA 3F

HLT ;Fin del Programa

DIAGRAMA DE FLUJO EJERCICIO 2

Diseñe un programa que represente la solución matemática a un problema.

Diseñe un programa que permita representar la solución matemática a un problema, por ejemplo hallar el área, el volumen, o encontrar la solución a un sistema de ecuaciones lineales, puede optar por sistemas básicos 2x2, 3x3 o un programa que halle la solución a un sistema nxn.

PROCEDIMIENTO

Para desarrollar este ejercicio es conveniente seguir los siguientes pasos:

Establecer las variables, constantes y demás parámetros relevantes en el diseño del algoritmo.

Diseñar el algoritmo y diagrama de flujo solución del problema planteado.

Generar el código fuente, producto del algoritmo diseñado.

CÓDIGO EJERCICIO 2

#SimuProc 1.4.3.0

MSG PROGRAMA AREA

LDT ingrese la base

STA 1A

LDT ingrese la altura

STA 1B

MUL 1A

STA 1C

JMA 00F

#00E

10

DIV 00E

EAP EL AREA ES

HLT

#110

LDT primer numero

STA 1A

LDT segundo numero

STA 1B

SUB 1A

EAP el resultado de la resta es

HLT

#120

LDT primer numero

STA 1A

LDT segundo numero

STA 1B

MUL 1A

EAP el producto es

HLT

#121

LDT primer numero

STA 1A

LDT segundo numero

STA 1B

CLA

CMP 1B

JEQ 132

MOV AX,1A

DIV 1B

EAP el cociente es

HLT

MSG "OPERACIÓN NO VALIDA"

HLT

LABORATORIO #2

EJERCICIO N° 1

SECUENCIA Y CONTROL DE LEDS.

Diseñar e implementar mínimo ocho secuencias distintas para el conjunto de ocho leds conectados a uno de los puertos, las secuencias se deben mostrar una tras la otra, mostrando a través de los esquemas necesarios.

Programa 1

Algoritmo

1 secuencia

1. Encender RB0, apagar RB1-RB7

2. Encender RB0-RB1, apagar RB2-RB7

3. Encender RB0-RB2 , apagar RB3-RB7

4. Encender RB0-RB3, apagar RB4-RB7

5. Encender RB0-RB4, apagar RB5-RB7

6. Encender RB0-RB5, apagar RB6-RB7

7. Encender RB0-RB6,apagar RB7

8. Encender RB0-RB7

2 secuencia

1. Encender RB7, apagar RB6-RB0

2. Encender RB7-RB6,apagar RB5-RB0

3. Encender RB7-RB5, apagar RB4-RB0

4. Encender RB7-RB4, apagar RB3-RB0

5. Encender RB7-RB3, apagar RB2-RB0

6. Encender RB7-RB2, apagar RB1-RB0

7. Encender RB7-RB1, apagar RB0

8. Encender RB7-RB0

3 Secuencia

Encender RB0-RB1,RB4-RB5, apagar RB2-RB3,RB6-RB7

4 secuencia

Encender RB7-RB6,RB3-RB2, apagar RB5-RB4,RB1-RB0.

5 secuencia

Encender RB0-RB3, apagar RB4-RB7

6 secuencia

Encender RB7-RB4, apagar RB3-RB0

7 secuencia

1. Encender RB4, apagar RB7-RB5,RB3-RB0

2. Encender RB4-RB3, apagar RB7-RB5,RB2-RB0

3. Encender RB4-RB2, apagar RB7-RB5, RB1-RB0

4. Encender RB4-RB1, apagar RB7-RB5,RB0

5. Encender RB4-RB0,apagar RB7-RB5

8 secuencia

1. Encender RB4, apagar RB7-RB5

2. Encender RB4-RB5, apagar RB7-RB6

3. Encender RB4-RB6,apagar RB7

4. Encender RB4-RB7 , apagar RB3-RB0

CODIGO DEL PROGRAMA

#include <16f84a.h>

# fuses XT,NOWDT,NOPROTECT

# use delay(clock=4000000)

void main()

{

int i , RET=200;

while(true)

{

for(i=0;i<1;i++) //secuencia 1

{

output_b(1);

delay_ms(RET);

output_b(3);

delay_ms(RET);

output_b(7);

delay_ms(RET);

output_b(15);

delay_ms(RET);

output_b(31);

delay_ms(RET);

output_b(63);

delay_ms(RET);

output_b(127);

delay_ms(RET);

output_b(255);

...

Descargar como (para miembros actualizados) txt (20 Kb)
Leer 10 páginas más »
Disponible sólo en Clubensayos.com