UNIVERSIDAD DE OVIEDO Departamento de Ingeniería Eléctrica, Electrónica, de Computadores y Sistemas Guía de Prácticas ASIGNATURA: CENTRO: ESTUDIOS: CURSO: CARÁCTER: PROFESORADO: Informática Industrial y Comunicaciones Escuela Politécnica de Ingeniería de Gijón Grado en Ingeniería Electrónica y Automática 3º CUATRIMESTRE: 1 Obligatoria CRÉDITOS ECTS: 6 Ignacio Alvarez García, José Mª Enguita González PRACTICA 06: Manipulación de bits 1. Ejercicio a realizar. Se dispone de un computador conectado mediante E/S digital a un conjunto de pulsadores y señalizadores de la manera siguiente. donde el puerto 0 se ha configurado como salida digital y se han conectado LEDs a los bits de pesos 0 a 7, y el puerto 1 se ha configurado como entrada digital y se han conectado pulsadores a los bits de peso 0 a 7. Se desea un bucle infinito en que el usuario pueda elegir entre las opciones a…h, y a continuación solicitar un nº de bit (0 a 7). En función de la opción elegida (debe aceptarse mayúscula o minúscula), realizar sobre el bit correspondiente del dispositivo de entrada ó salida las siguientes operaciones: a) Escribir en pantalla el estado (ON/OFF) del pulsador correspondiente. b) Encender sólo el LED correspondiente (apagar el resto). c) Apagar sólo el LED correspondiente (encender el resto). d) Encender el LED correspondiente sin afectar al resto. e) Apagar el LED correspondiente sin afectar al resto. f) Cambiar el estado del LED correspondiente sin afectar al resto. g) Encender el LED si todos los pulsadores de peso inferior o igual están activos. h) Encender el LED si alguno de los pulsadores de peso inferior o igual está activos. 2. Para la realización de la práctica, será necesario utilizar la librería SimuladorESDigital, cuyos archivos e instrucciones de uso se encuentran en: http://isa.uniovi.es/~ialvarez/Curso/infindycom/practicas/SimuladorESDigital.rar 3. Ampliaciones propuestas: Añadir opciones i) a l). Para todas ellas, no se solicita nº de bit, sino que se debe chequear periódicamente cada 200 ms (usar función Sleep(int mseg), que necesita <windows.h>) el estado de los pulsadores, y: i) Hacer que los LEDs reflejen el estado de los pulsadores. j) Encender todos los LEDs que se encuentren entre el 1º y el último pulsador activos. k) Hacer parpadear todos los LEDs que se encuentren entre el 1º y el último pulsador activos. l) Hacer desplazarse la luz desde el 1er LED hasta el último que tengan un pulsador activo.