# Como Programar el puerto paralelo (placa pci) para mandar datos



## davitox11 (Mar 9, 2013)

Hola!

tengo un automatizar otra parte de mi casa, yo lo hice con el puerto paralelo integrado en la mother y no tuve problema ya tengo el programa y todo.. Mi problema surge con otra pc que no tiene puerto y le agregue una placa pci Serial paralelo noganet kw-222-n2 numero de recurso Intervalo E/S E400-E407 , usa el LTP3 no se como usarlo en el basic ya sea 6.0 o .net estuve probando pero no funciona utilizando los tipicos comando. mire varios foros tutoriales sobre este tema pero muy pocos hablan si el puerto es una placa de extencion.

En la PC con paralelo integrado utilizaba el comando:

portout &h378, 0  o &h278 o &h3bc... Dependiendo de que LTP le correspondia
Setportbit &h378, 0 ...

En la PC 2 con paralelo (placa Pci) como deberia ser el codigo?

portout "????", 0

Disculpen Si cometi algun error soy nuevo en el foro.


----------



## Scooter (Mar 9, 2013)

No creo que puedas, en el fondo ese no es el hardware real, son capas y emuladores...


----------



## martin encina (Mar 9, 2013)

En el "Administrador de dispositivos" de windows busca si aparece tu placa PCI, si lo encuentras, abre sus propiedades y busca en uno de los submenús, en uno de ellos dice algo de intervalos, y te indica la dirección del puerto.


----------



## davitox11 (Mar 9, 2013)

ya busque el intervalo lo puse en la pregunta el intervalo E/S E400-E407...
normalmente el intervalo E/S Ltp1 es 0378, Lpt2 0278, Ltp3 3BC. pero mi placa aparace Ltp3 (intervalo E/S E400-407) y no se que deberia escribir en visual para que lo interprete.


----------



## D@rkbytes (Mar 9, 2013)

davitox11 dijo:


> normalmente el intervalo E/S Ltp1 es 0378, Lpt2 0278, Ltp3 3BC. pero mi placa aparece Ltp3 (intervalo E/S E400-407) y no se que debería escribir en visual para que lo interprete.


Entonces para la entrada de datos tienes la dirección 0xE400 y para la salida tienes 0x407


davitox11 dijo:


> En la PC con paralelo integrado utilizaba el comando:
> 
> portout &h378, 0  o &h278 o &h3bc... Dependiendo de que LTP le correspondía
> Setportbit &h378, 0 ...
> ...



Prueba escribiendo...
portout &hE400, 0
Que es el de tu tarjeta PCI.

Suerte.


----------



## davitox11 (Mar 9, 2013)

Prueba escribiendo...
portout &hE400, 0
Que es el de tu tarjeta PCI.

hola gracias por tu ayuda!!
probe de poner &HE400 y lo que sucedio fue que se apago la pc completa y se reinicio supongo que debe ser un corto o algo causa de la placa pci realmente no sabria... 
supongo que debe ser esa la direccion pero produce un corto.


----------



## D@rkbytes (Mar 9, 2013)

Pues es muy extraño que se reinicie la computadora.
Quizás debido a alguna configuración en las propiedades del dispositivo.
No sé que sistema uses, yo tengo XP, y pondré unos gráficos de la configuración por default del puerto.
Así es como se encuentra originalmente, y con el puerto original de la PC.

Si te fijas, solo se pueden hacer cambios en "Configuración del puerto", "Controlador" y en "Recursos"
En configuración del puerto, me permite cambiar el nombre a LPT1, LPT2 y LPT3
En "Controlador", con el de MS me va bien, y en "Recursos" está en Usar configuración automática.

Ya nos contarás si lograste resolver algo.


----------



## analogico (Mar 10, 2013)

la computadora se reinicia por que cree que es un error
usar de esa manera ese  intervalo

prueba cambiando aqui a Ver el archivo adjunto 89042
"usar cualquier interrupcion asignada al puerto"

no has dicho que dll estas usando no todas funcionan con xp y no todas funcionan con 7 y
no todas permiten  usar placas pci


----------



## exploit (Mar 10, 2013)

Hola que tal davitox11, dejame decirte que si no me equivo tu compu se reinicia por que accesdes una parte de memoria protegida del sistema, ahora yo te recomiendo que te metas con algun lenguaje de la plataforma de .NET, yo e programado en Visual Basic y no es complicado, Busca en google SerialPort en Visual Basic y te encontraras con bastante informacion  y en lo que te pueda ayudar. Saludos


----------



## davitox11 (Mar 10, 2013)

Hola de nuevo!

estuve Probando de cambiar la configuracion y sigue sucediendo lo mismo.
El sistema que utilizo Son windows 7 y Windows XP en ambos pero el SO en que lo pruebo es en el XP con visual Basic 6.0 y Con el visual Basic 2008 (utilizo Ambos)
El .dll es el IO.dll y el Inpout32.dll dependiendo el programa.

Deje las imagenes del la propiedades en .rar, el LTP1 no es real porque la mother no tiene
integrado! la placa pci es el LTP3...

En configuracion de puerto : Utilize los tres metodos y nada, habilite la deteccion y nada.
En recursos no me deja modificar nada todo en automatico.

probare de cambira los dll por si las dudas..

Gracias por la ayuda si se les ocurre algo mas avisen.


----------



## exploit (Mar 10, 2013)

Ya entedi mira nunca vas a poder accesar al puerto directamente ya que estan protegidos, para eso necesitas utilizar las apis del S.O que es algo más complicado y aun asi no se si se pueda.
Si quieres accesar a ello directamente deberas bajarle el sistema operativo, como Windows 98,95 y no recuerdo creo que tambien Windos 2000, ya que con en XP en adelante estara protegido estos puertos y lo cual no te permitira accesar directamente.
Ahora una solucion a tu problema  que e comprobado que funciona con con visual es con los puertos COM en tu caso el COM3, usa protocolo RS232 y solo tendras que usar un max para poder usarlo para circutios TTL.
Lee aqui si aun asi quieres controlar el puerto LPT https://www.forosdeelectronica.com/f26/usar-puerto-paralelo-c-visual-basic-lab-view-2259/


----------



## analogico (Mar 11, 2013)

claro no se puede accesar directamente en xp y adelante
para eso estan las librerias que incluyen un driver interno que usa las apis del sistema operativo

el problema esta es que la libreria que estas usando no  sirve para direcciones no estandar,
por eso se reinicia tu PC

de todos modos en el foro esta  la solucion, es cosa de buscar los antiguos post
recuerdo eso por que tambien tuve el mismo problema
solo que no recuerdo la solucion, pero tenia que ver con la dll


----------



## davitox11 (Mar 12, 2013)

Hola!

Bueno primero gracias por la ayuda al final despues de estar probando y probando!! lo Logre!
Primero cambie el .dll use el inpout32.dll pero en visual basic 2010 express, con este si pude 
alfinal. la direccion era &HE400, ahora ya se que para las placas Pci con paralelo debo utilizar estos componentes.

De nuevo Gracias! sus consejos me ayudaron


----------

