Está en la página 1de 17

Control del Puerto Paralelo :: Puerto Paralelo Introduccin ::

Bienvenidos!!! A mi breve tutorial No poda ser de otra manera, la verdad, ja! Breve En fin, as es como nos iniciaremos, con 6 lecciones describiendo algunas de las caractersticas de este puerto y sus posibles aplicaciones es muy bueno que sepas muy bien de electrnica digital para as saber de que estoy hablando y de poder comprender los diagramas o sino pues adentrmonos a lo que es el p uerto paralelo Quiero aclarar algo, cualquier dao ocasionado a tu ordenador es slo tu responsabilidad, por mi parte los circuitos y programas que he utilizado en este tutorial fueron probados en mi Pentium, y todava vive...!!! Por esta razn, no me vengas con quejas, de acuerdo...? Cualquier mensaje apreciacin o comentario ya sabes, a mi correo...!!! Y si deseas contactar conmigo tambin. Bueno, ya est, ahora s podemos comenzar...

Fredy Mrtir (Alias Elec)

6to Electrnica

2009

Control del Puerto Paralelo :: Puerto Paralelo ndice ::

General
Introduccin Registros del Puerto Paralelo Enviando Seales por el Registro de Datos Recibiendo Seales por el Registro de Estado Comentarios finales Informacin sobre la librera IO Numeracin binaria y Bits Numeracin binaria, BIT, Byte y Nibbles - En detalle...!!!

Apndice

Fredy Mrtir (Alias Elec)

6to Electrnica

2009

Control del Puerto Paralelo :: Puerto Paralelo - Leccin 1 ::


Introduccin... En verdad se mereca toda una seccin aparte a la cual le brindaremos una atencin especial e iremos amplindola cada vez ms, ya que sus prestaciones son muchsimas, y es bueno que lo conozcas, te sorprenders de las cosas que se pueden hacer... Si estas leyendo este tutorial es por que tienes una PC en estos momentos y seguramente una impresora o un Scanner conectados a ella. Bien, la ficha en la cual estn conectados estos dispositivos es conocida como puerto paralelo. Si la desconectas veras que tiene 25 contactos (pines de ahora en ms), su nombre es Conector DB25. Aqu tienes una imagen de los conectores

Cada pin de los conectores tiene un nmero asignado por lo cual es muy importante que al armar tus propios cables los identifiques correctamente o sufrirs unos terribles dolores de cabeza...!!! Este puerto dispone de tres registros de 8 bit cada uno (un byte). Cada uno de estos registros se denomina puertos o PORT, y cada uno de sus bits, representa un pin determinado del puerto. Los pines que van del 18 al 25 (ambos inclusive): Son para masa, y sirven para conectar las descargas de los circuitos. Veamos ahora los tres registros Puerto de datos (Pin 2 al 9): Es el PORT 888 y es de solo escritura, por este registro enviaremos los datos al exterior de la PC, cuidado...!!!, no enves seales elctricas al ordenador por estos pines.

Fredy Mrtir (Alias Elec)

6to Electrnica

2009

Control del Puerto Paralelo


Puerto de estado (Pin 15, 13, 12, 10 y 11): Es el PORT 889 y es de solo lectura, por aqu enviaremos seales elctricas al ordenador, de este registro solo se utilizan los cinco bits de ms peso, que son el bit 7, 6, 5, 4 y 3 teniendo en cuenta que el bit 7 funciona en modo invertido eso lo explicaremos despus. Puerto de control (Pin 1, 14, 16 y 17): Es el correspondiente al PORT 890, y es de lectura/escritura, es decir, podremos enviar o recibir seales elctricas, segn nuestras necesidades. De los 8 bits de este registro solo se utilizan los cuatro de menor peso o sea el 0, 1, 2 y 3, con un pequeo detalle, los bits 0, 1, y 3 estn invertidos. En esta imagen puedes ver los tres registros, sus bits y los pines asignados a cada uno de ellos. La imagen corresponde a un conector DB-25 (Hembra) Es el conector que esta en la compu ten en cuenta eso

Algo ms... La tensin de trabajo del puerto es de 5 voltios, por lo que necesitamos una fuente estabilizada o regulada de tensin, esto es importante tenerlo en cuenta, ya que estaremos enviando seales al puerto. Por otro lado, si bien puedes utilizar la PC para enviar seales al exterior sin necesitad de una fuente externa, es recomendable utilizarla y as no exiges demasiado al puerto y te evitas problemas.

Fredy Mrtir (Alias Elec)

6to Electrnica

2009

Control del Puerto Paralelo


Ahora bien, si activas un bit de salida por el puerto, este permanecer as hasta que lo cambies, es decir que estars enviando 5V de forma continua hasta que lo pongas a 0. Pero bueno eso es programacin, y lo veremos a su debido momento, por lo pronto deberemos armarnos de unos circuitos para verificar el funcionamiento del puerto. Aclarado esto pasemos a su construccin...

:: Puerto Paralelo - Leccin 2 ::


Enviando datos por el puerto paralelo... Para poder enviar datos desde le puerto tendremos dos circuitos muy simples, uno con integrado y el otro no pero prefiero el primero para proteger mi compu pero haremos el segundo el mas simple y econmico

Como hemos podido observar este circuito esta directamente conectado al puerto paralelo y aqu debemos de tener mucho cuidado de no tener un corto en algn circuito exterior porque recordemos
Fredy Mrtir (Alias Elec) 6to Electrnica 2009

Control del Puerto Paralelo


que el puerto paralelo esta conectado a la tarjeta madre as que con cuidado y precaucin jijiji. Ahora el otro circuito que es el que ms prefiero Para comenzar construiremos un circuito que nos permita enviar seales por el puerto paralelo y lo haremos utilizando diodos LEDs como el anterior, como el consumo de los LEDs es superior al que nos enva el puerto utilizaremos un buffer como el 74HC244 o el 74HCT245, prefiero este ltimo ya que la construccin de la placa ser mas sencilla, aqu tienes los datos del integrado

Este integrado tiene la ventaja de ser bidireccional, es decir todos los pines A pueden ser entradas y los B salidas si DIR (pin1 DR) se encuentra a nivel bajo (0), el modo invertido se obtiene con DR a nivel alto. Si el terminal OE (pin 19) se encuentra a nivel alto (1) el integrado pone los pines A y B con alta impedancia, es decir ni entra ni sale seal alguna, en ese caso el estado de DR no tiene importancia. En la siguiente tabla tienes los nombres de los pines y sus funciones correspondientes.

Fredy Mrtir (Alias Elec)

6to Electrnica

2009

Control del Puerto Paralelo

En el siguiente esquema no se representaron todos los pines del puerto, sino los correspondientes al puerto de datos (888) y los de masa, que son los que utilizaremos en esta primera prctica... =0p

Lo que queda ahora es ver como funciona, y lo haremos sencillito, para ello recurrimos a nuestros superiores en programacin ya que de eso yo no se nada... :o) Es broma...!!! Para no meterte en los con las sentencias de programacin las cuales puedes programarlas tu mismo en Basic, en Pascal, en C, en Delphi y todos los dems lenguajes que quieras, yo hice uno en Visual Basic y este es el cdigo fuente...

Fredy Mrtir (Alias Elec)

6to Electrnica

2009

Control del Puerto Paralelo


Pero ante todo debemos de tener una archivo muy importe para el poder enviar y recibir datos en visual Basic y es IO.dll, este archivo ya va incluido en la carpeta donde esta este tutorial, y tienen que copiarlo a la carpeta system que se encuentra en C:\WINDOWS\system y les enseare como usarlo adecuadamente en Visual BasicY bien sigamos con lo nuestro Primero abriremos Visual y crearemos un nuevo proyecto y aadiremos un modulo como se mues tra en la siguiente imagen

Y copiaremos este cdigo en el modulo:


Public Declare Sub PortOut Lib "io.dll" (ByVal Port As Integer, ByVal Value As Byte) Public Declare Function PortIn Lib "io.dll" (ByVal Port As Integer) As Byte

Aunque en la carpeta donde esta el tutorial va incluido un block de texto donde explico como agregar este cdigo en el modulo jijiji

Fredy Mrtir (Alias Elec)

