Programación General > ASM (Ensamblador)
duda en el puerto paralelo
betoelectronico:
buenas...!soy nuevo en este foro. La verdad tengo un problema con un programa que estoy armando para un trabajo de la universidad .Queria hacer un miniascensor controlado por puerto paralelo y usando el lenguaje asm.
*las teclas 1 , 2 y 3 indicara los pisos a donde se movera el ascensor.
* 3 pulsadores simularan la sensores de ubicacion del ascensor y dicha señal sera enviada a la entradas del puerto paralelo.
*el puerto paralelo enviara señales de salida para hacer girar un motor hacia arriba o hacia abajo.
cuando aprieto la tecla uno..el puerto paralelo me envia la señal de salida hasta el motor y lo hace funcionar hasta que el interruptor del piso 1 se activa.ahi vamos bien.
Pero, Cuando aprieto el numero 3 para llevar el ascensor hasta el tercer piso, no hace lo mismo. porquee?? alguien me podria dar una mano en el programa? y me dice en que me estoy equivocando?
desde ya gracias:!
Eternal Idol:
¿Lo depuraste?
--- Código: ASM ---inicio1: mov ah,08h int 21h cmp al,'0' je fin cmp al,'1' je inicio2 jmp inicio_1
Si es 0 termina (salta a fin), si es uno va a inicio2 y sino va a inicio1.
Toph:
--- Cita de: "betoelectronico" ---buenas...!soy nuevo en este foro. La verdad tengo un problema con un programa que estoy armando para un trabajo de la universidad .Queria hacer un miniascensor controlado por puerto paralelo y usando el lenguaje asm.
*las teclas 1 , 2 y 3 indicara los pisos a donde se movera el ascensor.
* 3 pulsadores simularan la sensores de ubicacion del ascensor y dicha señal sera enviada a la entradas del puerto paralelo.
*el puerto paralelo enviara señales de salida para hacer girar un motor hacia arriba o hacia abajo.
cuando aprieto la tecla uno..el puerto paralelo me envia la señal de salida hasta el motor y lo hace funcionar hasta que el interruptor del piso 1 se activa.ahi vamos bien.
Pero, Cuando aprieto el numero 3 para llevar el ascensor hasta el tercer piso, no hace lo mismo. porquee?? alguien me podria dar una mano en el programa? y me dice en que me estoy equivocando?
desde ya gracias:!
--- Fin de la cita ---
:huh: Pues si seleccionas "3" va a inicio_1 donde esta otra rutina donde se espera que el usuario presione otra tecla, ¿eso es lo que quieres que si va para el piso 3 tenga que presionar dos veces tres?, si es asi al presionar "3" de nuevo, aparentemente funcionara porque manda un dato al puerto, espera ,revisa si ya esta apaga y espera tal cual se hizo cuando se seleccionaba el piso "1".
Eternal Idol:
¿A quien se le ocurre poner etiquetas llamadas inicio1 e inicio_1? En fin, ILEGIBLE.
betoelectronico:
Gracias amigos, por su pronta respuesta. Probando asi como esta el programa, cuando aprieto el 1 (desde el teclado), el puerto paralelo me envia `la corriente de salida para hacer funcionar el motor ,hasta que el pulsador (del piso 1) se activa.En este momento el puerto paralelo deja de 'mandar'corriente y el motor deja de funcionar. hasta ahi vamos bien.
Pero cuando aprieto el numero 3 del teclado, el puerto paralelo me envia corriente solamente si mantengo apretado dicha tecla. La idea es que apriete una sola vez y el puerto paralelo me envie a la salida el hexadecimal 22h hasta que el pulsador (del piso 3) se active.
programa:
inicio1:
mov ah,08h ;habilito el teclado
int 21h
cmp al,'0' ; compara con '0'
je fin ;si la entrada en el teclado es '0' ..salgo del programa
cmp al,'1' ; compara con 1
je inicio2 ; si es igual a 1 salta a inicio2 ,en esa etiqueta envia el 21h a la salida hasta q se activa el pulsador1
jmp inicio_1 ; si no es igual a 1,va hasta etiqueta inicio_1 para preguntar si el numero ingresado fue 3.
En el caso que quiera depurarlo, como hago??Yo pienso que hay algun paso que me estoy salteando. :(
En cuanto a los nombres de la etiquetas..lo usabamos en clases. Fue idea de mi profesor :P
espero sus respuestass
Navegación
[#] Página Siguiente
Ir a la versión completa