Título: Controlar Puerto Paralelo Publicado por: fdsigu en 13 Julio 2010, 18:28 pm Amigos como estan, estoy haciendo unprogramita en c# para controlar el puerto paralelo, uso lalibrelia inpout32.dll, ya se como enviar los datos del puerto, pero lo que no se como leer e interpretar los datos que recibo,
uso este codigo para la lectura? //Llama a la función de entrada del archivo dll. [DllImport("inpout32.dll", EntryPoint="Inp32")] public static extern int Entrada(int direccion); El puerto paralelo tiene los pines de entrada (pin 15,10,11,12,13) Entonces cuando leo el puerto 889 como se que esta en cada pin, por decir algocuando este con 1 el pin 15 que valor debo tener?? igual para el resto de pines, de igual forma si esta con 1 el pin 15 y el 10 como se que valor debe darme cuando leo el puerto 889. Ademas de esto necesito hacer uso del puerto de entrada y salida, es decir tengo que leer cuando esta con 1 o 0 el pin1, aqui igual tengo que leer el puerto 890 pero que valor me deberia dar cuando tiene 1 el pin1 y que valor cuando tiene 0 este pin1. Espero me puedan ayudar. Título: Re: Controlar Puerto Paralelo Publicado por: cbug en 13 Julio 2010, 18:32 pm Puedes pasarte por aqui (http://www.codeproject.com/KB/vb/Inpout32_read.aspx)
Título: Re: Controlar Puerto Paralelo Publicado por: fdsigu en 13 Julio 2010, 20:13 pm Amigo muchas gracias por el enlace, pero mas que nada de como leer el valor del puerto es saber como interpretar o saber que valores me da cuando leo el puerto 379 y 390 del puerto paralelo,
los pines de status son Pin 10: S6 Pin 11: S7 Pin 12: S5 Pin 13: S4 Pin 15: S3 por ejemplo cuando el pin10, tiene un uno que valor deberia tener en decimalo binario? cuando tiene un 0 igual, para el resto de pines de igual manera y las combinaciones por ejemplo si el pin10 y 11 esta con el valor de uno que valor deberia tener, porfa alguien que mepueda ayudar porque estoy bien confundido con esto. Título: Re: Controlar Puerto Paralelo Publicado por: Mr.Blue en 13 Julio 2010, 20:35 pm bueno aver si entendi bien que es lo que queres.
ya habia respondido o habia creado un post, pero no recuerdo. te doy un ejemplo en c++ que es el luenguaje quue mas manejo para que te des una idea. Código
Bueno, como funciona ese 2 que te dije. Supongamos esto, en un puerto LPT son 8 pines que se pueden usar con leds, entonces como saber como prender el led que queremos, de la sigiente forma: 128 64 32 16 8 4 2 1 // aca son valores que sumados podemos formar cualquier numero desde el 0 hasta el 255 entonces 128 64 32 16 8 4 2 1 LEDs 1 2 3 4 5 6 7 8 queremos prender el led 4 seria igual a 00010000 (binario) = 16 (decimal) el led 1 3 5 7 seria igual a 10101010 = 170 en el ejemplo en c++ q di prenderia el led 7 Espero q te sea de ayuda. Saludos Título: Re: Controlar Puerto Paralelo Publicado por: fdsigu en 13 Julio 2010, 22:14 pm Gracias amigo por la respuesta pues si algo asi es lo que queria, pero lo que me indicas es para los pines de salida, ahora como seria para los pines de status o de entrada y los de control???
Gracias ojala y mepuedas ayudar. Título: Re: Controlar Puerto Paralelo Publicado por: Mr.Blue en 13 Julio 2010, 22:31 pm http://www.todorobot.com.ar/proyectos/paralelo/paralelo.htm
Fijate esta web por ahi te sea de ayuda, me estoy yendo a estudiar justo, cuando vengo te respondo mas elavoradamente, saludos. Título: Re: Controlar Puerto Paralelo Publicado por: fdsigu en 13 Julio 2010, 22:59 pm Gracias Sr Blanco pero no me ayudo mucho esa web, esperare a ver si me puedes ayudar con una breve descripcion asi como lo hiciste de los pines de salida ahi si entendi pero ahora el problema es con los de entrada y control
Saludos Título: Re: Controlar Puerto Paralelo Publicado por: Mr.Blue en 14 Julio 2010, 03:39 am Bueno, el pueto paralelo LPT consta de tres registros: Estado , de datos y de control
los de estado: es un reguistro de entradas de 5 bits, i trabajan con la direccion 0x379 (LPT1) los de datos: consta de 8 bits, es bidireccional, y su direccion es 0x378 (LPT1) Los de control: Tambien son bidireccional de 4 bits, y su direccion es 0x37A (LP1) DATOS: Como ves el de datos que es el que te explique anteriormente trabaja con 8 bit, de 0 a 7 binario (2e3) 255 conbinaciones posibles. Estado: Son 5bits, de 0 a 4, osea 2e2, 31 conbinaciones posibles. El registro de estado indical la situacion actual de la impresora conectada al puerto, segun los niveles de tencion, ACK, BSY, PAP y OF/ON, lo que permite controlar el comportamiento de la impresora, es un regustro de entrada (Lectura) de informacion. Se compone de los pines (10,11,12,13,15). Si te fijas en la web que te deje en el cuadro que dice Lectura: Entrada de datos Coresponden a estos: Aclaracion D3,...,D7, indica el bit, osea bit 3 a 7 # D3: state of pin 15 (ERROR) inverted -> Si esta en 0, indica que se ah producido un error. # D4: state of pin 13 (SELECTED), -> Este es de OF/ON, si esta en 1 la impresora no esta en linea. # D5: state of pin 12 (PAPER OUT) -> Si esta en 1, significa que falta papel. # D6: state of pin 10 (/ACK) -> Indica que se producio una transferencia correcta, Trabaja con estados alto-bajo, si se transfiere un byte a la impresora, esta activa la line ACK de reconocimiento de caracter,en este momento pasa a estado bajo, si el ACK esta en niven alto significa que la impresora esta ocupada, y no se pueden realizar envios. # D7: state of pin 11 (/BUSY) inverted -> Inpresora ocupada. Los bit 0,1 y 2 no se usan. Control: Son 4 bit, igual q antes 2e2, 15 conbinaciones posibles. Este registro permite controlar las transferencias de informacion con la impresora, y tiene acceso de Lectura y escritura, como dije su direccion es 0x37A (LPT1). Corresponden a los pines 1,14,16,17 Los bit de este registro son: # D4: state of ping 2-9 (Son los de datos) (IRQ) # D3: state of ping 17 *(DSL) # D2: state of ping 16 (/INI) # D1: state of ping 14 *(ALF) # D0: state of ping 1 *(STR) Notas: 1- La / indica bit activo a nivel bajo 2- El * indica que son invertidos por el Hardware por lo tanto. Bit 4 (IRQ): Permite controlar las interrupciones de tipo hardware, si el bit esta en 1 corresponde con la interrupcion 0x0Fh (Creo) para procesador x86. Bit 3 (DSL): Esta es activada con un pulsador produce la iniciacion de la impresora. Bit 1 (ALF): Esta en nivel alto y cuando se produce un carry CR produce un cambio de linea. Bit 0 (STR) Controla la linea, y permite validar el dato exitente en el registro de datos, En 1 en el bit STR indica que el caracter es valido y se debe aceptar Fuente: http://mimosa.pntic.mec.es/~flarrosa/puerto.pdf (http://mimosa.pntic.mec.es/~flarrosa/puerto.pdf) Lo que te deje esta resumidamente, de esa fuente ya q no me acuedo de todo. Aclaracion importante. Al trabajar con todo el puero paralelo, te recomiendo, si estas trabajando en una placa madre unboard, comprar aparte el pueto paralelo LPT para hacer experimentos y trabajar con ese ya que si quemas el puerto LPT de la placa madre queda inutilizable, y su arreglo puede llegar a ser muy costoso, y talves te sea mas barato comprar una placa madre nueva. Otra cosa, seria de mas utilidad si expones el circuito y/o que trabajo queres hacer con el puerto, brindarte mas ayuda. Título: Re: Controlar Puerto Paralelo Publicado por: andres_5 en 14 Julio 2010, 10:07 am Una duda por mi parte, como se desbloquea el puerto paralelo desde el Windows 7 de 64 bits ?? he provado haciendo mi aplicación y usando ya programas ya creados, y ningun avance ...
gracias y saludos Título: Re: Controlar Puerto Paralelo Publicado por: fdsigu en 14 Julio 2010, 16:03 pm Gracias Sr blanco po la informacion, pero queria saber si no es mucha molestia, asi como lo hiciste con el ejemplo de los pines de datos explicarme con los pines de control, osea en terminos mas comprensibles para el comun de los usuarios jeje,
Por ejemplo Pin 10: S6 cuando tine 1 que valor en decimal es igual cuando tiene 0 Pin 11: S7 cuando tine 1 que valor en decimal es igual cuando tiene 0 Pin 12: S5 cuando tine 1 que valor en decimal es igual cuando tiene 0 Pin 13: S4 cuando tine 1 que valor en decimal es igual cuando tiene 0 Pin 15: S3 Como me indicaste 128 64 32 16 8 4 2 1 LEDs 1 2 3 4 5 6 7 8 Aqui si esta claro, pero ya para los pines de entrada no, lo que tengo que hacer es un programita que envie datos al puerto y prenda leds, dependiendo de lo que el profe pida, con lo que me indicaste ya lo tengo claro, ademas de esto debo leer el puerto y ver que datos tiene y segun los datos que tenga debo decir por ejemplo S6 cuando este con 1 activo cuando este con 0 desactivado. S7 activo o desactivo (si es 1 o 0) y asi con todos los pines, para enviar estos datos uso un pulsante. Saludos y gracias por la ayuda Título: Re: Controlar Puerto Paralelo Publicado por: Mr.Blue en 14 Julio 2010, 19:51 pm Bueno, el pueto paralelo LPT consta de tres registros: Estado , de datos y de control
los de estado: es un reguistro de entradas de 5 bits, i trabajan con la direccion 0x379 (LPT1) los de datos: consta de 8 bits, es bidireccional, y su direccion es 0x378 (LPT1) Los de control: Tambien son bidireccional de 4 bits, y su direccion es 0x37A (LP1) Se trabaja de igual forma. dijimos que para lo registros de datos eran 8 bit 128 64 32 16 8 4 2 1 1 2 3 4 5 6 7 8 bits Para los registros de estado: 16 8 4 2 1 1 2 3 4 5 bits Para los registros de control 8 4 2 1 1 2 3 4 bits Bueno en cada caso ya sabes que sucede si la entrada esta en 1 o en 0, (impresora ocupada, sin papel, error, etc). trabaja de la misma forma que en los datos con la diferencia que son distintas direcciones de registro y con distinta cantidad de bits, En el ejemplo que me decis Gracias Sr blanco po la informacion, pero queria saber si no es mucha molestia, asi como lo hiciste con el ejemplo de los pines de datos explicarme con los pines de control, osea en terminos mas comprensibles para el comun de los usuarios jeje, Por ejemplo Pin 10: S6 cuando tine 1 que valor en decimal es igual cuando tiene 0 Pin 11: S7 cuando tine 1 que valor en decimal es igual cuando tiene 0 Pin 12: S5 cuando tine 1 que valor en decimal es igual cuando tiene 0 Pin 13: S4 cuando tine 1 que valor en decimal es igual cuando tiene 0 Pin 15: S3 Estas hablando del registro de estado, que va de 10-15, Ahi te puse como trabaja con estados altos, y bajos, y funciona de la misma manera pero la diferencia que aca no mandas informacion al puerto si no que lee. entonces. vos sabes que son 5 bits 1 2 3 4 5 bits 1 2 4 8 16 ---> que pasa cuando en el bit 1 y 4 hay tencion osea que esta en "1" te fijas en lo que puse en el post anterior, ERROR y TRANSFERENCIA CORRECTA (/ACK) Entonces resumen. Este registro lo controloas vos con tu circuito dependiendo del estado que aya en cada pin la maquina debe leer ese estado y interpretarlo vos con la programacion, dependiendo que estado tengas, haras las funciones que necesites. El de Control, de igual forma, son 4 bits 1 2 3 4 bits 1 2 4 8 --> que pasa cuando el bit 4 esta en "1", (DSL) produce la iniciacion de la impresora atraves de un pulsador Es este ultimo son 4 bits pero como es bidireccional, podes trabajar tambien con los pines del registro de datos. Espero que sea esto lo que queres saber. Vuelvo a citar Por ejemplo Pin 10: S6 cuando tine 1 que valor en decimal es igual cuando tiene 0 Pin 11: S7 cuando tine 1 que valor en decimal es igual cuando tiene 0 Pin 12: S5 cuando tine 1 que valor en decimal es igual cuando tiene 0 Pin 13: S4 cuando tine 1 que valor en decimal es igual cuando tiene 0 Pin 15: S3 Pin 10 11 12 13 15 1 1 1 1 1 ---> todos en 1 es igual a 31 "La suma da 31" 1 2 4 8 16 Pin 10 11 12 13 15 0 0 0 0 0 ---> todos en 0 es igual a 0. 1 2 4 8 16 Reitero, dependiendo del estado en cada pin, tenes q mirar lo que quiere decir un "1" o un "0" en lo que escribi en el anterior post Saludos PD: Revisa el link que te deje anteriormente. Citar Andres_5 Eso que mencionas me ah pasado, si no me equivoco el problema arranca apartir de windows xp, necesitas un programa, pero no recuerdo cual en este momento, fijate por google que creo aver visto alguna aplicacion, pero no te aseguro de que sirva para windows 7 no lo eh probado todavía, si lo encuentro dejo un link. Título: Re: Controlar Puerto Paralelo Publicado por: andres_5 en 14 Julio 2010, 20:34 pm muchisimas gracias, llevo unas semana comentando en todo los lado y nadie, y digo nadie, me ha brindado la menor ayuda, por eso de nuevo te doy las gracias, almenos ya se que mi problema es comun, lo buscare personalmente si lo encuentro lo posteare, agradecezco tu apoyo...
saludos ;) Título: Re: Controlar Puerto Paralelo Publicado por: JCCC en 15 Julio 2010, 23:38 pm no puedo ayudar en mucho... deje de usar el puerto paralelo cuando me dejaron solo con la portatil....
cambiate a usar el Puerto USB, es mas comodo... si te animas pasate pro san google, tienes bastante informacion para seven especialmente... Título: Re: Controlar Puerto Paralelo Publicado por: andres_5 en 16 Julio 2010, 02:44 am me estoy pensando seriamente pasarme a USB, aunque si me ha sido imposible programarlo para el puerto paralelo imaginense para USB. Si no fuese mucho pedir, me ayudaria notablemente que me intrudujerais algunos terminos para buscar en san google. he empezado buscando cosas como, controlar led con usb, tutorial control usb con VB.net y nada de nada, sigo sabiendo lo mismo que antes (nada)
saludos y muchas gracias... Título: Re: Controlar Puerto Paralelo Publicado por: JCCC en 16 Julio 2010, 07:38 am mmmm
en san google muchotrasto... te llevara a otros lugares... la pagina de microchip.... Matlab o Visual para los programas en la PC o cualquier otro programa pero esos son los q use... por ahi labview... veras q es sencillo si eres bueno en programacion... es mi talon de aquiles XD Título: Re: Controlar Puerto Paralelo Publicado por: Mr.Blue en 16 Julio 2010, 17:58 pm Podrias usar un chip FT232 (Adapatador USB a serie)
Título: Re: Controlar Puerto Paralelo Publicado por: Meta en 22 Julio 2010, 13:36 pm Me falta poco por acabar un manual que estoy haciendo sobre el control del puerto paralelo en C# y VB .net 2010 Express, el C++ no lo logro hacer funcionar, se me resiste.
He acabado el programa con instalador incluido. Lo puedes descargar aquí (http://pic16f84a.org/index.php?option=com_docman&task=doc_download&gid=102&Itemid=59). Si lo pureban, me lo hace saber sus opiniones sobre él, se puede modificar. El manual lo pasaré a PDF con sus código fuentes incluido (se incluye también con trecnología WPF C#), lo estoy puliendo, como añadiénmdole índices, y más cosas, requiere tiempo. Cuando lo acabe hoy, les pasaré un enlace para que lo descarguen y opinen del manual o creo un tema nuevo. ¿Ya has probado el control del puerto paralelo? Es la versión v1.3, se necesita instalar si no lo tienes ya el FrameWork 4.0 gratuito. Ya me avisarán, luego les paso el manual. Título: Re: Controlar Puerto Paralelo Publicado por: andres_5 en 22 Julio 2010, 20:36 pm intente utilizar el puerto USB, pero si habia poco informacion con el puerto paralelo, imaginense con el puerto USB. asi que doy un paso atras, por no retirarme... si como dices estas creando un tuto en el puerto paralelo, lo esperare, si ese tuto me ayuda a seguir adelante, conseguire motivacion para seguir adelante en futuros proyectos... por si lo sabes y quiers introducirlo en tu tuto...
¿Podrias poner como desbloquear el Puerto Paralelo, en windows 7? ¿y que librerias se aconseja usar? para aclarar usaba para programar el VB.net 2008. saludos y muchas gracias ;) Título: Re: Controlar Puerto Paralelo Publicado por: Meta en 23 Julio 2010, 00:28 am Uso el Windows XP, no he usado el Windows 7. No sabía que con este Sistema operativo el puerto paralelo no funcionase. Me informaré sobre ello.
Sobre USB está aquí. http://www.forosdeelectronica.com/f24/control-dispositivos-traves-modulo-usb-pic18f2550-17458/ Edito: http://foro.elhacker.net/electronica/manual_tutorial_interfaz_puerto_paralelo_lpt_visual_studio_express-t300356.0.html Edito 2: Me han respondido sobre el tema del puerto paralelo en Windows 7 que puedes ver en este enlace. http://social.technet.microsoft.com/Forums/es-ES/windows7es/thread/7e6da70a-74d3-4a2c-9a45-e9b6322ca851/ Título: Re: Controlar Puerto Paralelo Publicado por: andres_5 en 23 Julio 2010, 23:09 pm he visto tu link donde hablan de el puerto paralelo en windows vista/7, y he buscado informacion sobre ello, pero ha sido en vano, tu tutorial es muy bueno, y empieza con un nivel muy bajo (para aquellos que no saben programar), pero sigo sin saber cmo desbloquear el puerto ni para windows 7 ni para windows vista, pense si seria mas facil hacerlo en linux (ya intente en gambas, pero tampoco tuve suerte) y Por ultimo, sabeis si vale con una maquina virtual de un windows 98 o XP desde linux?
saludos y gracias por todo Título: Re: Controlar Puerto Paralelo Publicado por: Meta en 23 Julio 2010, 23:22 pm Puedes mirar el de gambas2 por aquí (http://www.ucontrol.com.ar/forosmf/programacion-en-visual-basic/control-del-puerto-paralelo-en-gambas-bajo-ubuntu-9-04/).
Lo que buscas es totalmente diferente. Una cosa que me olvidé de decirte, que mires en la BIOS, porque puedes cambiar la configuración del puerto paralelo, convertir entradas a salidas y viceversa, etc. Título: Re: Controlar Puerto Paralelo Publicado por: andres_5 en 24 Julio 2010, 03:14 am OSTION, me acaba de salir en el Gambas esta noche va a ser larga ^^ .
no sabes lo emocionado que estoy ahora puedo llevar a cabo mi proyecto. MUCHISIMAS GRACIAS META ;) estoy en deuda contigo ^^ |