6to Electrnica

2009

Control del Puerto Paralelo


Muy bien ahora pasemos a agregar dos botones un Shape con forma de circulo este va hacer la animacin de encendido y pagado del led , mientras que los dos botones solo se van a encargar de encender y apagar el led en el exterior y tiene que quedar as o mas o menos

Ya que tenemos la interfaz dispondremos a agregar el siguiente cdigo


Private Sub cmdApagar_Click() Shape1.FillColor = vbRed PortOut 888, 0 Direccion del puerto y dato a mandar End Sub Private Sub cmdEncendido_Click() Shape1.FillColor = vbGreen PortOut 888, 1 End Sub

Private Sub Form_Load() PortOut 888, 0 Cuando cargue el formulario el Puerto estara en 0 End Sub

Fredy Mrtir (Alias Elec)

6to Electrnica

2009

Control del Puerto Paralelo


Creo que no es necesario comentarlo, el ejecutable, est aqu, con cdigo fuente, comentarios y el ejecutable... sea en la carpeta donde se encuentra este tutorial jijiji

Deseas encender algn aparato de casa...? No hay problema, slo le agregas una etapa de potencia a cada salida, algo como esto...

Antes de que me olvide... Me encontr con un pequeo programa que te chequea el estado del puerto, supongo que su autor es Fred Bulback, al menos eso dice en el About jijiji, en concreto el programa es Parallel Port Monitor Y con esto es suficiente, ya no necesitaras armar los circuitos para verificar tus programas, aunque si deseas utilizar el puerto no hay de otra tendrs que hacerlos... =op

Fredy Mrtir (Alias Elec)

6to Electrnica

2009

Control del Puerto Paralelo :: Puerto Paralelo - Leccin 3 ::


Recibiendo datos por el puerto paralelo... Ahora si ya estamos en condiciones de continuar... Para recibir datos en nuestro ordenador por el puerto paralelo utilizaremos su registro de estado, recuerda que solo dispones de 5 bits (7, 6, 5, 4 y 3) y que el bit 7 funciona en modo invertido. El circuito que construiremos ser uno de los mas sencillos, solo habr que tener en cuenta que un bit puede tener dos estados posibles, ya sea 0 (0 voltios) o 1 (5 voltios) no podemos dejarlo librado al azar, razn por la cual, si no se enva seal alguna, ste deber estar unido a masa, de acuerdo...? El esquema elctrico es el siguiente;

Observa que para el bit 7 la conexin es invertida si lo pones a 0 el programa lo leer como un 1, si no presionas el pulsador se leer como 0 lgico. Para lograr que nuestra computadora reconozca estos datos que le estamos enviando necesitamos un programa que logre esto y lo aremos en Visual Basic con la librera IO.dll pero aqu utilizaremos el comando PortIn 889 y bien sigamos con lo mero bueno la programacin =oD Primero ante todo debemos incluir un modulo y copiar el cdigo para el control de la librera IO que ya lo mencionamos

Fredy Mrtir (Alias Elec)

6to Electrnica

2009

Control del Puerto Paralelo


En el formulario agregaremos un botn y un label o etiqueta y deber quedarnos algo as

Y dispondremos a copiar el siguiente cdigo


Private Sub Command1_Click() Dim InValue As Byte Declaramos una variable tipo Byte InValue = PortIn(889) Aguardamos el dato ledo en la variable Label1.Caption = InValue Y por ultimo la mostramos en el label End Sub

Y como siempre el programa va incluido en la carpeta donde esta este tutorial donde podrn ver el cdigo fuente y el ejecutable

Fredy Mrtir (Alias Elec)

6to Electrnica

2009

Control del Puerto Paralelo :: Puerto Paralelo - Leccin 5 ::


Creo que har la expansin a 32 salidas...!!! Pero por ahora me tomar un descanso y pasaremos a otra cosa, he visto por ah gran difusin del tema as que con esto mas de ayuda ya tienes suficiente. Recomendacin...!!! Si por algn motivo quieres trabajar con el puerto sin arriesgarte a daarlo, en la seccin de Descarga tienes un programa para monitorear el estado del Puerto Paralelo. Muy bien, hasta aqu termina este tutorial sobre el puerto paralelo asi que hasta la prxima =oD Fredy Mrtir...

