PDA

Ver la Versión Completa : Puerto paralelo en C


Chase
04-07-2005, 12:29:37
Buenas, tengo un problema, resulta que quiere resolver el siguiente problema:
En primer lugar, crear una ventana dividida en 2 en lenguaje C, y en que en la ventana de arriba muestre la hora del sistema con la clase bignum (cual es esta clase?) gracias de antemano, os pongo el enunciado de la practica:
--------------------------
Realizar un programa que nos permita trabajar con los puertos paralelos del PC.



El programa principal, haciendo uso de la clase Ventana, dividirá la pantalla en 2 ventanas. En la primera visualizará constantemente la hora del sistema, haciendo uso de la clase BigNum y en la segunda realizará todas las acciones que se describen a continuación.



Primero, se deberá obtener del area de datos de la BIOS el número de puertos paralelos que hay en el PC, así como si estan o no disponibles. Posteriormente, mostrará un menú para seleccionar el puerto paralelo con el que vamos a trabajar indicando si cada puerto esta o no disponible.



Una vez seleccionado el puerto, realizaremos otro menú con las siguientes opciones:



Opción 1.- Juego de luces.

Opción 2.- Salida de datos.

Opción 3.- Entrada de datos.

Opción 0.- Salir.



El programa solo terminará cuando se seleccione la opción de Salir. Para cualquier otro dato no válido se visualizara un mensaje informando de que no es correcto.



La opción 1 realizará un efecto luminoso en los leds conectados al registro de datos del puerto siguiendo la siguiente secuencia

a) activara uno a uno los bits de dicho registro desde el mas significativo hasta el menos significativo,

b) activara todos los bits a uno y a cero 3 veces

c) activara uno a uno los bits de dicho registro desde el menos significativo hasta el mas significativo.



La opción 2, pedirá por teclado un número y lo mandara al puerto paralelo seleccionado, por el registro de datos de dicho puerto. Si el número es mayor que 255 o menor que 0 se mostrara por pantalla un mensaje de error informativo y se encenderán y apagaran todos los leds del puerto 3 veces. El puerto se configurará en modo salida.



La opción 3, configurara el puerto paralelo seleccionado en modo entrada y realizara la recepción de datos por interrupción, haciendo uso del IRQ7 y revectorizandola de forma que la nueva ISR realice un efecto acústico y muestre por pantalla el byte leído del puerto.



Para ello, habrá que poner a 1 el bit C4 del registro de control del puerto paralelo que activa las interrupciones. Además, deberá configurar el controlador de interrupciones para gestione la IRQ7. Dicha configuración se establece en el registro de mascara de interrupción, IMR, del controlador de interrupciones poniendo a 0 el bit correspondiente a la IRQ7 en el PIC Maestro.
----------------------