PROGRAMACION DEL PUERTO PARALELO DEL PC
Internamente tiene 3 registros de 8 bits (direccionados por 3 direcciones de periferico, la LPT, la LPT+1 y la LPT+2, o sea ke son 378, 379 y 37A respectivamente para el LPT1. Esa direccion (378) le es asignada durante el arranque de la bios, que testea todos los puertos que el ordenador posee y los guarda en una direccion de memoria (0040:0008)
Las direcciones de hardware del puerto paralelo son las siguientes:
Puerto LPT1 | 0x378 |
Puerto LPT2 | 0x278 |
La tabla anterior indica cuales son las direcciones de periferico de los puertos paralelos. Normalmente un PC solo tiene un puerto paralelo, el LPT1, que es un puerto hembra de 25 pins (DB25) conectado a 12 latches de salida, 5 pins de entrada y 8 de GND.
Escribir al puerto paralelo
El 0x378 es una direccion de salida. los pins 2-9 (2 bit menos significativo (bms) y 9 Bit Mas Significativo (BMS)) son los encargados de sacar la informacion en binario.
Numero del Pin DB |
Funcion |
2 | Data 0 |
3 | Data 1 |
4 | Data 2 |
5 | Data 3 |
6 | Data 4 |
7 | Data 5 |
8 | Data 6 |
9 | Data 7 |
Si ponemos la siguiente sentencia un programa de C:
outportb (0x378, 0x0F);
estaremos enviando un 00001111 al puerto paralelo. Lo kual significa que en los bits 2-5 habra 5 V y en 6-9 habra 0V.
ATENCION! Nunca intentes alimentar un periferico que hayas hecho tu usando esos voltajes! podrias daņar tu ordenador! Para conectar circuitos de potencia debes seguir los ejemplos del apartado de Hardware
Leer del puerto paralelo
La direccion 0x379 es una direccion de entrada. Realmente es usada por perifericos como una impresora para mostrar algun tipo de mensaje, ya sea de error o de preparado. La indicacion se hace por voltajes (+5v o 0v), y dependiendo del pin tendra diferente significado. Por defecto, si leemos de un puerto paralelo obtendremos 0x7F (BMS 01111111 bms). El ultimo 0 es muy importante, pq nos indica que no funciona como el resto de pins. Los otros pins cambian cuando se conectan a masa, en cambio el BMS cambia cuando lo conectamos a 1. o sea ke si no hay ningun pin conectado, interpreta ke hay 0 en el Bit Mas Significativo (valor de 128) y ke hay un 1 (conectados a +5v) en los consiguientes bits (valor de 64, 32, 16, 8, 4, 2 y 1). Debemos pensar nuestros programas para ke se activen entonces a nivel bajo, menos en el caso de que leamos del BMS, ke tendra ke aktivarse a nivel alto.
ATENCION! No debemos poner mas de +5v a las entradas para no daņar el puerto!!
Posibles usos de las lecturas: Conexion de sensores de diferentes tipos (movimiento, calor, luz)... Leer de un puerto abre muchas posibilidades de interaccion con el medio (el ordenador autonomamente es capaz de escoger que debe hacer en unas determinadas circunstancias, tales como escoger el cerrar las persianas de una casa porque esta anocheciendo o encender el aire acondicionado porque hace mas de una determinada temperatura). O parar a un robot autonomo porque ha detectado un obstaculo!!!!!!!
Ahora ya sabes leer y escribir. Pasate por el apartado de Hardware y veras ejemplos de la teoria expuesta aki.