Trabajando con el puerto paralelo con QBasic.
El
puerto paralelo de una computadora es ideal para ser usado como
herramienta de control de sistemas industriales tales como
motores y relés o control de prcesos. El mismo posee
lineas de salida de datos de 8 bits (terminales 2 a 9) y algunas
señales de control, ya sea de salida y otras de entrada
que también pueden ser usadas, como se muestra en forma
general en el siguiente dibujo.

Los ordenadores generalmente poseen solo uno de estos puertos (LPT1) pero se puede agregar una unidad con un segundo puerto paralelo (LPT2).
El puerto paralelo de un
ordenador tiene un conector de salida del tipo D25 hembra cuyo
diagrama y señales utilizadas podemos ver en la siguiente
dibujo, (conector D25)

El puerto paralelo está formado de tres secciones diferentes, estos son,
Líneas de datos
Líneas de control
Líneas de estado
Hay 8 líneas de dato y se usan para dar información de salida del puerto, las líneas de control son cuatro y son la que entregan información a una impresora, las líneas de estado son 5 y se usan para suministrar información al ordenador.(direcciones)

Se necesita conocer la dirección del puerto que se quiere usar, el comando de acceso al puerto y el número que se quiere enviar. El puerto trabaja con números, que pueden ser expresados en hexadecimal, binario o decimal, pero en este documento todos los valores serán expresados en decimal, el puerto físicamente envía señales en binario, por ejemplo se las líneas de dato están a 11111111, lo que se expresa es el número 255 y 00000000 es 0, notar que en binario hay 8 dígitos y que el puerto tiene 8 salidas.
Usando QBasic para el puerto de datos, escribimos
OUT 888,1
Que produce la siguiente salida,
que el lector podrá medir con un voltímetro, como
se muestra a continuación, (conexiones de salida)


(senal
rectangular)

Sistema de
entrada.
Con el siguiente experimento se determina la respuesta del sistema a las distintas señales de entrada al puerto LPT1 usado para conectar la impresora, estas señales se aplican a las entradas 15, 13, 12 y 10 del Status Lines, la entrada 11 se invierte dentro del ordenador y no sera utilizado en el experimento, las mismas se realizan con interruptores sw que comunican a estas entradas al común 25 por medio de una resistencia de 350 ohm.
Defino como estado 0 del interruptor, cuando este no se opera, esto hace que la tensión en la entrada correspondiente esta a 5 voltios (aproximadamente) y como estado 1 del interruptor, cuando se cierra al mismo siendo la tensión de entrada de 0 voltios.

La cantidad de variaciones de los interruptores de entrada al ordenador son 16 (2^4) y
se escribieron en la siguiente tabla, en la cual se anotaron la
respuestas n vista en
el monitor, el estado de los interruptores sw, su equivalente en
binario y el valor en hexadecimal. Esto puede confundir un poco
al lector, una cosa es el estado del interruptor que yo defino,
como se indico arriba, y lo que se obtiene a la entrada de 15,
13, 12 y 10 que llevado a binario es el verdadero valor de
entrada al ordenador, es decir 5 voltios es un 1 binario y 0
voltios es un 0 binario. Los valores de s0, s1 y s2 son creados
internamente por el ordenador, por ejemplo el valor 120,
es 78 en hexadecimal y 1111000 en binario, siendo un poco
redundante es 5voltios, 5 voltios, 5 voltios 5 voltios, 0
voltios, 0 voltios y 0 voltios.
El programa que me permite leer los valores de n en funcion del
estado de los interruptores es el siguiente,
programa ent1.bas
Realización de un contador.

Eduardo Ghershman, 14.10.2011