Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Proyecto Basico Puerto Paralelo

Descargar como doc, pdf o txt
Descargar como doc, pdf o txt
Está en la página 1de 4

PUERTO PARALELO

¿Qué es el puerto paralelo?. Tal vez esta pregunta no sea muy difícil de responder para cualquiera que
haya usado una computadora alguna vez. Es la ficha o conector que usualmente se sitúa en la parte trasera
del gabinete de la PC, y en donde se conecta la impresora u otros dispositivos, como escáneres y demás.
Sin embargo, y en especial en aplicaciones electrónicas, se le puede extraer mucho provecho a este medio
de comunicación entre le PC y el exterior, aprovechando con esto las grandes prestaciones de la misma.
En primer lugar, conviene aclarar que esta nota está dirigida a todos aquellos cuyos puertos paralelos sean
IBM-compatibles, es decir, que poseen un conector DB-25. Esto es extraño, puesto que este conector es el
de serie que se utiliza para los interfaces serie.
El conector es normalmente hembra (tiene orificios en lugar de patitas) para distinguirlo de los conectores
serie que son habitualmente machos y que puede tener también la computadora. La Amiga I 000, sin
embargo, utiliza un conector DB-25 macho para su interfaz paralelo (por ser algo diferente). A
continuación se muestra una ficha del tipo DB-25, indicándose en ella las diferentes funciones de los
distintos pines. Notar que algunas de las líneas tienen una abreviatura convencional que se indica entre
paréntesis

Las tierras cumplen dos funciones: la primera es que vinculan las tierras de señal de los dos dispositivos
que se interconectan de modo que puedan compartir una tierra común como referencia para la señal. La
otra es que, puesto que, la conexión entre los dos dispositivos se realiza a menudo mediante un cable tipo
cinta, las tierras (llamadas muchas veces retornos de tierra en este contexto) actúan como blindajes de las
líneas mas importantes. Como su nombre lo indica, la salida de datos transfiere información desde la
computadora a un periférico en paralelo. Esto se hace con ocho bits (un byte) por vez utilizando los
terminales 2-9. DO se considera el bit menos significativo (LSB) y D7 el mas significativo (MSB). A este
conjunto de líneas se las denomina "salidas de datos".
A las otras cuatro líneas de salida (STB, AUTOFD, SLCT IN, IF)) se las denomina "salidas de diálogo"
y envían señales específicas al dispositivo, interrogándolo para cumplir su labor. El funcionamiento
detallado de este procedimiento escapa a los alcances de este artículo.
Finalmente a las cinco líneas de entrada (SEL, PE, OCUPADO, ACK, FAULT), se las denomina
"entrada de diálogo" y, junto con las salidas de diálogo, complementan el procedimiento de comunicación
entre la PC y el dispositivo en cuestión. Un detalle importante de las líneas de entrada es que el pin ACK
(patilla 10) trabaja con pulso negativo (es decir está negado).
CONTROL Y MANEJO DEL PUERTO PARALELO
En definitiva y, en base a lo expuesto arriba, disponemos de 12 salidas y 5 entradas, una de las cuales
está negada. Veamos ahora cómo controlarlas y manejarlas. Para tener pleno acceso al puerto paralelo es
necesario, en primera instancia, algún compilador, cualquiera es válido desde ensamblador hasta visual
basic o visual C++ pasando por "C" y basic. Sin embargo, y a pesar de la gran diversidad de lenguajes, la
sintaxis de las respectivas instrucciones para enviar (escribir) y recibir (leer) datos del puerto es similar.

En lo que respecta a escribir la instrucción se compone de dos parámetros que son la dirección y el dato.
La dirección es el lugar en dónde va a ser escrito el dato. Existen tres direcciones posibles en los sistemas
IBM compatible, en dónde ubicar al puerto paralelo estas son 0x378 (888), el 0x278 y el 0x3BC. La más
frecuentemente utilizada es la primera. Una aclaración importante es que las direcciones corresponden a
las alidas de datos, es decir, en la dirección 0x378 (o cualquiera de las otras), se tiene acceso a los ocho
bits denotados desde D0 a D7. Para acceder a los otro cuatro bits de salida se le debe sumar dos unidades
a la dirección original 0x37Apor ejemplo) y se tiene acceso a los cuatro bits más significativos.

La segunda parte de la instrucción, es decir, el dato; corresponde a la combinación de unos y ceros


