Top Banner
DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA MICROPROCESADORES PROYECTO TERCER PARCIALBENALCAZAR ALEXANDER SANDOVAL SEBASTIÁN ING. NANCY PAREDES Sangolquí - 2013
20

ProyectoTercerParcial Carrito Benalcazar Sandoval NRC2585 (1)

Jan 20, 2016

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ProyectoTercerParcial Carrito Benalcazar Sandoval NRC2585 (1)

DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA

MICROPROCESADORES

“PROYECTO TERCER PARCIAL”

BENALCAZAR ALEXANDER

SANDOVAL SEBASTIÁN

ING. NANCY PAREDES

Sangolquí - 2013

Page 2: ProyectoTercerParcial Carrito Benalcazar Sandoval NRC2585 (1)

1

ÍNDICE

1 OBJETIVOS DEL PROYECTO ................................................................................. 2

1.1. OBJETIVO GENERAL ....................................................................................... 2

1.2. OBJETIVOS ESPECÍFICOS .............................................................................. 2

2 MARCO TEÓRICO ................................................................................................... 2

3 DISEÑO .................................................................................................................. 10

3.1 DIAGRAMA DE BLOQUE ................................................................................ 10

3.2 DISEÑO DELPROGRAMA............................................................................... 11

3.3 DISEÑO DEL CIRCUITO. ................................................................................ 15

3.4 CIRCUITO COMPLETO ................................................................................... 18

4 CONCLUSIONES ................................................................................................... 19

RECOMENDACIONES ................................................................................................. 19

5 REFERENCIAS BIBLIOGRÁFICAS. ...................................................................... 19

ÍNDICE DE TABLAS E ILUSTRACIONES.

TABLA 1-TABLA DE VERDAD DEL BUFFER TRISTATE¡Error! Marcador no

definido.

TABLA 2-DECODIFICACIÓN DE LECTURA Y ESCRITURA¡Error! Marcador no

definido.

ILUSTRACIÓN 2-MEMORIA EEPROM .......................... ¡Error! Marcador no definido.

ILUSTRACIÓN 3-MODOS DE OPERACIÓN ................... ¡Error! Marcador no definido.

ILUSTRACIÓN 4-BUFFER TRISTATE ............................ ¡Error! Marcador no definido.

ILUSTRACIÓN 5-DIAGRAMA DE BUSES DE UN MICROPROCESADOR .......... ¡Error!

Marcador no definido.

ILUSTRACIÓN 6-DIAGRAMA DE BLOQUES ............................................................... 11

ILUSTRACION 7-CIRCUITO GENERADOR DE PULSOS¡Error! Marcador no

definido.

ILUSTRACIÓN 8- CIRCUITO DE REINICIO .................... ¡Error! Marcador no definido.

ILUSTRACIÓN 9-LED’S DE ESCRITURA Y LECTURA .. ¡Error! Marcador no definido.

ILUSTRACIÓN 10-DECODIFICACIÓN DE ESCRITURA Y LECTURA¡Error! Marcador

no definido.

Page 3: ProyectoTercerParcial Carrito Benalcazar Sandoval NRC2585 (1)

2

ILUSTRACIÓN 11-CONEXIÓN DE PINES DEL MICROPROCESADOR Z80 ....... ¡Error!

Marcador no definido.

ILUSTRACION-12 CONEXIÓN DE PINES DE LA MEMORIA EEPROM .............. ¡Error!

Marcador no definido.

ILUSTRACIÓN-13 CONEXIÓN DE LOS PINES DEL BUFFERS¡Error! Marcador no

definido.

ILUSTRACIÓN-14 DECODIFICADOR 74LS47 PARA DISPLAY ÁNODO COMÚN

......................................................................................... ¡Error! Marcador no definido.

ILUSTRACIÓN-15 DISPLAY ÁNODO COMÚN ............... ¡Error! Marcador no definido.

ILUSTRACIÓN 16-DISEÑO COMPLETO ..................................................................... 18

1 OBJETIVOS DEL PROYECTO

1.1. OBJETIVO GENERAL

Utilizar el programa emulador EMU8086 y relacionarlo con los

elementos básicos que conforman el modelo de programación del

microprocesador 8086 para implementar un programa que controle un

carro a control remoto por medio del puerto paralelo.

1.2. OBJETIVOS ESPECÍFICOS

Determinar el funcionamiento del teclado matricial, así como su

decodificación para la realización del circuito.

Utilizar los conocimientos adquiridos durante el parcial para programar

en lenguaje ensamblador y lograr una comunicación de entrada y

salida por un puerto paralelo.

2 MARCO TEÓRICO

2.1 El lenguaje ensamblador

Es un lenguaje de programación de bajo nivel para los computadores,

microprocesadores, microcontroladores y otros circuitos integrados programables.

