Práctica 4: Control del puerto paralelo
::[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.
Clic sobre la imagen para ver en tamaño completo
- Montaje en protoboard: La siguiente figura ilustra el montaje del circuito en la protoboard.
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.
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.
En la información de la pestaña Recursos, tomamos como dirección base el límite inferior del primer rango de Entrada-Salida.
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]::
carlos lopez said,
May 29, 2009 a 12:35 pm
Que buena practica, antes no entendia mucho de VB, ahora comienzo a entender, muchas gracias
Henry Diaz said,
julio 14, 2009 a 11:30 am
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,
julio 14, 2009 a 12:15 pm
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!
sncolder said,
septiembre 20, 2009 a 9:15 pm
como conecto las conexiones que deben hacerse desde el cable de 12 hilos a la protoboard?. no se encuentra la imagen
juanfelipemunoz said,
septiembre 21, 2009 a 8:02 am
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
MaCK1e said,
diciembre 6, 2010 a 5:24 pm
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,
diciembre 6, 2010 a 9:35 pm
Hola.
El diseño de la protoboard es mio, lo hice usando Microsoft Visio.
Saludos
dankatsc said,
junio 11, 2011 a 12:19 pm
Hola…… me parecio muy interesante proyecto y quisiera saber si el rograma se puede ejecutar en win 7 …..
kaly said,
noviembre 11, 2012 a 10:45 am
help help no se nada
carlos said,
octubre 1, 2013 a 12:22 am
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