lógicos que se enviarán al puerto. Conviene aclarar que los unos se presentan como + 5 a 3,8 voltios y los
ceros como una tensión inferior a los 0,8 V. Además es conveniente no extraer de cada línea más de 5mA,
por lo que se hace imprescindible el uso de algún buffer para aislar el puerto.

Habitualmente el dato a escribir es representado en hexadecimal por la comodidad que esto conlleva. Así,
por ejemplo, para poner todos unos en los datos deberíamos escribir un 0xFF. Análogamente para poner
todos los bits en cero el número sería 0x00.

La sintaxis de las instrucciones para la escritura en el puerto en los diversos lenguajes es similar aunque,
obviamente, existen ciertas diferencias. Veamos cómo se procede en cada lenguaje.

Lenguaje “C”
En "C" se utiliza la instrucción outport, o bien outportb, ambas incluidas en la cabecera "dos.h". Un
ejemplo muy simple de cómo escribir un 0xFF en el puerto es el siguiente:

#include <dos.h>
void main(void)
{
outport(0x378,0xFF);
exit(1);
}

En este ejemplo simplemente colocamos las salidas D0 a D7 en uno. Esto lo podemos comprobar si
dimos dichas salidas con un multímetro, observando que el valor de tensión respecto de masa es de 5V
aproximadamente.

Lenguaje “ENSAMBLADOR”
Para realizar esta misma tarea en ensamblador utilizamos la instrucción out. El dato a escribir se
encuentra en el registro AX (AL, AH) y la dirección en el DX (DL, DH).

Mov DX,0378h
Mov AL,0ffh
Out DX, AL

Lenguaje BASIC
En BASIC la instrucción recibe el mismo nombre, es decir, out. la sintaxis es similar que en "C", osea,
dirección y dato en ese orden. En este caso se omiten los paréntesis y el punto y coma final, propios del
lenguaje "C".
Lenguaje VISUAL BASIC
Finalmente, veamos cómo controlar el puerto a través de Visual Basic (cualquier versión de 32 bits).
Para ello, necesitaremos tener en nuestro directorio de sistema ("C\windows\system") una librería
especial llamada INPOUT32.DLL. Si no la tenés pulsa aquí para bajarla. Además de la mencionada
librería se incluye un módulo (denominado "inpout32.bas") con las correspondientes llamadas a la DLL.
Una vez descargada la librería basta agregar el módulo al proyecto para disponer entonces de la
instrucción out, similar a BASIC.

CIRCUITO BASICO DE PRUEBA


En este momento estamos en condiciones de desarrollar un primer circuito básico de prueba. Éste va a
consistir en prender o apagar 8 Leds conectado cada uno a los pines D0 a D7. El diagrama esquemático es
el siguiente:

En donde J1 es la ficha DB-25 del puerto paralelo, R1 a R8 son resistencias de 1/8W de 330 ohms. D1 a
D8 son leds. Finalmente IC1 es un SN74AC541 o similar.
Una vez montado, este circuito será de gran utilidad para probar cualquier programa que utilice el puerto
paralelo. Las distintas aplicaciones de éste son inmensas.
Para leer datos desde el puerto se utiliza otra instrucción que, como la anterior, posee una sintaxis
similar en los diversos leguajes.
Para BASIC y VISUAL BASIC, se escribe como inp. En "C" este comando recibe el nombre de inport o
bien inportb (ambas en la cabecera "dos.h"). Finalmente en ensamblador la intrucción es inp. En todos los
casos el único argumento de la instrucción es la dirección que, en este caso, corresponde con la del puerto
más uno. Recordemos que se disponen 5 líneas de entrada y que una de ellas se encuentra negada. Un
circuito típico para probar la lectura del puerto paralelo es el siguiente:

Nuevamente J1 es la ficha DB-25. R1 A R5 son resistencias de 1/8 W 10 kiloohms. S1 a S5 son


pulsadores o llaves. Nótese que el circuito tiene en cuenta la línea negada, lo que "normaliza" la lectura.
Tomando como referencia a estos circuitos se puede diseñar y construir un sin número de circuitos y
aplicaciones utilizando el puerto paralelo y cualquier lenguaje de programación. Muchos de estos
circuitos los puedes encontrar en la sección miscelánea.
Algunas aplicaciones son: Control de motores paso a paso, sistemas de alarma, generador de señales
digital, fuente digital, efectos de luces, efectos sonoros,... y muchos más.
Como ves la lista es enorme y las posibilidades de este nuevo uso del puerto son infinitas.

También podría gustarte