Práctica No 1 OPERACIÓN DE SISTEMAS MINIMOS CON MICROPROCESADORES Objetivo: Operar sistemas mínimos con microprocesadores, aplicándolos a procesos o funciones específicas de monitoreo y control para su implementación en aplicaciones específicas. Material: 1 Computadora Personal Desarrollo: En la presente práctica se empleará el Software de Emulación Emu8086, para diseñar un control de luces de tráfico en un crucero de dos avenidas. Este software de Emulación dispone de una interfaz “Traffic_Lights.exe” , que se muestra a continuación: Semáforo # 1 Verde: Bit 2 Amarillo: Bit 1 Rojo: Bit 0 Semáforo # 2 Verde: Bit 5 Amarillo: Bit 4 Rojo: Bit 3 Operación de Micros e Interfaces Docente: M. en C. Baldemar Irineo Carrasco Semáforo # 3 Verde: Bit 8 Amarillo: Bit 7 Rojo: Bit 6 gráfica llamada: Semáforo # 4 Verde: Bit B Amarillo: Bit A Rojo: Bit 9 1 Esta interfaz simula el control de las 12 luces de los semáforos que se ubican en el cruce de dos avenidas. Se controla por el puerto de salida 4 del Sistema mínimo mediante un Bus de Datos de 16 bits. En la imagen se muestran las diferentes luces y los bits que controlan el encendido (1) o apagado (0) de cada una. 1. Diseñar cómo serán las diferentes secuencias de 16 bits para el encendido de las luces de tráfico para cada equipo. Por ejemplo: a) Dos en Verde, Dos en Rojo e ir rotando: Semáforo #1 y #3 en Verde, luego Semáforo #2 y #4 en Verde y reiniciar. b) Uno en Verde, Tres en Rojo, ir rotando en sentido contrario a las manecillas del reloj: Semáforo #1 en Verde, luego Semáforo #2 en Verde, luego Semáforo #3 en Verde, luego Semáforo #4 en Verde y reiniciar. c) Modo Nocturno: Dos parpadean en amarillo y dos parpadean en Rojo: Semáforo #1 y Semáforo #3 parpadean en Amarillo y al mismo tiempo Semáforo #2 y Semáforo #4 parpadean en Rojo. 2. Abrir el programa EMU8086. 3. En la ventana de inicio dar click en el botón “New” (Nuevo). 4. Se abrirá la ventana “Choose code template”, dar click en el botón OK. 5. Se abrirá la ventana de edición del emulador, en donde se procederá a editar el programa para controlar las luces de tráfico. Operación de Micros e Interfaces Docente: M. en C. Baldemar Irineo Carrasco 2 6. Antes de comenzar a editar las instrucciones para el control de las luces, agregar la línea #start=Traffic_Lights.exe# justo antes de la línea “org 100h”, para que el programa pueda hacer uso de la interfaz gráfica de control de luces de tráfico. 7. Comenzar a editar el programa en el software EMU8086 utilizando las instrucciones MOV y OUT para mandar a encender las luces de tráfico con las secuencias de bits de encendido que diseñaron en el paso 1. Recuerden poner comentarios en las líneas de código para indicar que luces se encienden con cada secuencia. Ejemplos: Las siguientes instrucciones dos instrucciones ponen los cuatro semáforos en rojo: MOV AX, 0000001001001001b ; Todos semáforos en Rojo OUT 4, AX Si luego se desea encender la luz verde del Semáforo # 1 se emplearían las siguientes dos instrucciones: MOV AX, 0000001001001100b ; Semáforo 1 en Verde OUT 4, AX O bien si se desea encender los semáforos # 1 y #3 en verde se emplean las siguientes dos instrucciones: MOV AX, 0000001100001100b ; Semáforo 1 y 3 en Verde OUT 4, AX Nota: Hacer uso de procedimientos, así como se explicó en la clase, para generar retardos de medio segundo, 1 segundo, 2 segundos y 5 segundos; para que la simulación sea lo más cercana a la realidad. Las líneas de código para cada retardo se muestran en la siguiente tabla: Retardo de medio segundo Retardo de 1 segundo Retardo de 2 segundos Retardo de 5 segundos MOV MOV MOV INT MOV MOV MOV INT MOV MOV MOV INT MOV MOV MOV INT CX, 7h DX, 0A120h AH, 86h 15h CX, 0Fh DX, 4240h AH, 86h 15h Operación de Micros e Interfaces Docente: M. en C. Baldemar Irineo Carrasco CX, 1Eh DX, 8480h AH, 86h 15h CX, 4Ch DX, 4B40h AH, 86h 15h 3 Ejemplo del uso de Procedimientos para los retardos: MOV AX, 0000001001001001b ; Todos semáforos en Rojo OUT 4, AX CALL Retardo5s ; Retardo de 5 segundos MOV AX, 0000001001001100b ; Semáforo 1 en Verde OUT 4, AX CALL Retardo5s ; Retardo de 5 segundos RET ; Fin del Programa Principal ; Aquí abajo se listan los ejemplos de procedimientos Retardo5s PROC MOV CX, 4Ch MOV DX, 4B40h MOV AH, 86h INT 15h RET Retardo5s ENDP ;Retardo de 5 segundos Retardo2s PROC MOV CX, 1Eh MOV DX, 8480h MOV AH, 86h INT 15h RET Retardo2s ENDP ;Retardo de 2 segundos 8. Una vez que hayan escrito las instrucciones para todas las secuencias de luces se procederá a crear un loop infinito, empleando la instrucción de salto “JMP Inicio” para retornar el flujo del programa al punto en donde se coloque la etiqueta “Inicio”. 9. Compilar el programa y corregir los errores en caso de que se presenten. Operación de Micros e Interfaces Docente: M. en C. Baldemar Irineo Carrasco 4 10. Ejecutar el programa en modo continuo “Run” y pedir al Docente que valide su funcionamiento. Corregir las secuencias de encendido de las luces o modificar los retardos, en caso de que el sistema no funcione como lo desean. 11. En el siguiente espacio, por favor copie y pegue el código completo del programa de control de luces de tráfico que escribieron en Lenguaje Ensamblador, en el software EMU8086: 12. Anote sus Observaciones y Conclusiones individuales de la práctica. Operación de Micros e Interfaces Docente: M. en C. Baldemar Irineo Carrasco 5