• Martes 21 de Mayo de 2024, 01:45

Autor Tema:  Comunicacion A Puerto Paralelo.  (Leído 1925 veces)

Tomy

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Comunicacion A Puerto Paralelo.
« en: Jueves 26 de Febrero de 2004, 21:13 »
0
Hola:

Necesito un programa o instrucciones para  recibir y enviar informacion a la PC, todo esto porque necesito saber como accionar un programa por medio de un dispositivo que sera conectado al puerto paralelo.

Atte.
         Tomm       :hola:

karen81

  • Miembro MUY activo
  • ***
  • Mensajes: 119
    • Ver Perfil
Re: Comunicacion A Puerto Paralelo.
« Respuesta #1 en: Viernes 27 de Febrero de 2004, 20:17 »
0
:) el puerto paralelo esta dividido en 3 direcciones
0378   salida de 8 bits de datos
0379   entrada de 5 bits
037a   entrada  o salida de 4 bits

En el registro DX se coloca la direccion del puerto  y en el registro AL el dato que se quiere enviar (si estamos recibiendo en AL se guarda el dato recibido)"ESTO ES ASI SIEMPRE SIN EXCEPCION", asi si tu tienes los datos que quieres enviar de la direccion 0500 a la 0600
tienes que hacer lo siguiente

     mov bx,0500 ;cargas en bx la direccion inicial
ot: mov al,[bx]   ;guardas en AL lo que tiene adentro de la 0500 (dato a  enviar)
     mov dx,0378 ;pones la direccion del puerto (salida)
     out dx,al       ;sacas el dato por el puerto de salida
     mov cx,00fff ;esto es un retraso que colocamos para darle tiempo
at  loop at          ; al receptor de recibir el dato
     inc bx           ;incrementamos bx para pasarnos a la siguiente direccion
     cmp bx,0600 ;verificamos si ya enviamos todos los caracteres que estaban
                        ; en la 0500 a la 0600
     jnz ot           ; si no es asi nos vamos a ot (seguimos enviando)
int 20                ;fin del programa


ahora si quieres  recibir tienes que hacer lo siguiente

mov dx,0379; direccion del puerto que funciona como entrada
in al,dx ; guardas en AL el dato recibido
pero esto es si los datos que vas a recibir son solo de 4 bits, si son de ocho tienes que hacer otro paso mas
mov dx,037a
in al,dx ;con esto capturas los otros cuatro bits
No basta tener buen ingenio; lo principal es aplicarlo bien.

Alfil de Hierro

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Comunicacion A Puerto Paralelo.
« Respuesta #2 en: Viernes 4 de Junio de 2004, 00:08 »
0
:comp: Hi Karen....

Que buena respuesta, pero tengo una duda sobre la dirección,¿funciona en todos la equipos de pc?. Que tal esta.

mov ax, 0040h {Colocar 0040h en el reg. Ax}

mov es, ax {Direccionar el segmento es con el valor de ax}

mov ax, es:[si] {Colocar en ax el contenido de la dirección de memoria [0040:0008]}

mov base, ax; {Actualizar la variable base con el valor de ax}

 :kicking: Recuerda que base debe estar en el SEGMENT Data


mov dx, base {Direccionar en dx la dirección base}
mov al, 5 {Colocar en ² al ² el número 5}
out dx, al {Enviar al puerto}


mov dx, dir_estado {Direccionar dx con el registro de estado del puerto o base+2 para transmitir nibles( 4 bytes )}
in al, dx {Leer del puerto. En el registro ² al ² está el dato leído}


 :devil: Me encanta ¡Espero que les sirva de mucho!

karen81

  • Miembro MUY activo
  • ***
  • Mensajes: 119
    • Ver Perfil
Re: Comunicacion A Puerto Paralelo.
« Respuesta #3 en: Sábado 5 de Junio de 2004, 22:06 »
0
:(  la verdad no estoy segura si la direccion es la misma en todas las Pc pero creo que no, en las computadoras que yo usaba en mi lugar de estudio nos dijeron que esas eran las direcciones. voy a averiguar bien y te aviso  :hola:
No basta tener buen ingenio; lo principal es aplicarlo bien.