Proyecto PPI Mediante Emu8086(Control de Motor y Leds)

14
UNIVERSIDAD NACIONAL DEL CALLAO FACULTAD DE INGENIERIA ELÉCTRICA Y ELECTRÓNICA ESCUELA PROFECIONAL DE INGENIERIA ELECTRÓNICA ASIGNATURA: Arquitectura de computadoras Laboratorio -92G SEMESTRE ACADEMICO : 2014-B TEMA : PROYECTO PP PROFESOR: Cucho Mendoza en!n CODIGO APELLIDOS"NOM #RES PREVIO$ %& P'LA#$ (& SUST$ )& TAREAS$ *& NOT A +*+,**-, .% DE LA CRU CASTRO DOMINGO CESAR +*+,*+-- +* /ERRERA ESCATE /AROLD ANDRE

description

Universidad Nacional del Callao FIEE

Transcript of Proyecto PPI Mediante Emu8086(Control de Motor y Leds)

UNIVERSIDAD NACIONAL DEL CALLAO

FACULTAD DE INGENIERIA ELCTRICA Y ELECTRNICAESCUELA PROFECIONAL DE INGENIERIA ELECTRNICA

ASIGNATURA: Arquitectura de computadoras Laboratorio -92G SEMESTRE ACADEMICO: 2014-B TEMA: PROYECTO PPI PROFESOR: Cucho Mendoza Zenn

CODIGOAPELLIDOS/NOMBRESPREVIO(6)P_LAB(8)SUST(4)TAREAS(2)NOTA

1213220376DE LA CRUZ CASTRO DOMINGO CESAR

1213210012HERRERA ESCATE HAROLD ANDRE

Proyecto de uso de perifricos mediante emu8086

Introduccin:Nosotros en el pasado hemos usado el emulador en assembler llamado emu8086 para trabajar programas creados por nosotros y ejecutados en el mismo ensamblador, sin embargo, esta vez utilizaremos el emu8086 de una manera ms prctica.En el campo de la electrnica para la vida diaria se usan muchos dispositivos perifricos, lo que haremos en este proyecto ser utilizar el assembler para poder configurar y programar un microprocesador de manera tal que podamos controlar un sistema externo llamado perifrico.Objetivos:

Programar y aplicar adaptadores de interfaz perifrica programable como el PPI 8255. Usar el microprocesador 8086 para enlazar el PPI 8255 por medio de programacin en lenguaje ensamblador. Controlar un motor y leds por medio del lenguaje ensamblador y la interfaz de Proteus Isis.

Componentes usados:

Microprocesador 8086: El 8086 es un microprocesador de 16 bits, tanto en lo que se refiere a su estructura como en sus conexiones externas. Consta de una unidad de ejecucin (EU: Execution Unit) y una unidad interfaz del bus (BIU: Bus Interface Unit)

PPI 8255: La interfaz programable de perifricos 8255, llamado tambin PPI por sus siglas en ingls, Programmable Peripheral Interface, se utiliza para dar al CPU acceso a puertos deentrada/salidaparalela programable.

74373 TTL:El circuito integrado 74373 o subfamilia (LS, F, S, HCT,..) es un registro de 8 latches tipo D con salida triestado. Tiene 2 entradas de control, el pin 1 OE es activo por nivel bajo, eso quiere decir que cuando tengamos este pin a nivel alto los pines salida (Q1..Q8) estn en el estado de alta impedancia, como si no estuvieran conectados.

Motor DC:El motor DC es una mquina que convierte la energa elctrica en mecnica, provocando un movimiento rotatorio, gracias a la accin del campo magntico.

Funcionamiento:La manera en la que opera nuestro proyecto es la siguiente:Tenemos 3 pulsadores, uno para el sentido Horario, uno para el sentido Antihorario y uno ms que es el pulsador para detener el giro, llamado tambin stop. Para esto tenemos nuestra programacin hecha previamente en el ensamblador, la cual ser mostrada en breve, el programa ejecutable (.exe) de nuestro emulador se guarda en el microprocesador 8086, es as que el 8086 puede controlar a los dems dispositivos segn nuestra programacin. Para resumir esta parte, usando nuestra programacin en emu8086 controlamos varios dispositivos mediante un solo integrado, el 8086.Siguiendo con el proceso, el 8086 utiliza al PPI 8255 para trabajar con el motor, el PPI permite aprovechar las ventajas del motor para hacerlo girar, ya sea en sentido horario o antihorario dependiendo del pulsador que activemos mientras dura el proceso o detenerlo si es deseado, mediante el pulsador de stop.Se agregaron 8 leds, como demostracin del sentido en el cual va el motor, esto es simplemente esttico, pero permite visualizar de una mejor manera el giro del motor DC.

