Prácticas de Periféricos. 2008 Práctica 5 Puerto Paralelo 1 Objetivo Utilizar el puerto paralelo para configurar el ratón USB objeto de la práctica 4. Para ello hay que controlar el puerto paralelo bajo Windows 2000. La aplicación de configuración debe permitir modificar la velocidad del ratón, y se deja abierta la posibilidad de que los alumnos añadan código para controlar otras características. 2 Sobre el puerto paralelo El puerto paralelo está formado por 17 líneas de señales y 8 líneas de tierra. Las líneas de señales están formadas por tres grupos: 4 líneas de control: 1,14, 16,17 5 líneas de estado: 10 a 13, 15 8 líneas de datos: 2(LSB) a 9 8 líneas de tierra: 18 a 25 Originalmente las líneas de control se usan para intercambio de mensajes entre PC e impresora (desde el punto de vista del PC son salidas), las de estado para indicar el estado de la impresora al PC (entradas) y las de datos para transportar los datos desde el PC hacia la impresora (salidas). Cada una de estas líneas hace referencia a un BIT de uno de los tres registros del puerto paralelo: registro de datos, registro de estado y registro de control. Dentro del espacio de direccionamiento de E/S la dirección base del puerto paralelo estándar, tal y como lo definió originalmente IBM, era la 3BCh, y después también se han definido 378h o 278h. La dirección base es la que apunta al registro de datos, la siguiente, es decir base+1 apunta al registro de estado, y base+2 al de control. 3 Trabajo de laboratorio El puerto paralelo de la tarjeta EduMIC se utilizará para la comunicación del PC con el microcontrolador. Las líneas 2 y 3 del DB25 permanecen conectadas a RB7 y RB6 respectivamente. Por estas dos líneas es por donde anfitrión y periférico intercambiarán los datos. Hay que tener la precaución de mantener las líneas 5 (Dato3) y 6 (Dato4) a nivel bajo en todo momento para que durante la ejecución del programa no llegue la tensión de programación al PIC. Práctica 5: Puerto paralelo 1 . Prácticas de Periféricos. 2008 3.1 MPLAB Se modificará la función Emulate_Mouse() para que el octógono que describe el emulador de ratón vaya variando su velocidad según la información recibida desde el PC. También se modificará la función BlinkPortStatus() para que los leds 1 y 2 de la placa muestren el código de la orden que se está ejecutando. 3.2 Visual C# Se realizará una aplicación de configuración, desde donde se generarán 4 órdenes diferentes (basadas en las 4 combinaciones binarias de los pines RB6 y RB7), para realizar las funciones de aumentar velocidad, disminuir velocidad, mantener velocidad, y poner velocidad por defecto. Para ello se realizara un dialogo que contenga 4 botones encargados de realizar dichas funciones mediante el envío del dato adecuado por el puerto paralelo del PC. Esta aplicación utilizará llamadas a la librería inpout32.dll para las operaciones de escritura y lectura del puerto paralelo. Así pues, hay que asegurarse que dicha librería se encuentre en el mismo directorio donde se halle el ejecutable final. Hay que comprobar la dirección base del puerto paralelo existente en el PC. Para ello se puede consultar el Administrador de dispositivos de Windows (dicha dirección debería ser 378h). 4 Cuestiones 1. Indica las modificaciones que has realizado en el programa user_mouse.c 2. Indica los cambios realizados en el programa de configuración. 3. Añade por lo menos una funcionalidad más al programa de configuración para controlar otras características del ratón. Las respuestas a estas cuestiones se enviarán por correo electrónico al finalizar la clase. Práctica 5: Puerto paralelo 2 .