Procesadores de Propósito General Convocatoria de Diciembre (15-12-98) Cuestiones Teóricas Responder de la forma más breve y clara posible a las siguientes cuestiones. 1.- (1 punto). Enumerar los distintos métodos de Entrada/Salida y comentar sus características más importantes. 2.- (1 punto). Subrutinas: Definición, ventajas e inconvenientes de su uso. 3.- (1 punto). Comentar los distintos modos de funcionamiento del CTC Z8430. 4.- (1 punto). Elementos que componen la estructura interna general de un microcontrolador 8052. Procesadores de Propósito General Convocatoria de Diciembre (15-12-98) Problemas 1.- (4 puntos). Sabiendo que el microprocesador Z80 posee un bus de direcciones de 16 bits, un bus de datos de 8 bits y líneas de control MREQ', IORQ', RD' y WR', entre otras, diseñar: a) Un mapa de memoria que conste de: • 24 Kbytes de memoria de solo lectura, implementados con módulos de memoria ROM de tamaño 4K x 8. • 10 Kbytes de memoria de escritura/lectura, implementados con módulos de memoria RAM de tamaño 1K x 4. Indicar mediante una tabla las direcciones iniciales y finales asignadas a cada módulo de memoria. b) La sección de entrada/salida que conste de: • • • • • • Un Z80-PIO (Z8420). Un Z80-DMA (Z8410). Un Z80-CTC (Z8430). Un puerto de Entrada. Un puerto de Salida. Un puerto de Entrada/Salida. Los tres últimos elementos podrán implementarse a base de puertas de tres estados (C.I. 74244) y registros de ocho bits (C.I. 74374). Indicar mediante una tabla las direcciones iniciales y finales asignadas a cada elemento. 2.- (2 puntos). Suponiendo que el Z-80 trabaja en modo de interrupciones vectorizadas (modo 2) y teniendo en cuenta la información adjunta, escribir los fragmentos de programa necesarios para configurar el PIO y el CTC del ejercicio anterior, para que: • El puerto A del PIO pueda usarse para mandar información a un display. • En el puerto B del PIO sean entradas de control las líneas 0, 5, 6 y 7, y salidas las restantes, produciéndose una solicitud de interrupción a la CPU cuando la línea 5 o la 6 adopte un nivel alto. • Cuando en la entrada de reloj del canal 1 del CTC se reciban 271 flancos descendentes, se coloque un nivel alto en la salida ZC/TO1. • Cuando el periférico asociado al canal 3 del CTC proporcione al mismo un flanco de subida, se espere un tiempo de 40 µS (Fosc = 4 Mhz.), transcurrido el cual se solicitará una interrupción a la CPU. Las direcciones de las rutinas para el tratamiento de las interrupciones provocadas por el puerto B del PIO y el canal 3 del CTC se encuentran almacenadas a partir de las posiciones de memoria CCA0H y CCA6H, respectivamente. PROGRAMACIÓN DEL PIO D7 D6 X SELECCIÓN DE MODO X 1 1 1 1 PROGRAMACIÓN DEL CTC D7 D6 D5 D4 D3 D2 D1 1 IDENTIFICADOR DE PALABRA DE CONTROL DEL CANAL IDENTIFICADOR DE PALABRA DE CONTROL DE MODO D7 D6 D5 D4 0 1 1 CONTINUA OPERACIÓN {01 PARA OPERACIÓN 0 NO SIGUE CTE. DE TIEMPO {1 SIGUE CTE. DE TIEMPO TEMP. AUTOMÁTICO {01 COMIENZO COM. TEMP. DISPARO EXTERNO FLANCO ACTIVO DESCENDENTE {01 FLANCO ACTIVO ASCENDENTE 0 FACTOR PREESCALADO 16 { 1 FACTOR PREESCALADO 256 TEMPORIZADOR { 01 MODO MODO CONTADOR INHABILITADAS { 01 INTERRUPCIONES INTERRUPCIONES HABILITADAS 1 IDENTIFICADOR DE PALABRA DE CONTROL DE INTERRUPCIÓN SIGUE PALABRA MÁSCARA { 01 NO SIGUE PALABRA MÁSCARA ACTIVO BAJO {01 NIVEL NIVEL ACTIVO ALTO INT. SOBRE FUNCIÓN OR { 01 INT. SOBRE FUNCIÓN AND 0 INTERRUPCIONES INHABILITADAS {1 INTERRUPCIONES HABILITADAS D7 D6 D5 D4 D3 D2 D1 0 IDENTIFICADOR DE VECTOR DE INTERRUPCIÓN { 01 CHEQUEA NO CHEQUEA SELECCIÓN E/S {0 SALIDA 1 ENTRADA P. MÁSCARA D7 D6 D5 D4 D3 X X 0 IDENTIFICADOR DE VECTOR DE INTERRUPCIÓN Procesadores de Propósito General Convocatoria de Diciembre (15-12-98) Prácticas Enunciado: Se requiere diseñar una miniestación meteorológica basada en el microcontrolador 80C52 de la familia MCS-51 (ver fig.1) que transmite datos sobre la velocidad del viento y genera una señal de alarma cuando la velocidad supera un límite establecido. El anemómetro está compuesto por unas palas que hacen girar un eje en el que se ha dispuesto un disco opaco con cuatro perforaciones. Cada vez que el sensor óptico detecta la presencia del agujero, activa una salida digital a nivel bajo. Este disco posee cuatro agujeros separados por la misma distancia angular. Se sabe que el disco gira a razón de KR vueltas por segundo cuando la velocidad del viento es de 1Km/h. V OUT Detector Agujero VOUT RS-232 µControlador MODEM RADIO ALARMA 5V 0V 90 º 360 º Fig. 1 Anemómetro. Esquema y Diagrama de tiempos de salida Se pide: 30 p. 70 p. Utilizando un microcontrolador 80C52 de Intel configurado para el acceso a memoria de programa interna y la lógica necesaria, conectar a los pines que se crea oportuno las conexiones referentes a la alarma y al detector óptico. Se recomienda disponer las conexiones en aquellos pines que simplifiquen el diseño del software de la aplicación. Dibujar el esquema total del sistema en un único folio. Sabiendo que el microcontrolador va a trabajar con un reloj de frecuencia 16 MHz, diseñar el software de la aplicación que permita transmitir la velocidad del viento (expresada en Km/h) cada 5 segundos, y active la alarma mientras que la velocidad medida supere el límite fijado Vmax. Diseñar tanto el diagrama de flujo, como el código en 'C' de la aplicación. NOTA: Se valorará la sencillez y eficiencia del código generado.