Diagrama de flujo:

Proyecto PPI con motor y leds

Cargamos el microprocesador 8086 con la programacin

Apretamos cualquiera de los pulsadores para el giro del motor

AntihorarioHorario

El motor gira en sentido antihorario y los leds se encienden indicando el sentido de giroEl motor gira en sentido horario y los leds se encienden indicando el sentido de giro

Programacin en emu8086:;; PROYECTO PPI ;; ARQUITECTURA DE COMPUTADORAS;; Universidad Nacional del Callao ;; Facultad de Ing. Electrica y Electronica;; Escuela profesional de Ing. Electronica org 100h ;; Declarando los puertosCONTROL EQU 8006H ;; AEQU 0080H ;; Declarando puerto ABEQU 0082H ;; Declarando puerto BCEQU 0084H ;; Declarando puerto C inicio: ;; Iniciando con el puerto "B"mov dx,Bin al,dxcmp al,11111111b ;; El digito indica que todos los puertos estan en 1je inicio ;; Este salto o bucle es para que no realize ninguna accion hasta que presionemoscmp al,11111110b ;; Es cuando el pulsador del horario esta presionadoje horariocmp al,11111101b ;; Es cuando el pulsador del antihorario esta presionadoje antihorariocmp al,11111011b ;; Es cuando el pulsador del stop esta presionadoje stop;; Ahora definimos las acccioneshorario: mov dx,Amov al,11111110b ;; Mandamos solo 1 pulso al puente H para que gire horarioout dx,al;; Hacemos tiempos para que no se lagee o cruzenopnop nop ;;; Para los ledsmov dx,Cmov al,11111001bout dx,alnopnopnop ;; Ahora para actualizar nuestras acciones hacemos ;; Denuevo las comparaciones para ver si al presionar denuevo sucede algo ;; Leemos lo que se ingresa en el puerto Bmov dx,Bin al,dxcmp al,11111101b ;; Es cuando el segundo pulsador esta presionadoje antihorariocmp al,11111011b ;; Cuando el pulso para horario y el de stop estan apretados je stopjmp horario ;; Regresamos al bucle para que no cambie la accion mietras no haya pulsacionantihorario:mov dx,Amov al,11111101bout dx,al;; Retardandonopnopnopnop ;; Para los ledsmov dx,Cmov al,10011111bout dx,alnopnop;; Ahora habilitamos para poder controlar mediante el proceso:mov dx,Bin al,dxcmp al,11111110b ;; Es cuando presionamos el pulsador del horarioje horariocmp al,11111011b ;; Es cuando presionamos el pulsador del antihorarioje stopjmp antihorario ;; Regresamos al bucle para que no cambie la accion mientras no haya pulsacionstop:mov dx,Amov al,11111111b ;; Mandamos 1 logicos a las 2 entradas del puente H para que no haya movimiento out dx,al ;;Retardandonopnopnop ;; Para los ledsmov dx,Cmov al,10011001bout dx,alnop nop; Habilitando las demas accionesmov dx,Bin al,dxcmp al,11111110b ;; Es cuando el primer pulsador esta presionadoje horario cmp al,11111101b ;; Es cuando el segundo pulsador esta presionadoje antihorario

jmp stopret ;;Cabe resaltar que las instrucciones NOP son solo para retardar En imgenes:

Simulacin en Proteus:

Viendo detenidamente por partes, tenemos:Microprocesador 8086:

PPI 8255 Y 74373:

Pulsadores:

Circuito del motor DC:

Leds:

Observaciones y Conclusiones:

Nuestro programa tiene un diseo agradable a la vista el cual permite escoger un sentido de giro para un motor y asimismo detenerlo si es deseado, todo por medio de pulsadores que sirven como selectores mediante la ejecucin de nuestra programacin.

El 8086 y el 8255 se complementan muy bien cuando a perifricos se refiere pues hacen de sta, una tarea mucho ms sencilla y asequible mediante el uso de programacin en lenguaje ensamblador, el cual controla al 8086 y a su vez ste al PPI.

Concluimos del laboratorio que usando Emu8086 y Proteus podemos simular circuitos con microcontroladores con una programacin la cual es mas til que hacerlo de la manera clsica con solo compuertas e integrados ya que suplantamos todo ello por una programacin la cual controla el proceso del circuito dndonos la ventaje de portabilidad y menos gasto para el proyecto.