Implementa una representación simbólica de los códigos de máquina binarios y otras

constantes necesarias para programar una arquitectura dada de CPU y constituye la

Page 4: ProyectoTercerParcial Carrito Benalcazar Sandoval NRC2585 (1)

3

representación más directa del código máquina específico para cada arquitectura

legible por un programador.

2.1.1 Estructura del Ensamblador

En el lenguaje ensamblador las líneas de código constan de dos partes, la primera es

el nombre de la instrucción que se va a ejecutar y la segunda son los parámetros del

comando u operando. Por ejemplo:

ADD ah bh

Aquí "ADD" es el comando a ejecutar (en este caso una adición o suma) y tanto "ah"

como "bh" son los parámetros.

El nombre de las instrucciones en este lenguaje puede estar formado de 2 a 6 letras, a

estas instrucciones también se les llama nombres mnemónicos o códigos de operación,

ya que representan alguna función que habrá de realizar el procesador. Existen

algunos comandos que no requieren parámetros para su operación, así como otros que

requieren solo un parámetro.

Algunas veces se utilizarán las instrucciones como sigue:

ADD al,[170]

Los corchetes en el segundo parámetro nos indican que vamos a trabajar con el

contenido de la casilla de memoria número 170 y no con el valor 170, a esto se le

conoce como direccionamiento directo (en la instrucción viene la dirección del objeto).

2.1.2 Técnicas de codificación en ensamblador:

En ensamblador los bucle, condicionales, subrutinas y demás elementos se codifica de

forma distinta de cómo se hace en otros lenguajes de alto nivel. A continuación

describiremos algunas técnicas útiles para codificar las estructuras más usuales.

BUCLES:

Inicialización de un registro(a modo de contador) al nº de vueltas del bucle

Etiqueta: Primera instrucción del bucle

<resto de instrucciones dentro del bucle>

Decrementar el contador

Saltar a la etiqueta si el contador es mayor que cero

Page 5: ProyectoTercerParcial Carrito Benalcazar Sandoval NRC2585 (1)

4

<Instrucciones fuera del bucle>

SALTOS CONDICIONALES:

Instrucción de comparación

Evaluar condición y si se cumple saltar a la etiqueta prefijada

<Instrucciones para el caso de no cumplirse la condición>

Saltar fuera del condicional

MACROS:

Declaración:

<nombre de la macro> MACRO

<instrucciones de la macro>

ENDM

Llamada:

<nombre de la macro>

SUBRUTINAS:

Declaración:

<nombre la de subrutina> PROC

<instrucciones de la subrutina>

RET

<nombre de la subrutina> ENDP

Llamada:

Page 6: ProyectoTercerParcial Carrito Benalcazar Sandoval NRC2585 (1)

5

CALL <nombre de la subrutina>

2.1.3 Interrupciones

Una interrupción es una instrucción que detiene la ejecución de un programa para

permitir el uso de la

UCP a un proceso prioritario. Una vez concluido este último proceso se devuelve el

control a la aplicación anterior. Por ejemplo, cuando estamos trabajando con un

procesador de palabras y en ese momento llega un aviso de uno de los puertos de

comunicaciones, se detiene temporalmente la aplicación que estábamos.

Interrupciones internas de hardware.- Las interrupciones internas son generadas

por ciertos eventos que surgen durante la ejecución de un programa. Este tipo de

interrupciones son manejadas en su totalidad por el hardware y no es posible

modificarlas. Un ejemplo claro de este tipo de interrupciones es la que actualiza el

contador del reloj interno de la computadora, el hardware hace el llamado a esta

interrupción varias veces durante un segundo para mantener la hora actualizada.

Interrupciones externas de hardware.- Las interrupciones externas las generan los

dispositivos periféricos, como pueden ser: teclado, impresoras, tarjetas de

comunicaciones, etc. También son generadas por los coprocesadores. No es posible

desactivar a las interrupciones externas. Estas interrupciones no son enviadas

directamente a la UCP, sino que se mandan a un circuito integrado cuya función es

exclusivamente manejar este tipo de interrupciones. El circuito, llamado PIC 8259A, si

es controlado por la UCP utilizando para tal control una serie de vías de comunicación

llamadas puertos.

Interrupciones de software.- Las interrupciones de software pueden ser activadas

directamente por el ensamblador invocando al número de interrupción deseada con la

instrucción INT. El uso de las interrupciones nos ayuda en la creación de programas,

utilizándolas nuestros programas son más cortos, es más fácil entenderlos y

usualmente tienen un mejor desempeño debido en gran parte a su menor tamaño. Este

tipo de interrupciones podemos separarlas en dos categorías: las interrupciones del

sistema operativo DOS y las interrupciones del BIOS.

