Programación General > ASM (Ensamblador)
Necesito Ayuda Con Lpt Y Assembler
Neopro:
Holas, saben, necesito un codigo de fuente de assembler que maneje el puerto paralelo de la forma que sea, tengo un circuito conectado a este puerto con 6 leds ubicados desde el pin 1 al 6, y conectados con el pin 18 para que exista la posibilidad de encenderlos. Necesito manejar los led's ya sea encenderlos y apagarlos o lo que sea, pero que funcione ojalá en un pentium 3.
Gracias, nos vemos.
karen81:
unos mensajes abajo (buscalo Tommy es el iniciador) he puesto un codigo para comunicarte con el puerto paralelo ya sea enviando y recibiendo datos, en tu caso necesitaras estar enviando los datos como son seis leds tendrias que sacar el numero binario 111111 que en hexadecimal (el que usa el ensamblador) es "3F"
verifica el codigo cualquier duda escribela
:comp: adios
Neopro:
Gracias, tengo otra duda, pero la pondre en otro topico.
Neopro:
Es esta...
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
CUANDO LA PRUEBE TE AVISO SI ME FUNCIONA, ADEMAS QUE HAY PROBLEMAS CON LOS PROCESADORES, ME HAN DICHO QUE LO MEJOR ES UN 486, PERO NADIE LOS TIENE. GRAX.
Super_G:
Aclaracion:
El puerto paralelo maneja maneja 3 registros cada uno de los bits de estos registro se "reflejan" fisicamente en el puerto DB25.
Puerto de datos (Entrada/Salida) de 8bits, dir:378h*
Puerto de Estado(Lectura) 5Bits,
Puerto de control(Escritura) 4Bits.
*No hay problema en leer o escribir datos de 8 Bits!!!!!
Navegación
[#] Página Siguiente
Ir a la versión completa