Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-03-2009
yelian yelian is offline
No confirmado
 
Registrado: nov 2007
Ubicación: Cuba
Posts: 81
Poder: 0
yelian Va por buen camino
Exclamation

Gracias a todas sus respuestas, pero aber si entiendo un poco de todos esos numeros, en generar no se puede activar y desactivar un puerto por separado,
por ejemplo yo pongo :
MOV AX,3 // bit que se quiere utilizar en mi caso el bit 3
MOV DX,378H // puerto paralelo 378h
OUT DX,AX // damos salida lo que tenga AX en mi caso es 3 bit a DX que es el puerto 378h
y lo que me hace es como dice escafandra me activa el ping de salida 2-3 pero yo no quisiera hacer eso, yo quisiera controlar los pines por separados, por que en el ping 2 quiciera poner un motor, en el 3 un bombillo, el 4 un Extractor, etc
Pero quisiera encender y apagar cada uno por separado, no que para poder apagar uno tenga que apagarlos todos ni que cuando enciendo el 2 se encienda tambien el 3, quisiera hacerlo todo por separado, que numeros de bit tendria que poner para logar todo eso...

(Se que para conectar todo eso a la PC tengo que poner un circuito electronico con transistores y relay.)

Les agrdeseria toda la ayuda pocible ...

[Saludos]...
Responder Con Cita
  #2  
Antiguo 09-03-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.210
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
yelian, No es complicado. El número 3 en binario es 0000 0011b esto quiere decir que de activan dos pines, pues dos están a "1".

Si quieres activar uno solo, pues pon a uno un sólo bit, es decir potencias enteras de 2.

Si quieres activar de forma combinada pues es fácil, realizar una operación or binaria.

Pin2 activo: 0000 0001 = 1
Pin3 activo: 0000 0010 = 2
Pin4 activo: 0000 0100 = 4
Pin5 activo: 0000 1000 = 8
...........

Si queremos activar el pin2 y el 3:
Pin2 | Pin3, es decir 1 | 2, es decir 0000 0011.

Así con cualquier pin o combinación.

Fácil, ¿no?

Saludos.
Responder Con Cita
  #3  
Antiguo 10-03-2009
yelian yelian is offline
No confirmado
 
Registrado: nov 2007
Ubicación: Cuba
Posts: 81
Poder: 0
yelian Va por buen camino
Gracias escafandra;

Por Favor pudieras continuar la Tablita que pusistes:

Pin2 activo: 0000 0001 = 1
Pin3 activo: 0000 0010 = 2
Pin4 activo: 0000 0100 = 4
Pin5 activo: 0000 1000 = 8

-Aaaaaaa
Probe el codigo de Ensamble con los numeros que me distes y me funciona bien pero hace una cosa que no gusta es que cuando enciendo el ping 2, se enciende bien pero cuando enciendo el ping 3 se enciende, pero me apaga el 2 me gustaria que trabajaran individual...

[Saludos]...
Responder Con Cita
  #4  
Antiguo 10-03-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.210
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
yelian, esto es binario puro.

Como dice el chiste, existen 10 tipos de personas, las que saben binario y las que no.
Bueno, la tablita es así:
Pin2 activo: 0000 0001 = 1
Pin3 activo: 0000 0010 = 2
Pin4 activo: 0000 0100 = 4
Pin5 activo: 0000 1000 = 8
Pin6 activo: 0001 0000 = 16
Pin7 activo: 0010 0000 = 32
Pin8 activo: 0100 0000 = 64
Pin9 activo: 1000 0000 = 128

Esto enciende individualmente cada pin, y por lo tanto apaga todos menos el activo. Todos los que quieras activos deben estar a "1", y los inactivos a "0"

Todos activos sería 1111 1111 en binario es decir 0xFF en hexadecimal ó 255 en decimal.
Para mantenerlos activos a medida que enciendes otro, debes hacer una operación or antes de mandarlo al puerto, con esto pones los "unos" que te interesen.

Saludos.

Última edición por escafandra fecha: 10-03-2009 a las 16:34:14.
Responder Con Cita
  #5  
Antiguo 12-03-2009
yelian yelian is offline
No confirmado
 
Registrado: nov 2007
Ubicación: Cuba
Posts: 81
Poder: 0
yelian Va por buen camino
escafandra me pudiera mostrar un ejemplo como pudiera utilizar el XOR ,
Responder Con Cita
  #6  
Antiguo 12-03-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.210
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Cita:
Empezado por yelian Ver Mensaje
escafandra me pudiera mostrar un ejemplo como pudiera utilizar el XOR ,
El XOR, es un or exclusivo, es decir si un bit de "sólo" uno o del otro operando es uno, entonces el resultado en ese bit es uno. Esta sería la tabla.

xor |0 1
___|____
0 ..|0 1
1 ..|1 0

En C ese operador binario se representa por "^"

Ejemplo:

.........5 = 0101
.........4 = 0100
__________________
5^4 = 1 = 0001

Saludos.
Responder Con Cita
  #7  
Antiguo 12-03-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.210
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Bueno, no se si lo que realmente quieres es el operador XOR o el OR, pero no cuesta trabajo exponer el or:
Basta con que un bit de cualquiera de los dos operandos este a uno para que el resultado en ese bit sea uno.
Esta sería la tabla:

.or |0 1
___|____
0 ..|0 1
1 ..|1 1

En C ese operador binario se representa por "|"

Ejemplo:

.........5 = 0101
.........4 = 0100
__________________
5|4 = .5 = 0101

Saludos.

Última edición por escafandra fecha: 12-03-2009 a las 01:05:26.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Puerto paralelo bactering Varios 8 15-09-2011 07:55:09
PWM con puerto paralelo... emeceuy Varios 5 19-07-2007 20:30:23
Puerto paralelo en C Chase C++ Builder 0 04-07-2005 12:29:37
Puerto Paralelo jorge Lazarus, FreePascal, Kylix, etc. 1 20-04-2005 03:25:42


La franja horaria es GMT +2. Ahora son las 05:20:22.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi