SoloCodigo

Programación General => ASM (Ensamblador) => Mensaje iniciado por: cahp21 en Martes 8 de Marzo de 2005, 16:54

Título: Puerto Paralelo
Publicado por: cahp21 en Martes 8 de Marzo de 2005, 16:54
Hola a todos :alien:  mi problema es que tengo un curso nuevo, en el que se ve el codigo assembler y no lo conosco mucho  :blink:  y tengo que hacer un programa que mande una salida al puerto paralelo segun las teclas de direccion del teclado hacia un circuito que encienda unos led.

  Es decir si oprimo la tecla de flecha hacia la derecha --> los led se tienen que encender hacia la derecha.   si oprimo hacia la Izquierda  <-- los led se encienden hacia la izquierda  :comp: .

   les agradeceria si me ayudan con mi problema, se los agradeceria mucho.  Gracias
Título: Re: Puerto Paralelo
Publicado por: ArKaNtOs en Martes 8 de Marzo de 2005, 18:11
hola primero que nada solo debes verificar que tecla es, no me acuerdo q valor hexa es para derecha o izq, pero porque no lo pruebas con la funcion 0 de la int 16 yverificas que valor tiene :) ahora para dar salida por el puerto lo haces de la siguiente manera: (esta es una macro que hice)
Código: Text
  1.  
  2. enviadatos macro tecla
  3.  
  4.   MOV DX,378
  5.   MOV AX,[tecla]
  6.   OUT DX,AX
  7.  
  8. endm
  9.  

espero haberte ayudado en algo, bye ;)  :kicking:
Título: Re: Puerto Paralelo
Publicado por: Sr. ASM en Jueves 30 de Junio de 2005, 03:43
Que tal cahp21:
Deberias utilizar retardos, y la sentencia que ArKaNtOs puso,
añadiendo los siguientes detalles a su codigo

 MOV DX,378H ; ya que es una direccion representada en hex
  MOV AL,[tecla]; el 378h tiene un bus de datos del tamaño de un byte
  OUT DX,AL

Saludos
Título: Re: Puerto Paralelo
Publicado por: _HEAVY_ en Sábado 23 de Julio de 2005, 01:26
Para u pregunta de la flechas <-- y --> en ensamblador no lo he probado, pero en C la flechas ponen dos valores en el buffer del teclado Y y X

si Y=224 y

si X=75 <--
si X=77 -->
si X=80 (abajo)
si X=72 (arriba)
si X=133 F11
si x=134 F12


si Y=0

si X =59 F1
   .
   .
   .
si X=68 F10


Espero que te sirva de algo