Programación General > ASM (Ensamblador)

 Com1. Ensamblador

(1/7) > >>

JJFL:
Saludos.

Necesito sacar pulsos de la computadora para mover un carrito con motores stepper,
manejado con el teclado, por el puerto serial com1 en assembler, lo unico que me falta es saber como sacar el pulso, y que se sostenga mientras se mantenga la tecla presionada, por que mi circuito solo necesita dos bits de entrada.

 :comp:

A quien pueda ayudarme, muchas gracias.

Bicholey:
:comp:
Debes usar los servicios de la interrupcion 14 pero creo que no sera tan facil como eso dado que necesitas un interprete que conozca del protocolo de comunicaciones del puerto serial.

checate este link :

http://www.ctyme.com/intr/int-14.htm

Toph:

--- Citar ---Necesito sacar pulsos de la computadora para mover un carrito con motores stepper,
manejado con el teclado, por el puerto serial com1 en assembler, lo unico que me falta es saber como sacar el pulso,
--- Fin de la cita ---

pues para sacar un dato por el puerto serial tienes que hacer lo siguiente:


--- Código: Text ---MOV DX,0000, DX=0 valor para COM1MOV AH,00&#59;funcion 00h-inicializando el puerto serialMOV AL,52&#59; en AL se pone el caracter a ser enviadoINT14       &#59;llamada de servicio del bios  

--- Citar --- y que se sostenga mientras se mantenga la tecla presionada, por que mi circuito solo necesita dos bits de entrada.

--- Fin de la cita ---

con respecto a esto no se me ocurre como :o , porque al enviar el dato por el puerto serial al leerlo tu dispositivo, el dato se borra. talvez se nos ocurra algo si explicas con mas detalle como va a trabajar tu carro.

por cierto solo por curiosidad ¿que controlador estas usando para manejar un motor mediante ordenes enviadas desde un puerto serie?

Bicholey:
:blink:  :blink:  :blink:

MMMMM Dudo mucho que funcione ese codigo ya que para inicializar el puerto se usa en efecto el servicio : AH=0 pero en AL debemos poner los parametros del puerto como por ejemplo velocidad de tranmision, paridad, bit de parada y longitud de la palabra. ahora bien del otro lado debe de haber un dispositivio que interprete el protocolo de comunicaciones del puerto serie y empatado con esta configuracion , para enviar un caracter en efecto se coloca en AL pero se utiliza el servicio AH=0x01 obvio todo de la int 14H y lo que puedes hacer para crear el ciclo puedes usar C++ usar do-while y kbhit(); o bien hacerlo todo con assembler
y un loop pero tambien tendrias que usar los servicios de la int 16H.

Toph:

--- Citar ---ya que para inicializar el puerto se usa en efecto el servicio : AH=0 pero en AL debemos poner los parametros del puerto como por ejemplo velocidad de tranmision, paridad, bit de parada y longitud de la palabra.
--- Fin de la cita ---
 ;) si cometi un error ahi deberia ser funcion 1, me equivoque a la hora de postearlo confundi la funcion para enviar con la de inicializar el puerto realmente queria poner solo la rutina de como enviar por el puerto serial no como configurarlo porque eso se lo dejo a el porque no se como lo necesite,  :o ,  

pero por si acaso aqui dejo como deberia de ser:
configuracion:

--- Código: Text ---MOV AL,F3;(velocidad = 9600, 8 bits de datos, 1 bit de paro, sin paridad)(esto depende como quieras configurar el puerto)MOV DX,0000; determina que se usa el puerto COM1MOV AH,00; inicializa puerto serialINT 14  envio de un dato por el puerto

--- Código: Text --- MOV DX,0000;puerto COM1MOV AH,01&#59; funcion 01h-enviando un caracter al COMMOV AL, 52; caracter a ser enviado  INT 14  

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa