Ayuda Con el Puerto Paralelo

Hola amigos ojala me puedan ayudar, No se mucho de programación pero lo que quiero es hacer un programa en visual Basic que me permita mandar datos por el puerto, es decir poder colocar en un texbox el dato entero que quiero mandar (del 0 al 255) y que el programa lo codifique en binario y lo mande al puerto (el circuito común : 8 leds, 1 CI74245, 1 CI74373, resistores para limitar la corriente y proteger el puerto) así mismo también que yo al hacer una combinación de entradas en el circuito el programa me lo muestre en binario y en entero el dato que ingrese en el circuito.
¿El problema que se me presenta es que tengo windows XP sp2 como sabemos el puerto paralelo esta bloqueado y no se como configurar el visual Basic para que pueda trabajar con el puerto me hablan de usar una dll una inpout32.dll y la otra es la IO.dll cual me recomiendan?, por favor indíqueme paso a paso como poder hacer el programa o tal vez me lo puedan mandar a mi correo [email protected], lo cierto es que ya he descargado varios programas de visual Basic que me indican que funciona solo poniendo la DLL en C:\windows\system32 y al ejecutarlo sale error, o bien se cierra el visual y me dice que se cierra por una mala operación o bien me dice que no encontró el archivo DLL, e ingresado a varios links pero la idea no queda clara.
Lo que intento es aprender a usar este programita para poder comenzar con mi verdadera tarea que es la de poder hacer un lector de código de barras sencillo ya que si el programa lo intento hacer en C++ se haría muy difícil por las interfaces gráficas que utilizaría, ¿ojala aquí también me puedan ayudar?
Aquí les mando el programa de C++ que lo uso para escribir y leer datos por el puerto en Windows 98 :
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <stdlib>
main ()
{
int puerto = 0X37C;
int esc,lee,sa,z,dato;
textcolor(8);
textbackground(3);
clrscr();
printf("\n\tElija cuallquiera de las siguientes opciones");
printf("\n\tIngrese 1 para escribir un dato");
printf("\n\tIngrese 2 para leer un dato");
printf("\n\tIngrese 3 para salir \n\t\t\t\t\t");
scanf("%d",&dato);
if(dato==1)
{
printf("\n\tIngrese el dato:\t\t");
scanf("%d",&esc);
if(esc>0&&esc<256)
{
printf("\n\tEl dato trasmitido es %d\t",esc);
outportb(puerto,esc);
delay(3000);
}
else
{
printf("\n\tEl rango de dato valido a trasmitirse es de 0 a 255");
}
outportb(puerto,0);
}
else
{
if(dato==2)
{
lee=inportb(puerto);
printf("\n\tLeyendo dato %d",lee);
delay(2000);
}
else
{
if(dato==3)
{
printf("\n\tsaliendo del programa");
}
}
}
getch();
return 0;
}
Bueno algo así intento obtener en visual basic pero con interfaz gráfica, los datos de mi puerto paralelo son : ¿LPT1 E/S 0378? 037F
Mi circuito usa un latch el 74373 y mi buffer es el 74245

1 respuesta

Respuesta
1
Si yo también tuve un problema similar porque como bien escribes el windows se toma del puerto de impresora y cuando tratas de mandar algo por el puerto, digamos lo más sencillo como un
Open "LPT1:" for Output as #1 : print #1,255 :close #1
De inmediato si la impresora no está conectada al puerto te sale que debes conectarla y el típico mensaje de error
Para eso debes hacerle creer al sistema tiene la impresora conectada a pesar de que no está allí y lo único debes hacer es unir ciertos pines del puerto paralelo son valores de control interno, acá está lo que debes hacer
http://www.pablin.com.ar/electron/circuito/computer/emuprn/index.htm
Con eso el sistema cree está todo bien y salen por el puerto los bytes quieras mandar sin problemas
Y listo, no necesitas direccionar una dirección de memoria ni nada solo con esta simple instrucción del Visual basic
Open "LPT1:" for Output as #1 : print #1,X :close #1
Donde POR es el valor decimal del byte vas a mandar por el puerto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas