Pregunta: | 88 - ENVIAR DATOS A TRAVÉS DEL PUERTO PARALEL |
Autor: | Jesus |
Quisiera saber como podía hacer mis circuitos eléctricos y controlarlos por un programa mío en C++. Para ello, querría saber como enviar un 0 ó un 1 a través del puerto paralelo. Os ruego que contestéis. Gracias. :-) |
Respuesta: | Rosalío Morales Rizo |
Pues yo he utilizado las funciones de C inportb y outportb (para 8 bits) bajo Visual C y no hay ningun problema, bueno el problema se presentaria si corres tu programa bajo un NT (por aquello de las peticiones de acceso a puertos...) Por lo general la dirección de salida para un puerto paralelo se encuentra en la 0x378... asi que si quieres "activar" el bit uno del puerto paralelo (pin 2 del DB25), podría ser: outportb(0x378,1); Ahora bien, si lo que deseas es leer un dato, la entrada esta por lo general en la 0x379 (esto depende de la dirección fisica de tu puerto paralelo...) mmhh no todos los bits de este registro son de entrada, y uno esta invertido... podrias leer entonces con algo como mi_variable=inportb(0x379); Yo he podido leer 8 datos del puerto paralelo juntando la información de la dirección 0x379 y 0x37A... Nota: Las direcciones que pongo no son absolutas cambian de ordenador a ordenador... (asi como puede encontrarse a partir de la dirección 0x378, puede ser que este en la 0x3BC, 0x278,0x2BC,...) |
Respuesta: | Armando Nava |
Es muy sencillo en C cuentas con la funcion outport(889,2); /*Envias un 00000010 a los pines de salida */ /*la configuracion de puerto la puedes encontrar en algun libro de ensamble de computadoras */ //y para leer el puerto unsigned int dato=inport(888); |
Respuesta: | Pachi |
Yo he logrado enviar datos a través del puerto paralelo, a través de una dll (Win95io.dll), si me proporcionas tu dirección electrónica, te la paso, yo le he programado en VB4, pero supongo que no será un problema. |
Respuesta: | Julio Alejandro |
Es fácil, solo tienes que direccionar el puerto de salida y el dato de tipo caracter, si sabes Hexadecimal o Binario podrás fácilmente manipular los 8 bits, esta función esta provada en C++ 3.0void Out(unsigned char dato)Ademas realiza una Or Exclusiva para que si algún pin estaba en 1, lo pone a 0 o si ya había algun dato, lo mantiene. Gracias
|
Respuesta: | Cesar Quispe |
No si tengas nocion de assembler, conocerlo te da mas posibilidades de entenderlo y luego pasarlo a c++ es mas facil, si es asi me gustaria me escribas. El enviar datos por el puerto paralelo es bastante facil, lo unico que tiene que verificar es el puerto presente el el pc, los mas conocidos son 3bch, 278h y 378h, esto lo puedes averiguar utilizando el MSD del DOS. En assembler: **Describire lo que hace el programa: Nota: Como se habra notado el programa acepta todo tipo de datos,pero el que lo desee probar debera hacerlo solo con numeros.Este programa lo he empledo para ver lo que envio y comprobar si es el dato que encuentro a la salida, y ¿como?, facil coloquen un led ala salida de de cada uno de los pines que conforman el bus de datos de la impresora y verifiquen. Codigo segmentEN C++ |