You are on page 1of 9

Controlar el Puerto Paralelo con Visual Basic.

NET

Un puerto paralelo es una interfaz entre un ordenador y un periférico cuya principal característica es que los bits de datos viajan juntos enviando un byte completo o más a la vez. Es decir, se implementa un cable o una vía física para cada bit de datos formando un bus. El cable paralelo es el conector físico entre el puerto paralelo y el periférico. En un puerto paralelo habrá una serie de bits de control en vías aparte que irá en ambos sentidos por caminos distintos. En contraposición al puerto paralelo está el Puerto serie, que envía los datos bit a bit por el mismo hilo. ¿Cómo funciona el Puerto Paralelo? La mayoría de los puertos paralelos de la parte posterior de las computadoras compatibles 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. Sin embargo, utiliza un conector DB-25 macho para su interfaz paralelo (por ser algo diferente). La función de cada terminal del conector DB-25 se muestra en la siguiente imagen. Las señales que ocupan esas terminales se pueden dividir en cuatro grupos básicos: tierras, salidas de datos, entradas de dialogo y salidas de dialogo. En la imagen las tierras se indican con círculos, las entradas de dialogo se indican con flechas que apuntan al conector y las salidas (tanto de datos como de dialogo) tienen flechas que apuntan hacia afuera del conector. (Note que algunas de las líneas tienen una abreviatura convencional que se indica entre paréntesis.)

Librería Inpout32.dll (Visual Basic.NET) Para trabajar con puertos bajo VB.NET es necesario el uso de una librería que contenga funciones de Acceso a las direcciones de los puertos. Esta librería es diferente dependiendo del tipo de puerto a trabajar. La librería INPOUT32.DLL contiene las instrucciones necesarias para el manejo de los Puertos Paralelos. Para accesar al puerto paralelo en Windows se requiere hacer uso de unas funciones que vienen en la librería inpout32.dll. Poner la librería correspondiente en la carpeta c:\windows\system32 Agregar el módulo inpout 32.bas al programa realizado en Visual Basic y listo ya puedes hacer uso de las funciones para accesar al puerto paralelo:

para esto se deben localizar los pines en el conector que están enumerados. . una vez realizado esto procedemos a soldar los hilos del cable en el conector macho. una vez localizados los pines procedemos a soldar . una vez hecho esto tomamos los leds y ubicamos el polo negativo que es la patita más corta y la insertamos en la columna negativa y el positivo la insertamos en la columna “A” y que ambas filas coincidan y así con los leds restantes sucesivamente luego pasamos a conectar el cable UTP ala protoboard para esto tenemos que llevar el mismo orden que en el conector paralelo respectivamente . localizamos pines del 2 al 9 que son los utilizados para la transferencia de datos. de la misma forma pelamos 1 cm de cada uno de los hilos de cada extremo. Una vez realizado todo este procedimiento pasaremos a la protoboard. Una vez hecho esto localizamos en el conector el pin 25 que es el de tierra (del pin 18 al 25 son tierra). una vez hecho esto tomamos el cable de un hilo y pelamos en cada extremo 1 cm.localizamos el primer hilo a introducir y lo insertamos en la columna “B” de la forma que la fila del led coincida con este y así sucesivamente con los demás con su respectivo orden .Inp – Para leer el puerto (Entrada) Out – para escribir al puerto (Salida) Desarrollo de la práctica Material: Cautín Estaño Pasta para soldar Protoboard 2 Mts cable UTP 2 Mts cable (1 hilo) 5 Leds 1 Conector Paralelo Macho Procedimiento: Primero pelamos 10 cm del cable UTP por ambos extremos y separamos los hilos. en la protoboard tenemos que localizar la serie negativa que esta de azul una vez encontrada hay que introducir el cable de tierra en el primer orificio de la seria del polo negativo.esto se hace en el orden que ustedes prefieran siempre y cuando recuerden la secuencia.

