You are on page 1of 20

DEPARTAMENTO DE ELCTRICA Y ELECTRNICA

MICROPROCESADORES

PROYECTO TERCER PARCIAL

BENALCAZAR ALEXANDER SANDOVAL SEBASTIN

ING. NANCY PAREDES

Sangolqu - 2013

NDICE 1 OBJETIVOS DEL PROYECTO................................................................................. 2 1.1. 1.2. 2 3 OBJETIVO GENERAL ....................................................................................... 2 OBJETIVOS ESPECFICOS .............................................................................. 2

MARCO TERICO ................................................................................................... 2 DISEO .................................................................................................................. 10 3.1 3.2 3.3 3.4 DIAGRAMA DE BLOQUE ................................................................................ 10 DISEO DELPROGRAMA............................................................................... 11 DISEO DEL CIRCUITO. ................................................................................ 15 CIRCUITO COMPLETO ................................................................................... 18

CONCLUSIONES ................................................................................................... 19

RECOMENDACIONES ................................................................................................. 19 5 REFERENCIAS BIBLIOGRFICAS. ...................................................................... 19

NDICE DE TABLAS E ILUSTRACIONES. TABLA 1-TABLA DE VERDAD DEL BUFFER TRISTATEError! definido. TABLA 2-DECODIFICACIN DE LECTURA Y ESCRITURAError! definido. Marcador Marcador no no

ILUSTRACIN 2-MEMORIA EEPROM .......................... Error! Marcador no definido. ILUSTRACIN 3-MODOS DE OPERACIN ................... Error! Marcador no definido. ILUSTRACIN 4-BUFFER TRISTATE ............................ Error! Marcador no definido. ILUSTRACIN 5-DIAGRAMA DE BUSES DE UN MICROPROCESADOR .......... Error! Marcador no definido. ILUSTRACIN 6-DIAGRAMA DE BLOQUES ............................................................... 11 ILUSTRACION 7-CIRCUITO GENERADOR DE PULSOSError! Marcador no definido. ILUSTRACIN 8- CIRCUITO DE REINICIO .................... Error! Marcador no definido. ILUSTRACIN 9-LEDS DE ESCRITURA Y LECTURA .. Error! Marcador no definido. ILUSTRACIN 10-DECODIFICACIN DE ESCRITURA Y LECTURAError! Marcador no definido.

ILUSTRACIN 11-CONEXIN DE PINES DEL MICROPROCESADOR Z80 ....... Error! Marcador no definido. ILUSTRACION-12 CONEXIN DE PINES DE LA MEMORIA EEPROM .............. Error! Marcador no definido. ILUSTRACIN-13 CONEXIN DE LOS PINES DEL BUFFERSError! Marcador no definido. ILUSTRACIN-14 DECODIFICADOR 74LS47 PARA DISPLAY NODO COMN ......................................................................................... Error! Marcador no definido. ILUSTRACIN-15 DISPLAY NODO COMN ............... Error! Marcador no definido. ILUSTRACIN 16-DISEO COMPLETO ..................................................................... 18

OBJETIVOS DEL PROYECTO 1.1. OBJETIVO GENERAL Utilizar el programa emulador EMU8086 y relacionarlo con los elementos bsicos que conforman el modelo de programacin del microprocesador 8086 para implementar un programa que controle un carro a control remoto por medio del puerto paralelo. 1.2. OBJETIVOS ESPECFICOS Determinar el funcionamiento del teclado matricial, as como su decodificacin para la realizacin del circuito. Utilizar los conocimientos adquiridos durante el parcial para programar en lenguaje ensamblador y lograr una comunicacin de entrada y salida por un puerto paralelo.

MARCO TERICO 2.1 El lenguaje ensamblador

Es un lenguaje de programacin de bajo nivel para los computadores, microprocesadores, microcontroladores y otros circuitos integrados programables. Implementa una representacin simblica de los cdigos de mquina binarios y otras constantes necesarias para programar una arquitectura dada de CPU y constituye la

representacin ms directa del cdigo mquina especfico para cada arquitectura legible por un programador. 2.1.1 Estructura del Ensamblador En el lenguaje ensamblador las lneas de cdigo constan de dos partes, la primera es el nombre de la instruccin que se va a ejecutar y la segunda son los parmetros del comando u operando. Por ejemplo: ADD ah bh Aqu "ADD" es el comando a ejecutar (en este caso una adicin o suma) y tanto "ah" como "bh" son los parmetros. El nombre de las instrucciones en este lenguaje puede estar formado de 2 a 6 letras, a estas instrucciones tambin se les llama nombres mnemnicos o cdigos de operacin, ya que representan alguna funcin que habr de realizar el procesador. Existen algunos comandos que no requieren parmetros para su operacin, as como otros que requieren solo un parmetro. Algunas veces se utilizarn las instrucciones como sigue: ADD al,[170] Los corchetes en el segundo parmetro nos indican que vamos a trabajar con el contenido de la casilla de memoria nmero 170 y no con el valor 170, a esto se le conoce como direccionamiento directo (en la instruccin viene la direccin del objeto).

2.1.2

Tcnicas de codificacin en ensamblador:

En ensamblador los bucle, condicionales, subrutinas y dems elementos se codifica de forma distinta de cmo se hace en otros lenguajes de alto nivel. A continuacin describiremos algunas tcnicas tiles para codificar las estructuras ms usuales. BUCLES: Inicializacin de un registro(a modo de contador) al n de vueltas del bucle Etiqueta: Primera instruccin del bucle <resto de instrucciones dentro del bucle> Decrementar el contador Saltar a la etiqueta si el contador es mayor que cero

<Instrucciones fuera del bucle>

SALTOS CONDICIONALES: Instruccin de comparacin Evaluar condicin y si se cumple saltar a la etiqueta prefijada <Instrucciones para el caso de no cumplirse la condicin> Saltar fuera del condicional

MACROS: Declaracin: <nombre de la macro> MACRO <instrucciones de la macro> ENDM Llamada: <nombre de la macro>

SUBRUTINAS: Declaracin: <nombre la de subrutina> PROC <instrucciones de la subrutina> RET <nombre de la subrutina> ENDP Llamada:

CALL <nombre de la subrutina>

2.1.3

Interrupciones

Una interrupcin es una instruccin que detiene la ejecucin 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 aplicacin 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 aplicacin que estbamos. Interrupciones internas de hardware.- Las interrupciones internas son generadas por ciertos eventos que surgen durante la ejecucin 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 interrupcin varias veces durante un segundo para mantener la hora actualizada. Interrupciones externas de hardware.- Las interrupciones externas las generan los dispositivos perifricos, como pueden ser: teclado, impresoras, tarjetas de comunicaciones, etc. Tambin 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 funcin 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 vas de comunicacin llamadas puertos. Interrupciones de software.- Las interrupciones de software pueden ser activadas directamente por el ensamblador invocando al nmero de interrupcin deseada con la instruccin INT. El uso de las interrupciones nos ayuda en la creacin de programas, utilizndolas nuestros programas son ms cortos, es ms fcil entenderlos y usualmente tienen un mejor desempeo debido en gran parte a su menor tamao. Este tipo de interrupciones podemos separarlas en dos categoras: las interrupciones del sistema operativo DOS y las interrupciones del BIOS. La diferencia entre ambas es que las interrupciones del sistema operativo son ms fciles de usar pero tambin son ms lentas ya que estas interrupciones hacen uso del BIOS para lograr su cometido, en cambio las interrupciones del BIOS son mucho ms rpidas pero tienen la desventaja que, como son parte del hardware son muy

