Controlar El Puerto Paralelo Con Visual Basic

Controlar el Puerto Paralelo con Visual Basic.NET Un puerto paralelo es una interfaz entre un ordenador y un periférico

Views 111 Downloads 4 File size 319KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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:

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, 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 están 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 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 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 .

Programa Para poder manejar puertos en Visual Basic.Net es necesario contar con la librería Inpout32.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 . 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 botón, 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.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 dirección hexadecimal que utiliza VB.NET para mandar señal al puerto y 1,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.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 operación 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 según el botón que se presione correspondientemente a cada led de 1 al 5, con otro botón enciende todos los leds, 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.

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]