Buenas, veo que hay mucha gente queriendo programar para hacer aplicaciones con el puerto paralelo y que estan teniendo problemas y muchas dudas en la realizacion de sus proyectos.
Estos problemas se deben a que todavia no estan familiarizados con los sistemas digitales, algo basico como el manejo de CEROS y UNOS es lo que causa problemas. Tambien piensen en la manera en que trabaja una PC, alguien preguntaba por ahi como podia mandar X voltios hacia el paralelo, NO SE PUEDE, son unicamente 2 niveles de voltaje ( +5 V y 0V, no hay mas).
Entonces como recomendacion les propongo antes de postear dudas, busquenlas en el gran GOOGLE, investiguen, sean logicos, traten de hacer las cosas sencillas, a lo que me refiero es que en varios post se menciona:
" Con este numero pones el pin X de LPT a nivel alto "
Es mejor manejar estos numeros decimales en base hexadecimal, veamos como:
Tenemos (en el DataPort) 8 pines que van de D0 hasta D7, osea UN BYTE. Un byte puede tener valores desde 0 hasta 255 en DECIMAL, 00 hasta FF en hexadecimal. Hagamos una peque+a tabla de valores (los que vamos a usar, o si ya manejas el Hexa a la perfeccion hazlo mentalmente):
D7 D6 D5 D4 D3 D2 D1 D0 | Codigo Hexadecimal
0 0 0 0 0 0 0 0 | 00h
0 0 0 0 0 0 0 1 | 01h
.
.
.
0 0 0 1 0 1 0 1 | 15h
Me explico: Con esta "tabla" puedes ver que pines activas y cuales no de manera mas sencilla, una vez que tienes tus datos en bits pasalos a hexadecimal.
Para pasar de Binario a Hexadecimal es muy facil, veamos la siguiente tabla:
BINARIO DECIMAL HEXADECIMAL
0000 0 00h
0001 1 01h
0010 2 02h
0011 3 03h
0100 4 04h
0101 5 05h
0110 6 06h
0111 7 07h
1000 8 08h
1001 9 09h
1010 10 0Ah
1011 11 0Bh
1100 12 0Ch
1101 13 0Dh
1110 14 0Eh
1111 15 0F
Ahora tomamos nuestro numero binario de un byte, pongamos por ejemplo este:
Binario: 1001 0101 (vean como los separo en nibles)
NOTA: 1 nible es un conjunto de 4 bits
Despues vemos nuestra tabla hexadecimal y sustituimos cada nible por su respectivo hexadecimal, asi:
1001 -> 9
0101 -> 5
Nuestro HEXA para el binario 10010101 es un 95h
Otro:
1010 1100 -> ACh
VEN que FACIL!!!!!!!
Y pues este metodo pueden aplicarlo con la cantidad de bits que sean, solo la unica regla es que deben separarse en grupos de 4 bits de derecha a izquierda, asi que cuando se nos ponga enfrente un binario asi:
1000101110101101010111
es mas facil sacar su hexadecimal, es mas, hagamoslo:
(lo separo):
10 0010 1110 1011 0101 0111
(Observen que a la izquierda nos quedaron dos bits, solo se le ponene ceros a la derecha para completar el nible)
Y nos queda como:
22EB57h
Que Facil salio!!!!
Y a la hora de expresarlo ya sea en VB o C seria:
En VB, poner los caracteres ' &H ' y en seguida nuestro numero HEXA, asi:
&H95
&HAC
etc
En C se ponene los caracteres ' 0x ' y a continuacion nuestro numero HEXA,asi:
0x95
0xAC
etc
Todo esto fue para ""despertar"" un poco y para trabajar como debe ser en los Sistemas Digitales como las PC, con puros numeros Hexadecimales, que es mas sencillo que manejar Decimales.
Por ultimo, me despido y espero les sirva esta observacion
Saludos