Examen 23 de Julio de 2012

Documentos relacionados
Examen 23 de Febrero de 2007

Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Organización y Estructura del Computador II Semestre I-2014.

Definición de Memoria

ITT-327-T Microprocesadores

F.R.H. DEPARTAMENTO MECÁNICA

Examen Febrero de 2012

Problemas de examen. A partir de 74LS153 exclusivamente, realizar un circuito que implemente la siguiente función:

Señal de petición de Interrupción

Qué es un Microcontrolador?

1.1.- CONCEPTOS Automatismo: Sistema que permite ejecutar una o varias acciones sin intervención manual.

Lector de códigos de barras con microcontrolador Motorola HC11

VI. Especificación del Comportamiento

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

DISEÑO DE CIRCUITOS SECUENCIALES

Síntesis de circuitos secuenciales síncronos: Máquinas de estados finitos

Circuitos Electrónicos. Septiembre 2005/2006. Problema 1º parcial

TEMA 7: Ficheros. TEMA 7: Ficheros Concepto de fichero

9-Sistemas Secuenciales

Introducción a las sentencias de control

Examen escrito de Programación 1. Jueves 5 de febrero de Problema 1 o (3.5 puntos)

Curso Completo de Electrónica Digital

Tema 2. El lenguaje JAVA

Introducción Flip-Flops Ejercicios Resumen. Lógica Digital. Circuitos Secuenciales - Parte I. Francisco García Eijó

Apuntes de Regulación y Automatización. Prácticas y Problemas.

2^10 2^9 2^8 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 SUMA

ELO211: Sistemas Digitales. Tomás Arredondo Vidal 1er Semestre 2008

Programación en C para plataforma CADmega128, basada en microcontrolador Atmel megaavr

Sesión 8 Sensor de Ultrasonido

SIMPLIFICACIÓN DE FUNCIONES LÓGICAS

Práctica I.- Introducción a los Sistemas Secuenciales

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

EIE SISTEMAS DIGITALES Tema 8: Circuitos Secuenciales (Síntesis) Nombre del curso: Sistemas Digitales Nombre del docente: Héctor Vargas

Ciclos. Recordando Estructuras de Control Básicas: SELECCIÓN (condición) SECUENCIAL

Sensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J.

Práctica 7. Control de una Máquina Expendedora Mediante Máquinas de Estado Finito (FSM)

2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 5 ENTRADA/SALIDA. JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ Tema 5.

TÉCNICO SUPERIOR UNIVERSITARIO EN MANTENIMIENTO ÁREA INDUSTRIAL

Estructuras de control

Controlador de Interrupciones (Versión programable) Manual de Usuario

Examen de Arquitectura de Computadores 2 22 de febrero del 2011

MEMORIA EJERCICIO 1 EJERCICIO 2

Electrónica. Tema 6 Circuitos Secuenciales. Tema 1 Fundamentos de semiconductores

Programación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática

Test de Fundamentos de Electrónica Industrial (4 puntos). 3º GITI. TIEMPO: 40 minutos May 2013

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

Un contador es un circuito secuencial que genera una secuencia ordenada de salidas que se repite en el tiempo. La salida coincide con el estado de

LABORATORIO DE CIRCUITOS DIGITALES (2005-II) QUINTA CLASE DE VHDL

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA INGENIERIA EN COMUNICACIONES Y ELECTRÓNICA ACADEMIA DE COMPUTACIÓN

1. Qué es un automatismo?

Análisis y Síntesis. Introducción a los Sistemas Lógicos y Digitales 2008

MSc. EdgarN. Carrera Automatización Industrial Página 1 de 7

Test: Conteste exclusivamente en HOJA DE LECTURA ÓPTICA. No olvide marcar que su tipo de examen es A.

EDUComputacion. Te ofrece el curso de:

Departamento de Ingeniería de Sistemas y Automática PROGRAMACION DE AUTOMÁTAS STEP 7

SOLUCION EXAMEN junio 2006

Elabore el diagrama de clases en UML y la codificación de un programa para resolver los siguientes problemas:

L A B O R A T O R I O T I C 2

Organización de Computadoras. Turno Recursantes Clase 8

LA COMPUTADORA DIGITAL Parte 2

Ejercicio: Detector de secuencia (1) Ejercicio: Detector de secuencia (3) Ejercicio: Detector de secuencia (2) Circuitos Digitales EC1723

Estructuras de Control

TEMA 8. REGISTROS Y CONTADORES.

TEMA 4. ESTRUCTURAS DE CONTROL

Ejercicios. Arquitectura de Computadoras. José Garzía

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Memoria La memoria es la parte del ordenador en la que se guardan o almacenan los programas (las instrucciones y los datos).

+ Máquinas de Estado Finitas

CONTENIDO MANUAL DE INSTRUCCIONES CONTADOR DE BILLETES MC Descripción del contador de billetes Funciones 3

Concurrencia: deberes. Concurrencia: Exclusión Mutua y Sincronización. Concurrencia. Dificultades con la Concurrencia

DISEÑO DE CIRCUITOS LOGICOS COMBINATORIOS

INDICE Control de dispositivos específicos Diseño asistido por computadora Simulación Cálculos científicos

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

SOLUCION Examen final IC parte B

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA Diseño con Microcontroladores

Actividades de Divulgación del Centro Atómico Bariloche. Qué hay detrás de un programa de computadora? Daniela Arnica Pablo E. Argañaras.

Práctica 5. Generadores de Señales de Reloj y Flip-flops

Ensamblador. Interrupciones. Dentro de una computadora existen dos clases de interrupciones:

Seminario de Actualización - Excel Avanzado y Macros. Visual Basic. Conceptos Básicos de Visual Basic para Aplicaciones

Algoritmos de multiplicación y división.

PROBLEMA VHDL. El comportamiento de un circuito multiplexor (o MUX) de 4 entradas se describe a continuación:

INDICE 1. Conceptos Introductorias 2. Sistemas Numéricos y Códigos 3. Compuertas Lógicas y Álgebras Booleana 4. Circuitos Lógicos Combinatorios

Tema 6. Reutilización de código. Programación Programación - Tema 6: Reutilización de código

Examen escrito de Programación 1

Programa Java. El lenguaje de programación Java. Comentarios. Programa Java. Palabras reservadas. Identificadores

Curso de Programación Avanzada en C

PROGRAMACIÓN EN C. PRÁCTICA 2: Operaciones con bits. Práctica 2: Índice. 2.1 Introducción 2.2 Representación de información binaria en C

UNIVERSIDAD DEL VALLE DE MÉXICO PROGRAMA DE ESTUDIO DE LICENCIATURA PRAXIS MES XXI

Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática

PROBLEMAS DE ELECTRÓNICA DIGITAL. Simplificación por Karnaugh: CIRCUITO LÓGICO:

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

Tema: FUNCIONES, PROCEDIMIENTOS Y RECURSIVIDAD.

SELECCIÓN DE PROBLEMAS

PROGRAMA GENERAL DE LABORATOIROS 5º AÑO CICLO SUPERIOR MECATRÓNICA

Guía práctica de estudio 05: Diagramas de flujo

51 Int. CI.: G01D 5/249 ( ) G01D 5/347 ( ) G01D 5/244 ( ) TRADUCCIÓN DE PATENTE EUROPEA. 96 Número de solicitud europea:

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

Algoritmos. Intro. Prof. Raquel Torres Peralta / Gerardo Sanchez S. Unison

^6+1 2^5+1 2^2+1 2^1+1 2^ ^6+1 2^0-65.

MANUAL DE PRÁCTICAS DEL TALLER DE PROGRAMACIÒN PRACTICA NO.6

Transcripción:

Instrucciones Examen 23 de Julio de 2012 Indique su nombre completo y número de cédula en cada hoja. Numere todas las hojas e indique la cantidad total de hojas que entrega en la primera. Escriba las hojas de un solo lado. Empiece cada ejercicio en una hoja nueva. Sólo se contestarán dudas de letra. No se aceptarán dudas los últimos 30 minutos del examen. Duración: 3 horas. Requisito para Aprobación: responder al menos la mitad del problema teórico (2 de las 4 preguntas) y resolver un problema de práctico de forma correcta. Problema 1 La serie de Fibonacci es la sucesión infinita de números naturales definida por F 0 = 1 F 1 = 1 F n+2 = F n + F n+1 Los primeros 7 valores de dicha serie son {1, 1, 2, 3, 5, 8, 13. Se desea construir un circuito secuencial que vaya genere los primeros 7 valores de la serie de Fibonacci. El circuito deberá comenzar la serie cuando es reseteado y en el tiempo i-esimo deberá tener como salida el valor i-esimo de la serie de Fibonacci. Una vez que llegue al valor 13 deberá mantener este valor hasta que se reinicie el circuito. Se pide diseñar dicho circuito en base a flip flops tipo D y compuertas básicas, utilizando la metodología vista en el curso. Solución Problema 1 Primero diseñamos la máquina de estados que computa los primeros 7 valores de la serie. La máquina no tendrá entradas y producirá como salida el número actual en la serie (S3S2S1S0). /0001 E1bis /0001 E2 /0010 E3 /0011 E1 /0101 E5 /1101 E13 /1000 E8 Ahora realizamos la tabla de estados y transiciones Departamento de Arquitectura Página 1 de 7

Tenemos 7 estados por lo que precisaremos 3 flip flops: Estado Q 2 Q 1 Q 0 Estado Q 2 Q 1 Q 0 E1 0 0 0 E5 1 0 1 E1bis 0 0 1 E8 1 1 1 E2 0 1 0 E13 1 0 0 E3 0 1 1 Ahora realizamos la tabla de salidas y transiciones: Estado Próximo Estado Salida Q 2 Q 1 Q 0 D 2 D 1 D 0 S 3 S 2 S 1 S 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 0 0 1 1 1 0 0 1 0 0 1 1 0 1 1 0 1 1 1 1 0 1 0 1 1 1 0 X X X X X X X 1 1 1 1 0 0 1 0 0 0 Departamento de Arquitectura Página 2 de 7

Y procedemos a realizar los diagramas de Karnaugh 0 0 0 1 0 1 1 1 1 X D2=Q2 + Q1.Q0 0 0 1 0 1 1 0 1 0 X D1=!Q1.Q0 + Q1.Q0 0 1 0 1 1 1 0 1 0 X D0=!Q2.Q1 +!Q2.!Q0 + Q2.!Q1.Q0 0 0 0 0 0 1 1 0 1 X S3=Q2.!Q0 + Q2.Q1 0 0 0 0 0 1 1 1 0 X S2=Q2.!Q1 Departamento de Arquitectura Página 3 de 7

0 0 0 1 1 1 0 0 0 X S1=!Q2.Q1 0 1 1 1 0 1 1 1 0 X S0=!Q1 +!Q2.Q0 Ahora dibujamos el circuito: Departamento de Arquitectura Página 4 de 7

Problema 2 Se desea construir un circuito combinatorio que controle el comportamiento de un robot que obtiene energía de un panel solar. El robot además tiene un sensor de contacto y un sensor de distancia que permiten detectar obstáculos. Estos dispositivos devuelven medidas en el siguiente rango: a) Sensor de contacto: de 0 a 1 unidades b) Sensor de distancia: de 0 a 63 unidades c) Energía del panel: de 0 a 200 unidades El circuito deberá controlar dos motores en forma independiente, y cada uno de ellos se controla con 7 bits. Comportamiento del robot: Si detecta un obstáculo (sensor de contacto en 1 o sensor de distancia menor a 20) se debe enviar a los motores la orden de detenerse (enviando 0x0f a cada uno). En caso de que no se cumpla lo anterior, solamente cuando la energía obtenida del panel es mayor de 100 el robot debe ponerse en movimiento, enviando a cada motor los 7 bits más significativos de la lectura de la energía. Se pide: a) Diseñar el circuito que realiza esta tarea, justificando la cantidad de entradas y salidas. Se dispone de 1 ROM de 8Kx24, 2 ROMs de 16Kx4, 1 ROM de 4Kx32 y compuertas básicas. b) Implementar en un lenguaje de alto nivel el programa que realiza la carga de la ROM compuesta, de forma que se ejecute el comportamiento explicado. Solución Parte a) Departamento de Arquitectura Página 5 de 7

Parte b) b)asumimos la siguiente asignación de las entradas: botón: i0 distancia: i1..i6 energía panel:i7..i14 int ROM[32768]; void cargo_rom() { int i; for (i=0; i<32768; i++) { if ((i%2 (i>>1)%64 ((i>>7)%256)<101) > 0){ ROM[i] = 0x0f*128 + 0x0f; else{ ROM[i] = i>>1&0xff80 + (i>>8)%128; Problema 3 Se desea implementar el sistema de control de una máquina tragamonedas. Se considera una tragamoneda "clásica", con tres ruedas iguales, con figuras que comienzan a girar al accionar una palanca y se van deteniendo de a una, en secuencia, de derecha a izquierda. Se acierta el juego cuando las tres ruedas se detienen en la misma figura, en cuyo caso la maquina paga el premio. La máquina dispone de los siguientes elementos: - un detector de monedas que genera un pedido de interrupción cada vez que ingresa una moneda a la maquina. La rutina que se invoca para atender la interrupción se llama moneda(). - una puerta de expulsión de monedas, que devuelve una moneda al escribir en el byte de E/S en la dirección EXPULSAR. - un sensor de la palanca de disparo de la maquina. El sensor es accesible a través del bit menos significativo del byte de E/S de solo lectura en la dirección PALANCA (el bit en 1 significa que se accionó la palanca, y al leerlo se vuelve a 0). - tres ruedas giratorias con figuras, que comienzan a girar todas a la vez al escribir en el byte de E/S, de solo escritura en la dirección RUEDAS. Las ruedas se detienen, en forma independiente, escribiendo un "1" en el bit correspondiente de los tres bits menos significativos del byte de E/S, de solo escritura, en la dirección FRENOS (el menos significativo corresponde a la rueda de más a la derecha). - un sensor que genera una interrupción cada vez que las ruedas cambian de figura (se supone las ruedas sincronizadas, es decir cambian de figura al mismo tiempo). La rutina invocada al atender la interrupción es figuras(). Departamento de Arquitectura Página 6 de 7

Se pretende que la maquina acepte una sola moneda por juego (si se ingresan más deberán ser devueltas). El juego comienza al accionar la palanca (siempre que antes haya sido ingresada una moneda). Al iniciarse el juego las ruedas deben comenzar a girar y luego deben detenerse en secuencia (de derecha a izquierda) luego que haya pasado un cierto número aleatorio de figuras. El número correspondiente a la segunda rueda debe contarse a partir del momento en que se detiene la primera. Igual para la tercera respecto a la segunda. Se dispone de dos rutinas preprogramadas: random() que devuelve un número aleatorio. pagar() que verifica la posición final de las ruedas y abona el premio en caso de acierto. Se pide: Escribir en un lenguaje de alto nivel (preferentemente C) todas las rutinas necesarias para implementar el sistema. Solución Problema 3 #define TRUE 1 #define FALSE 0 int haymoneda; void interrupt moneda() { if (haymoneda) out(expulsar, 0x00); else haymoneda = TRUE; // solo una moneda void interrupt figuras() { cuenta--; void main() { int cuenta; //instalo interrupciones enable(); while(true) { haymoneda = FALSE; while!(haymoneda); while ((in(palanca) && 0x01) == 0); out(ruedas, 0x00); cuenta = random(); while (cuenta > 0); out (FRENOS, 0x01); cuenta = random(); while (cuenta > 0); out (FRENOS, 0x03); cuenta = random(); while (cuenta > 0); out (FRENOS, 0x07); pagar(); // espero moneda // espero accionen la palanca // ruedas girando // freno rueda derecha // freno rueda del medio // freno rueda izquierda // verifico y pago si gana Departamento de Arquitectura Página 7 de 7