La eleccin del tipo de interrupcin a utilizar depender nicamente de las caractersticas que le quiera dar a su programa: velocidad (utilizando las del BIOS) o portabilidad (utilizando las del DOS). Ejemplos: Interrupcin 21H Propsito: 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 estn dados por la instruccin JMP, un salto es alterar el flujo de la ejecucin de un programa enviando el control a la direccin indicada. Un ciclo, conocido tambin como iteracin o bucle, es la repeticin de un proceso un cierto nmero de veces hasta que alguna condicin se cumpla. En estos ciclos se utilizan los bifurcaciones "condicionales" basados en el estado de las banderas. Por ejemplo la instruccin JNZ que salta solamente si el resultado de una operacin es diferente de cero y la instruccin JZ que salta si el resultado de la operacin es cero. Por ltimo tenemos los procedimientos o rutinas, que son una serie de pasos que se usarn repetidamente en el programa y en lugar de escribir todo el conjunto de pasos nicamente se les llama por medio de la instruccin 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

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 programacin en lenguaje ensamblador de forma muy intuitiva, aparte de eso brinda una serie de recursos para ejecutar y depurar programas.

2.2.1 Ventajas Fcil manipulacin. Interfaz amigable con el usuario. Barra de herramientas que permiten realizar programas fcilmente. 2.2.2 Desventajas No soporta algunas de las interrupciones que posee el sistema operativo. No puede acceder a los puertos Fsicos (reales), sino que los emula usando otros programas. 2.3 Entorno EMU 8086

2.3.1 Pantalla Principal Es donde se escribirn los archivos fuentes en el lenguaje ensamblador. Se puede ver una barra de men de Windows con sus opciones file, edit, etc. Pero tambin se vera unas operaciones poco usuales como assembler, emulador, etc. Propias del emulador. Tambin se ve una serie de botones que le permitirn crear un nuevo archivo, abrir un archivo que ya existe, abrir un ejemplo, compilar un archivo fuente, emular un archivo ejecutable y otras opciones.

2.3.2

Pantalla de Compilacin

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 numeracin. Debug provee herramientas para depurar programas, Adems aqu podemos ejecutar nuestro programa de corrido o lnea por lnea. External, permite ejecutar el programa con otras herramientas diferentes del EMU 8086. Virtual Devices y Virtual drive activan dispositivos y unidades virtuales.

2.3.4 Ventanas de Cdigo Fuente Una ventana es donde se crea el cdigo del programa y la otra aparece como apoyo al momento de compilar.

DISEO 3.1 DIAGRAMA DE FLUJO

INICIO

Inicializacin Presentacin de Cartula

Ingrese una Instruccin por medio del teclado matricial Instruccin Invalida Se verifica Instruccin Vlida

NO

SI Generar instruccin directamente por medio de puerto paralelo hacia el Auto RC

Cerrar Ventana

FIN

10

3.2

DIAGRAMA DE BLOQUE ILUSTRACIN- DIAGRAMA DE BLOQUES

3.3

DISEO DELPROGRAMA. Para la realizacin del programa se utiliz la herramienta de diseo EMU 8086:

11

Cdigo:

12

13

14

Para ejecutar el programa debemos generar un archivo .exe, para lo cual presionamos el botn compilar, una vez realizado este proceso procedemos a ejecutar nuestro programa:

15

3.4

DISEO DEL CIRCUITO. PUERTO PARALELO ILUSTRACIN- PUERTO PARALELO

Para realizar la conexin 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 travs 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 botn tendr una instruccin asignada:

16

DECODIFICADOR TECLADO MATRICIAL 74922 ILUSTRACIN- 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 cdigo de la tecla aparecer en las lneas de salida (A,B,C,D) y se activa la lnea de dato disponible, adems el integrado elimina el efecto rebote que surge al presionar una tecla. CONEXIN CON EL JOYSTICK ILUSTRACIN- CONEXIN 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.

17

3.5

CIRCUITO COMPLETO ILUSTRACIN 1-DISEO COMPLETO

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 comunicacin 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 diseo se debe tener en cuenta la funcin del cada pin del puerto para no generar errores y lograr una buena codificacin. Para la hora de implementar el circuito en un protoboard se recomienda ir comprobando el funcionamiento del circuito por etapas.

REFERENCIAS BIBLIOGRFICAS. 1. UDB, Introduccin a EMU8086 Recuperado el 13 de diciembre del 2013 en http://www.udb.edu.sv/udb/archivo/guia/electronicatecnologico/microprocesadores-(fet)/2013/ii/guia-1.pdf 2. SNCHEZ, Manual de Programacin 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

You might also like