Fredy Mrtir (Alias Elec)

6to Electrnica

2009

Control del Puerto Paralelo :: Puerto Paralelo - Leccin 6 ::


Un poco de informacin sobre la librera IO

Descripcion:
IO.DLL proporciona un conjunto de comandos tiles para leer y escribir en los puertos de E/S. Esos comandos son coherentes entre 95/98 y NT/2000/XP. Es ms, no es necesario que el programador aprenda lenguaje ensamblador o se pelee con los drivers modo kernel. Simplemente lanzar la DLL y llamar a sus funciones. Es as de fcil. Windows NT/2000/XP est acoplado con un pequeo driver modo kernel que libera los puertos para la apliacin a medida que los va necesitando. Este driver est embebido en la DLL y se instala con Windows NT/2000/XP si est destinado a ser el sistema operativo que hay por debajo. Cdigo para copiar segn el lenguaje de programacin
Prototipos en C
void PortOut(shor t int Port, char Data); void PortWordOut(short int Port, short int Data); void PortDWordOut(short int Port, int Data); char PortIn(short int Port); short int PortWor dIn(short int Port); int PortDWordIn(short int Port); void SetPortBit(shor t int Port, char Bit); void ClrPortBit(shor t int Por t, char Bit); void NotPortBit(short int Port, char Bit); short int GetPortBit(short int Port, char Bit); short int RightPor tShift(short int Port, shor t int Val); short int LeftPortShift(short int Port, short int Val); short int IsDriverInstalled();

Prototipos en Delphi
procedure PortOut(Por t : Word; Data : Byte); procedure PortWordOut(Port : Wor d; Data : Word); procedure PortDWordOut(Port : Wor d; Data : DWor d); function Por tIn(Port : Word) : Byte; function Por tWordIn(Port : Word) : Word; function Por tDWordIn(Port : Word) : DWor d; procedure SetPortBit(Por t : Word; Bit : Byte); procedure Clr PortBit(Port : Word; Bit : Byte); procedure NotPortBit(Port : Word; Bit : Byte); function GetPortBit(Port : Word; Bit : Byte) : Wor dBool; function RightPortShift(Por t : Word; Val : Wor dBool) : Wor dBool; function LeftPortShift(Port : Word; Val : WordBool) : WordBool; function IsDriver Installed : Boolean;

Fredy Mrtir (Alias Elec)

6to Electrnica

2009

Control del Puerto Paralelo


Prototipos en Visual Basic
Private Declare Sub PortOut Lib "IO.DLL" (ByVal Port As Integer, ByVal Data As Byte) Private Declare Sub Por tWordOut Lib "IO.DLL" (ByVal Port As Integer, ByVal Data As Integer) Private Declare Sub Por tDWordOut Lib "IO.DLL" (ByVal Port As Integer, ByVal Data As Long) Private Declare Function PortIn Lib "IO.DLL" (ByVal Por t As Integer) As Byte Private Declare Function PortWordIn Lib "IO.DLL" (ByVal Port As Integer) As Integer Private Declare Function PortDWordIn Lib "IO.DLL" (ByVal Port As Integer) As Long Private Declare Sub SetPortBit Lib "IO.DLL" (ByVal Port As Integer, ByVal Bit As Byte) Private Declare Sub ClrPortBit Lib "IO.DLL" (ByVal Por t As Integer, ByVal Bit As Byte) Private Declare Sub NotPor tBit Lib "IO.DLL" (ByVal Port As Integer, ByVal Bit As Byte) Private Declare Function GetPortBit Lib "IO.DLL" (ByVal Por t As Integer, ByVal Bit As Byte) As Boolean Private Declare Function RightPortShift Lib "IO.DLL" (ByVal Por t As Integer, ByVal Val As Boolean) As Boolean Private Declare Function LeftPortShift Lib "IO.DLL" (ByVal Por t As Integer, ByVal Val As Boolean) As Boolean Private Declare Function IsDriver Installed Lib "IO.DLL" As Boolean

Descripcin de las Funcione s