EventArgs) Handles Probar.Click .Runtime. Codigo: Imports System Imports System.Object.InteropServices Public Class Puerto _ Public Shared Function output(ByVal adress As Integer. ByVal e As System.dll de la cual hablamos anteriormente reiterando que es necesario Poner la librería correspondiente en la carpeta c:\windows\system32 una vez hecho eso tenemos que crear una clase en nuestro proyecto donde se importa la librería .Net es necesario contar con la librería Inpout32. en este botón probaremos si todo sale correctamente en el botón ira el siguiente código: Codigo: Private Sub Probar_Click(ByVal sender As System.Programa Para poder manejar puertos en Visual Basic. ByVal value As Integer) As Boolean End Function End Class Una vez hecho esto pasamos a nuestro formulario e insertamos un botón.

255) End Sub Para poder encender el led numero 1 .output(888.2 y 3 de nuestra Protoboard necesitamos el siguiente codigo que ira dentro de un boton como se muestra respectivamente : Codigo: Private Sub Led1_Click(ByVal sender As System.NET para mandar señal al puerto y 1.Object.NET) 2^1=2 2^2=4 2^3=8 . ByVal e As System.output(888.EventArgs) Handles Led22.EventArgs) Handles Led1.output(888. 1) End Sub Private Sub Led2_Click(ByVal sender As System.Click Puerto. 4) End Sub 888 porque es la dirección hexadecimal que utiliza VB. ByVal e As System.Object. ByVal e As System.Puerto.EventArgs) Handles Led3. 2) End Sub Private Sub Led3_Click(ByVal sender As System.Click Puerto.2 y 4 por que es la dirección donde esta ubicada el primer led para poder saber la dirección del led se debe hacer lo siguiente: Los pines se enumeraran del 0 en adelante en este caso del 0 al 7 tomando referencia los pines del conector del 2 al 9 se realiza la siguiente operación: Led Pin 13 24 35 46 57 68 79 Tomando en cuenta la tablita anterior se realiza lo siguiente: 2^0 (led)=1 (direccion en VB.Click Puerto.Object.output(888.

Load Puerto.EventArgs) Handles Button1.output(888.Object.Object. ByVal e As System.Object.output(888.Windows.output(888.FormClosed Puerto. 0) End Sub Private Sub Button1_Click(ByVal sender As System.2^4=16 2^5=32 2^6=64 2^7=128 Esa es toda la operación y así se realiza sucesivamente.EventArgs) Handles MyBase. ByVal e As System.output(888.Object. para esto se necesita inserta 8 botones y 1 timer el formulario y la clase anteriormente mencionada. 0) End Sub Private Sub Form1_FormClosed(ByVal sender As System. Este es el ejemplo. ByVal e As System. Codigo: Public Class Form1 Dim i As Integer = 0 Private Sub Form1_Load(ByVal sender As System. ByVal e As System.Click Puerto. 2) End Sub .EventArgs) Handles Button2.Click Puerto. 1) End Sub Private Sub Button2_Click(ByVal sender As System.Forms.FormClosedEventArgs) Handles MyBase.

ByVal e As System.Private Sub Button3_Click(ByVal sender As System.EventArgs) Handles Button4. ByVal e As System.Object. 0) Timer1.output(888.Object.output(888. ByVal e As System. ByVal e As System.Object.Click Puerto. ByVal e As System.Object.EventArgs) Handles Button3. 255) Timer1. ByVal e As System. 8) End Sub Private Sub Button5_Click(ByVal sender As System.EventArgs) Handles Timer1.Object.output(888.Object.EventArgs) Handles Button7.Click Puerto.output(888.EventArgs) Handles Button6. 4) End Sub Private Sub Button4_Click(ByVal sender As System.Click Puerto.EventArgs) Handles Button5.Tick .Stop() End Sub Private Sub Timer1_Tick(ByVal sender As System.output(888. 16) End Sub Private Sub Button6_Click(ByVal sender As System.Click Puerto.Click Puerto.Stop() End Sub Private Sub Button7_Click(ByVal sender As System.

output(888.output(888. 16) End If .output(888.output(888. 2) End If If i = 3 Then Puerto.output(888. 255) End If If i = 7 Then Puerto.output(888.output(888. 16) End If If i = 6 Then Puerto.Text = CStr(i) i = i + 1 If i = 1 Then Puerto. 8) End If If i = 5 Then Puerto.TextBox1. 1) End If If i = 2 Then Puerto. 4) End If If i = 4 Then Puerto.

Object. ByVal e As System. 1) End If If i = 12 Then Puerto.Click Timer1.EventArgs) Handles Button8.If i = 8 Then Puerto.output(888. 255) End If If i = 13 Then i = 0 End If End Sub Private Sub Button8_Click(ByVal sender As System.output(888.Enabled = True .output(888. 4) End If If i = 10 Then Puerto. 2) End If If i = 11 Then Puerto.output(888. 8) End If If i = 9 Then Puerto.output(888.

con otro botón enciende todos los leds.End Sub End Class Este programa lo que realiza es encender led por led según el botón que se presione correspondientemente a cada led de 1 al 5. Con esto damos por concluido este tutorial que espero le sirva y sea de su agrado cualquier duda o sugerencia hacerla con toda confianza.pdf[/pdf] .com/html/documentos/proteus/ComenzandoLPT. otro desactiva el led cuando alguno esta encendido y por último se hiso una pequeña muestra de cómo se podría implementar con un timer para que cada led encienda cada decima de segundo uno tras otro. [pdf]http://henrycondori.com/publicaciones/puertoparalelo.pdf[/pdf] Otro manual en PDF [pdf]http://proyectosfie.