Práctica 4: Control del puerto paralelo

abril 17, 2009 at 9:32 am (1, Documentos)

::[OBJETIVOS]::

  • Identificar los comando básicos para control de puertos por medio de un lenguaje de programación.
  • Diseñar un programa en un lenguaje de programación para el control de encendido de los LEDs de tal forma que al indicar un número del 1 al 8 en el teclado se encienda el correspondente LED.
  • Verificar el funcionamiento y aplicabilidad del circuito.

::[MONTAJE]::

  • Elementos: Los siguientes elementos son necesarios para el montaje del circuito:
    • Board, cable, multímetro, pinzas, entre otros.
    • Fuente: Bateria 9V DC.
    • Resistencias de 1/4W:
      • R3: 3 de 2.2 KΩ
      • R2: 8 de 4.7 KΩ
      • R1: 8 de 330 Ω
    • 8 Leds.
    • 2 circuitos integrados 74LS04. Uno de los circuitos está de color verde en eldiagrama lógico.
    • 1 circuito regulador LM7805.
    • 2 condensadores electrolíticos (C1) de 10 μF.
    • 3 pulsadores miniatura (S1, S2 y S3) para board.
    • 1 conector DB25 macho.
    • Cable para unir del conector DB25 a la board (se requieren 12 hilos). El conector DB25 debe ir soldado a los cables.

Diagrama lógico control puerto paralelo

Diagrama lógico control puerto paralelo

Clic sobre la imagen para ver en tamaño completo

  • Montaje en protoboard: La siguiente figura ilustra el montaje del circuito en la protoboard.

Diagrama de montaje control puerto paralelo

Diagrama de montaje control puerto paralelo

Clic sobre la imagen para ver en tamaño completo

  • Diagrama de conexión a la protoboard: La siguiente figura ilustra las conexiones que deben hacerse desde el cable de 12 hilos a la protoboard.

pendiente de elaborar

::[PROGRAMA PARA EL CONTROL DEL PUERTO PARALELO]::

El siguiente código en Visual Basic 6 es un programa  que hace uso de la librería inpout32.dll para el control del puerto paralelo. El código sólo se encarga de enviar la orden de encendido al led correspondiente en la board de acuerdo a la entrada del usuario.

Queda a interés del lector desarrollar el código del programa que se encarga de informar al usuario cuando uno de los tres pulsadores   de la board (S1, S2 ó S3) fue presionado (Nota: se hace usando otra función de la misma librería inpout32.dll).

La siguiente figura ilustra la interfase gráfica del programa.

GUI Control puerto paralelo

GUI Control puerto paralelo

El siguiente es el listado del código del programa:

'(C) Juan Felipe Muñoz Fernández
'http://www.juanfelipe.net
'https://juanfmunoz.wordpress.com

Private Declare Function Inp Lib "inpout32.dll" _
Alias "Inp32" (ByVal PortAddress As Integer) As Integer

Private Declare Sub Out Lib "inpout32.dll" _
Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)

Public DireccionPuerto As Integer

Private Sub cmdApagarTodos_Click()
    Out DireccionPuerto, 0
End Sub

Private Sub cmdEncender_Click()

    Select Case Me.txtNumeroLed

        Case "1"
            Out DireccionPuerto, 1
        Case "2"
            Out DireccionPuerto, 2
        Case "3"
            Out DireccionPuerto, 4
        Case "4"
            Out DireccionPuerto, 8
        Case "5"
            Out DireccionPuerto, 16
        Case "6"
            Out DireccionPuerto, 32
        Case "7"
            Out DireccionPuerto, 64
        Case "8"
            Out DireccionPuerto, 128

    End Select

End Sub

Private Sub cmdEncenderTodos_Click()
    Out DireccionPuerto, 255
End Sub

Private Sub Form_Load()
    DireccionPuerto = Val(Me.txtDireccionBase)
End Sub

Para que el anterior programa funcione correctamente, la librería inpout32.dll debe copiarse en C:\WINDOWS\SYSTEM32.

La dirección base se obtiene así: Inicio | Panel de control | Sistema | Hardware | Administrador de dispositivos | Puertos (COM y LPT) | doble clic en el puerto LPT de interés | Recursos.

Información del puerto paralelo del computador

Información del puerto paralelo del computador

En la información de la pestaña Recursos, tomamos como dirección base el límite inferior del primer rango de Entrada-Salida.

Dirección base puerto paralelo

Dirección base puerto paralelo

En la imagen anterior, el límite inferior del primer rango de E/S es 0x378. Por lo tanto, al ejecutar el programa, en el campo Dirección base entramos este valor precedido por los caractéres &H, así: &H378.

::[REFERENCIAS]::

10 comentarios

  1. carlos lopez said,

    Que buena practica, antes no entendia mucho de VB, ahora comienzo a entender, muchas gracias

  2. Henry Diaz said,

    Qué bien Felipe. Debes aclarar para cuál sistema operativo has realizado esto porque en el windows XP la librería de acceso al puerto paralelo es diferente. Saludo.

    • juanfelipemunoz said,

      Hola. Gracias por el comentario.

      Te cuento que esta práctica se ha realizado en Windows XP. Así mismo se comprobó su funcionamiento en dos equipos diferentes. Incluso uno de ellos tenía Windows XP Home en Inglés y el otro Windows XP Pro en Español.

      Saludos!

  3. sncolder said,

    como conecto las conexiones que deben hacerse desde el cable de 12 hilos a la protoboard?. no se encuentra la imagen

    • juanfelipemunoz said,

      Aunque en la imagen del diagrama de montaje no aparecen, con el el diagrama lógico se puede deducir donde es la conexión. Sin embargo los hilos del cable van conectados a la protoboard en los siguientes nodos:
      I(4), I(5), I(7), I(8), I(9), I(10), I(11) e I(13). Es decir, se conectan en los nodos que van a esas 8 primeras resistencias que se encuentran en la esquina inferior izquierda.

      Si quieren hacer uso de los mini pulsadores, entonces también deben llevar hilos del cable a los nodos I(55), I(57) e I(59).

      Saludos

  4. MaCK1e said,

    que hay man, de grann ayuda me han sido tus practicas, tengo una pregnta, con que programa haces tus diagramas del montaje en la proto board??

    • Juan Felipe said,

      Hola.

      El diseño de la protoboard es mio, lo hice usando Microsoft Visio.

      Saludos

  5. dankatsc said,

    Hola…… me parecio muy interesante proyecto y quisiera saber si el rograma se puede ejecutar en win 7 …..

  6. kaly said,

    help help no se nada

  7. carlos said,

    hola amigo oye muchas gracias por compartir tu practica podrias por favor subir la imagen de la coneccion entre proto y puerto, gracias y saludos

Replica a kaly Cancelar la respuesta