La diferencia entre ambas es que las interrupciones del sistema operativo son más

fáciles de usar pero también son más lentas ya que estas interrupciones hacen uso del

BIOS para lograr su cometido, en cambio las interrupciones del BIOS son mucho más

rápidas pero tienen la desventaja que, como son parte del hardware son muy

Page 7: ProyectoTercerParcial Carrito Benalcazar Sandoval NRC2585 (1)

6

La elección del tipo de interrupción a utilizar dependerá únicamente de las

características que le quiera dar a su programa: velocidad (utilizando las del BIOS) o

portabilidad (utilizando las del DOS).

Ejemplos:

Interrupción 21H

Propósito: Llamar a diversas funciones del DOS.

Sintaxis:

Int 21H

Otras Interrupciones;

10/02 para posicionar el texto

10/00 para poner color

21/09 para imprimir un mensaje

21/01 para esperar un que ingrese un dato.

Saltos, ciclos y procedimientos:

Los saltos incondicionales en un programa escrito en lenguaje ensamblador están

dados por la instrucción JMP, un salto es alterar el flujo de la ejecución de un programa

enviando el control a la dirección indicada. Un ciclo, conocido también como iteración o

bucle, es la repetición de un proceso un cierto número de veces hasta que alguna

condición se cumpla. En estos ciclos se utilizan los bifurcaciones "condicionales"

basados en el estado de las banderas.

Por ejemplo la instrucción JNZ que salta solamente si el resultado de una operación es

diferente de cero y la instrucción JZ que salta si el resultado de la operación es cero.

Por último tenemos los procedimientos o rutinas, que son una serie de pasos que se

usarán repetidamente en el programa y en lugar de escribir todo el conjunto de pasos

únicamente se les llama por medio de la instrucción CALL. Un procedimiento en

ensamblador es aquel que inicie con la palabra PROC y termine con la palabra RET (ya

explicado anteriormente).

2.2 Emulador 8086

Page 8: ProyectoTercerParcial Carrito Benalcazar Sandoval NRC2585 (1)

7

El emulador 8086 fue el primero que se utilizó para impartir un curso de

microprocesadores por la universidad de Don Bosco.

Este emulador posee una interfaz de usuario muy amistosa que permite familiarizarse

con los fundamentos de la programación en lenguaje ensamblador de forma muy

intuitiva, aparte de eso brinda una serie de recursos para ejecutar y depurar programas.

2.2.1 Ventajas

Fácil manipulación.

Interfaz amigable con el usuario.

Barra de herramientas que permiten realizar programas fácilmente.

2.2.2 Desventajas

No soporta algunas de las interrupciones que posee el sistema operativo.

No puede acceder a los puertos Físicos (reales), sino que los emula usando

otros programas.

2.3 Entorno EMU 8086

2.3.1 Pantalla Principal

Es donde se escribirán los archivos fuentes en el lenguaje ensamblador.

Se puede ver una barra de menú de Windows con sus opciones file, edit, etc. Pero

también se vera unas operaciones poco usuales como assembler, emulador, etc.

Propias del emulador. También se ve una serie de botones que le permitirán crear un

nuevo archivo, abrir un archivo que ya existe, abrir un ejemplo, compilar un archivo

fuente, emular un archivo ejecutable y otras opciones.

Page 9: ProyectoTercerParcial Carrito Benalcazar Sandoval NRC2585 (1)

8

2.3.2 Pantalla de

Compilación

E l momento de compilar y mientras

se abre una ventana llamada

“assembler status” nos informa

sobre los resultados del proceso.

Si el resultado es exitoso observara

un mensaje como el de la figura en

caso contrario se despliegan los

errores generados.

2.3.3 Pantalla del Emulador

Permite administrar, cargar o salvar los archivos que se van creando o ejecutando.

Math da acceso a calculadora y un convertidor de bases de numeración. Debug provee

herramientas para depurar programas, Además aquí podemos ejecutar nuestro

programa de corrido o línea por línea.

External, permite ejecutar el programa con otras herramientas diferentes del EMU

8086. Virtual Devices y Virtual drive activan dispositivos y unidades virtuales.

Page 10: ProyectoTercerParcial Carrito Benalcazar Sandoval NRC2585 (1)

9

2.3.4 Ventanas de Código Fuente

Una ventana es donde se crea el código del programa y la otra aparece como apoyo al

momento de compilar.

Page 11: ProyectoTercerParcial Carrito Benalcazar Sandoval NRC2585 (1)

10

3 DISEÑO

3.1 DIAGRAMA DE FLUJO

INICIO

Inicialización

“Presentación de Carátula”

Ingrese una Instrucción por

medio del teclado matricial

Se verifica

Instrucción

Válida

Generar instrucción directamente

por medio de puerto paralelo

hacia el Auto RC

Instrucción

Invalida

NO

SI

Cerrar

Ventana FIN

Page 12: ProyectoTercerParcial Carrito Benalcazar Sandoval NRC2585 (1)

11

3.2 DIAGRAMA DE BLOQUE

ILUSTRACIÓN- DIAGRAMA DE BLOQUES

3.3 DISEÑO DELPROGRAMA.

Para la realización del programa se utilizó la herramienta de diseño EMU 8086:

Page 13: ProyectoTercerParcial Carrito Benalcazar Sandoval NRC2585 (1)

12

Código:

Page 14: ProyectoTercerParcial Carrito Benalcazar Sandoval NRC2585 (1)

13

Page 15: ProyectoTercerParcial Carrito Benalcazar Sandoval NRC2585 (1)

14

Page 16: ProyectoTercerParcial Carrito Benalcazar Sandoval NRC2585 (1)

15

Para ejecutar el programa debemos generar un archivo .exe, para lo cual

presionamos el botón compilar, una vez realizado este proceso procedemos a

ejecutar nuestro programa:

Page 17: ProyectoTercerParcial Carrito Benalcazar Sandoval NRC2585 (1)

16

3.4 DISEÑO DEL CIRCUITO.

PUERTO PARALELO

ILUSTRACIÓN- PUERTO PARALELO

Para realizar la conexión entre el EMU8086 y nuestro circuito utilizaremos el

puerto paralelo, el cual tiene 5 puertos de salida, 8 puertos de entrada, 4 puertos

de control y 8 pines son tierra.

TECLADO MATRICIAL

Sirve para ingresar las instrucciones que va a realizar nuestro carrito a través de

los puertos de entrada del puerto paralelo, es decir que trabaja como control

remoto, consta de una matriz de botones de 4x4, donde cada botón tendrá una

instrucción asignada:

Page 18: ProyectoTercerParcial Carrito Benalcazar Sandoval NRC2585 (1)

17

DECODIFICADOR TECLADO MATRICIAL 74922

ILUSTRACIÓN- DECODER TECLADO MATRICIAL

Sirve para ayudarnos a identificar que tecla ingresamos, conectamos en la

entradas X las columnas y a las entradas Y las filas, una vez que presionamos

una tecla el código de la tecla aparecerá en las líneas de salida (A,B,C,D) y se

activa la línea de dato disponible, además el integrado elimina el efecto rebote

que surge al presionar una tecla.

CONEXIÓN CON EL JOYSTICK

ILUSTRACIÓN- CONEXIÓN CON EL JOYSTICK

Finalmente para controlar el carrito conectaremos a los puertos de salida del

puerto paralelo a los pulsadores que se encuentran dentro del joystick, lo que

nos permite controlar el carrito por medio del teclado matricial.

Page 19: ProyectoTercerParcial Carrito Benalcazar Sandoval NRC2585 (1)

3.5 CIRCUITO COMPLETO

ILUSTRACIÓN 1-DISEÑO COMPLETO

Page 20: ProyectoTercerParcial Carrito Benalcazar Sandoval NRC2585 (1)

4 CONCLUSIONES

Se empleó el emulador EMU8086 con éxito, logrando controlar de manera

certera el carro de Radio Control por puerto paralelo, definiendo así el

empleo del microprocesador 8086 y su utilidad como base para los

procesadores superiores.

Se empleó correctamente el teclado matricial con su respectivo

decodificador, logrando un correcto desarrollo del circuito de control.

Aplicamos los conocimientos adquiridos durante el parcial para programar en

lenguaje ensamblador, manejando sus interrupciones logrando así una

comunicación de entrada y salida por un puerto paralelo.

RECOMENDACIONES

Se recomienda tomar en cuenta el funcionamiento del Radio Control, no

debe ser complicado ya que tenemos que controlarlo de una manera

sencilla.

Para el diseño se debe tener en cuenta la función del cada pin del puerto

para no generar errores y lograr una buena codificación.

Para la hora de implementar el circuito en un protoboard se recomienda ir

comprobando el funcionamiento del circuito por etapas.

5 REFERENCIAS BIBLIOGRÁFICAS.

1. UDB, Introducción a EMU8086 Recuperado el 13 de diciembre del 2013 en

http://www.udb.edu.sv/udb/archivo/guia/electronica-

tecnologico/microprocesadores-(fet)/2013/ii/guia-1.pdf

2. SÁNCHEZ, Manual de Programación e ensamblador 8086,, Recuperado el 13

de diciembre del 2013 en

http://www.uhu.es/tomas.mateo/ac2/manual%20ensamblador%20UHU.pdf

3. GUERRERO Francisco, Emulador 8086 Recuperado el 13 de diciembre del

2013 en

http://www.slideshare.net/CesarSandoval12/emulador-8086