Controlar El Puerto Paralelo Con Visual Basic

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 9

Controlar el Puerto Paralelo con Visual Basic.

NET

Un puerto paralelo es una interfaz entre un ordenador y un perifrico cuya principal caracterstica es que los bits de datos viajan juntos enviando un byte completo o ms a la vez. Es decir, se implementa un cable o una va fsica para cada bit de datos formando un bus. El cable paralelo es el conector fsico entre el puerto paralelo y el perifrico. En un puerto paralelo habr una serie de bits de control en vas aparte que ir en ambos sentidos por caminos distintos. En contraposicin al puerto paralelo est el Puerto serie, que enva los datos bit a bit por el mismo hilo. Cmo funciona el Puerto Paralelo? La mayora de los puertos paralelos de la parte posterior de las computadoras compatibles poseen un conector DB-25. Esto es extrao, 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 tambin la computadora. Sin embargo, utiliza un conector DB-25 macho para su interfaz paralelo (por ser algo diferente). La funcin de cada terminal del conector DB-25 se muestra en la siguiente imagen. Las seales que ocupan esas terminales se pueden dividir en cuatro grupos bsicos: tierras, salidas de datos, entradas de dialogo y salidas de dialogo. En la imagen las tierras se indican con crculos, 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 lneas tienen una abreviatura convencional que se indica entre parntesis.)

Librera Inpout32.dll (Visual Basic.NET) Para trabajar con puertos bajo VB.NET es necesario el uso de una librera que contenga funciones de Acceso a las direcciones de los puertos. Esta librera es diferente dependiendo del tipo de puerto a trabajar. La librera 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 librera inpout32.dll. Poner la librera correspondiente en la carpeta c:\windows\system32 Agregar el mdulo inpout 32.bas al programa realizado en Visual Basic y listo ya puedes hacer uso de las funciones para accesar al puerto paralelo:

Inp Para leer el puerto (Entrada) Out para escribir al puerto (Salida) Desarrollo de la prctica Material: Cautn Estao 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, de la misma forma pelamos 1 cm de cada uno de los hilos de cada extremo, una vez realizado esto procedemos a soldar los hilos del cable en el conector macho, para esto se deben localizar los pines en el conector que estn enumerados, localizamos pines del 2 al 9 que son los utilizados para la transferencia de datos, una vez localizados los pines procedemos a soldar ,esto se hace en el orden que ustedes prefieran siempre y cuando recuerden la secuencia, una vez hecho esto tomamos el cable de un hilo y pelamos en cada extremo 1 cm. 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 realizado todo este procedimiento pasaremos a la protoboard, 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, una vez hecho esto tomamos los leds y ubicamos el polo negativo que es la patita ms 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 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 dems con su respectivo orden .

Programa Para poder manejar puertos en Visual Basic.Net es necesario contar con la librera Inpout32.dll de la cual hablamos anteriormente reiterando que es necesario Poner la librera correspondiente en la carpeta c:\windows\system32 una vez hecho eso tenemos que crear una clase en nuestro proyecto donde se importa la librera . Codigo: Imports System Imports System.Runtime.InteropServices

Public Class Puerto _ Public Shared Function output(ByVal adress As Integer, ByVal value As Integer) As Boolean

End Function

End Class

Una vez hecho esto pasamos a nuestro formulario e insertamos un botn, en este botn probaremos si todo sale correctamente en el botn ira el siguiente cdigo: Codigo: Private Sub Probar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Probar.Click

Puerto.output(888, 255) End Sub

Para poder encender el led numero 1 ,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.Object, ByVal e As System.EventArgs) Handles Led1.Click Puerto.output(888, 1) End Sub Private Sub Led2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Led22.Click Puerto.output(888, 2) End Sub

Private Sub Led3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Led3.Click Puerto.output(888, 4) End Sub

888 porque es la direccin hexadecimal que utiliza VB.NET para mandar seal al puerto y 1,2 y 4 por que es la direccin donde esta ubicada el primer led para poder saber la direccin 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 operacin: 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.NET) 2^1=2 2^2=4 2^3=8

2^4=16 2^5=32 2^6=64 2^7=128 Esa es toda la operacin y as se realiza sucesivamente. Este es el ejemplo, para esto se necesita inserta 8 botones y 1 timer el formulario y la clase anteriormente mencionada. Codigo: Public Class Form1 Dim i As Integer = 0

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Puerto.output(888, 0) End Sub

Private Sub Form1_FormClosed(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles MyBase.FormClosed Puerto.output(888, 0) End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Puerto.output(888, 1) End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Puerto.output(888, 2) End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Puerto.output(888, 4) End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Puerto.output(888, 8) End Sub

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click Puerto.output(888, 16) End Sub

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click Puerto.output(888, 0) Timer1.Stop() End Sub

Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click Puerto.output(888, 255) Timer1.Stop() End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

TextBox1.Text = CStr(i) i = i + 1

If i = 1 Then Puerto.output(888, 1) End If If i = 2 Then Puerto.output(888, 2) End If If i = 3 Then Puerto.output(888, 4) End If If i = 4 Then Puerto.output(888, 8) End If If i = 5 Then Puerto.output(888, 16) End If

If i = 6 Then Puerto.output(888, 255) End If

If i = 7 Then Puerto.output(888, 16) End If

If i = 8 Then Puerto.output(888, 8) End If

If i = 9 Then Puerto.output(888, 4) End If If i = 10 Then Puerto.output(888, 2) End If If i = 11 Then Puerto.output(888, 1) End If If i = 12 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.Object, ByVal e As System.EventArgs) Handles Button8.Click

Timer1.Enabled = True

End Sub End Class

Este programa lo que realiza es encender led por led segn el botn que se presione correspondientemente a cada led de 1 al 5, con otro botn enciende todos los leds, otro desactiva el led cuando alguno esta encendido y por ltimo se hiso una pequea muestra de cmo se podra implementar con un timer para que cada led encienda cada decima de segundo uno tras otro.

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]http://henrycondori.com/publicaciones/puertoparalelo.pdf[/pdf]

Otro manual en PDF [pdf]http://proyectosfie.com/html/documentos/proteus/ComenzandoLPT.pdf[/pdf]

También podría gustarte