Por favor, vaya al prototipo adecuado para el lenguaje que est utilizando. PortOut Escribe un byte en el puerto especificado. PortWordOut Escribe una palabra (16-bits) en el puerto especificado. PortDWordOut Escribe una palabra doble (32-bits) en el puerto especificado. PortIn Lee un byte del puerto especificado. PortWordIn Lee una palabra (16-bits) del puerto especificado. PortDWordIn Lee una palabra doble (32-bits) del puerto especificado. SetPortBit Pone el bit del puerto especificado. ClrPortBit Limpia el bit del puerto especificado. NotPortBit Niega (invierte) el bit del puerto especificado. GetPortBit Devuelve el estado del bit especificado. RightPortShift Desplaza hac ia la derecha el puerto especificado. Se devuelve el LSB (bit menos signif icativo), y el valor pasado se convierte en el MSB (bit ms significativo). LeftPortShift Desplaza hacia la izquierda el puerto especificado. Se devuelve el MSB (bit ms significativo), y el valor pasado se convierte en el LSB (bit menos significativo). IsDrive rInstalle d Devuelve un valor distinto de cero si io.dll est instalada y funcionando. El objetivo principal de esta funcin es asegurar que el driver modo kernel NT/200/XP ha sido instalado y est accesible.

Notas
Cuando instale una nueva versin de io.dll, podra ser necesario apagar el driver modo kernel. Para hacer esto, abra una ventana de comandos e introduzca el comando "net stop io.sys".

Fredy Mrtir (Alias Elec)

6to Electrnica

2009

Control del Puerto Paralelo :: Puerto Paralelo - Bit, Byte y esas yerbas::
Pues bien, supongo que sabrs que el ordenador manda los datos en forma de bytes. Un byte son 8 bits y un bit es la mnima cantidad de informacin que un ordenador puede tratar. Es decir, un bit puede tomar slo dos valores posibles, que son 0 1. Hablando en lenguaje elctrico el 0 significa 0 voltios y el uno significa 5 voltios (por aquello de la electrnica digital). Cualquier valor que mandemos al puerto, el ordenador lo transformar en ceros y unos. Esto se conoce como sistema binario de numeracin. Como tenemos datos de 8 bits (1 byte), aplicando algo de las matemticas que aprendimos en EGB, vemos que con slo 2 dgitos (el cero y el uno) podremos representar 2 8 valores. Haciendo nmeros tendremos 256 valores, que se corresponden a la siguiente tabla:

Fredy Mrtir (Alias Elec)

6to Electrnica

2009

Control del Puerto Paralelo


:: Puerto Paralelo - Bit, Byte y Esas Yerbas para Duros...!!! :: BIT. El ordenador se compone de dispositivos electrnicos digitales, por lo tanto stos solo pueden adoptar nicamente dos estados, que representamos matemticamente por 0 y 1. Cualquiera de estas unidades de informacin se denomina BIT, contraccin de binary digit en ingls. BYTE. Cada grupo de 8 bits se conoce como byte u octeto. Es la unidad de almacenamiento en memoria, la cual est constituida por un elevado nmero de posiciones que almacenan bytes. La cantidad de memoria de que dispone un sistema se mide en Kilobytes (1 Kb = 1024 bytes), en Megabytes (1 Mb = 1024 Kb), Gigabytes (1 Gb = 1024 Mb), Terabytes (1 Tb = 1024 Gb) o Petabytes (1 Pb = 1024 Tb). Los bits en un byte se numeran de derecha a izquierda y de 0 a 7, correspondiendo con los exponentes de las potencias de 2 que reflejan el valor de cada posicin. Un byte nos permite, por tanto, representar 256 estados (de 0 a 255) segn la combinacin de bits que tomemos. NIBBLE. Cada grupo de cuatro bits de un byte constituye un nibble, de forma que los dos nibbles de un byte se llaman nibble superior (el compuesto por los bits 4 a 7) e inferior (el compuesto por los bits 0 a 3).

Veamos... Un bit es la posicin que ocupa un nmero el cual ser "0" o "1" ya que son los nicos valores que admite.

Fredy Mrtir (Alias Elec)

6to Electrnica

2009

También podría gustarte