PDA

Ver la Versión Completa : Ayuda con angulos motor a pasos


xndr3sjr
10-06-2012, 00:33:56
Hola buenas tardes, nomas aqui preguntando como hacer una macro que me ayude nomas a controlar angulos como que recorra nomas los pasos necesarios para 90° o 180° de un motor a pasos unipolar les voy a dejar el codigo que me pasaron. Para si me pueden ayudar con la macro. les agradeceria la ayuda me urge

page 58,112

include MACROS.txt

DURACION2 MACRO DECIMAS
PUSHA
MOV AX,decimas
Ciclo3:
MOV BX,2950
Ciclo4:
MOV CX,65535
Ciclo5:
DEC CX
JNE Ciclo5
DEC BX
JNE Ciclo4
DEC AX
JNE Ciclo3
POPA
ENDM

DURACION3 MACRO DECIMAS
PUSHA
MOV AX,decimas
Ciclo6:
MOV BX,2950
Ciclo7:
MOV CX,65535
Ciclo8:
DEC CX
JNE Ciclo8
DEC BX
JNE Ciclo7
DEC AX
JNE Ciclo6
POPA
ENDM

DURACION4 MACRO DECIMAS
PUSHA
MOV AX,decimas
Ciclo00:
MOV BX,2950
Ciclo11:
MOV CX,65535
Ciclo22:
DEC CX
JNE Ciclo22
DEC BX
JNE Ciclo11
DEC AX
JNE Ciclo00
POPA
ENDM


ENVIAR1 MACRO
PUSHA
MOV AX,1 ;guardas en AL (dato a enviar)
MOV DX,0378H ;pones la direccion del puerto (salida)
OUT DX,AL
ENDM

ENVIAR2 MACRO
PUSHA
MOV AX,2 ;guardas en AL (dato a enviar)
MOV DX,0378H ;pones la direccion del puerto (salida)
OUT DX,AL ;sacas el dato por el puerto de salida
POPA
ENDM

ENVIAR3 MACRO
PUSHA
MOV AX,4 ;guardas en AL (dato a enviar)
MOV DX,0378H ;pones la direccion del puerto (salida)
OUT DX,AL ;sacas el dato por el puerto de salida
POPA
ENDM

ENVIAR4 MACRO
PUSHA
MOV AX,8 ;guardas en AL (dato a enviar)
MOV DX,0378H ;pones la direccion del puerto (salida)
OUT DX,AL ;sacas el dato por el puerto de salida
POPA
ENDM



pila segment stack
DW 64 DUP(?)
pila ENDS
datos SEGMENT
CADENA DB "ENVIADO 1", 13, 10, "$"
CADENA2 DB "ENVIADO 2", 13, 10,"$"
CADENA3 DB "ENVIADO 4", 13, 10,"$"
CADENA4 DB "ENVIADO 8", 13, 10,"$"
DECIMAS DW 5
datos ENDS

CODE SEGMENT
ASSUME CS:CODE, DS:datos,SS:pila

INICIO:


MOV CX,5 ;65535 ES EL NUMERO MAS GRANDE QUE LE CABE A UN REGISTRO
;MOV [DECIMAS],3

mylabel:
ENVIAR1
MOV BX,19H
MOV AX, DATOS
MOV DS, AX
MOV DX, OFFSET CADENA
MOV AH, 09H
INT 21H

DURACION DECIMAS
ENVIAR2
MOV BX,19H
MOV AX, DATOS
MOV DS, AX
MOV DX, OFFSET CADENA2
MOV AH, 09H
INT 21H

JMP MYLABEL2
MYLABEL3:
LOOP mylabel

MYLABEL2:
DURACION2 DECIMAS
ENVIAR3
MOV BX,19H
MOV AX, DATOS
MOV DS, AX
MOV DX, OFFSET CADENA3
MOV AH, 09H
INT 21H

DURACION3 DECIMAS
ENVIAR4
MOV BX,19H
MOV AX, DATOS
MOV DS, AX
MOV DX, OFFSET CADENA4
MOV AH, 09H
INT 21H

DURACION4 DECIMAS
JMP MYLABEL3

MOV AH,4CH
INT 21H
int 20 ;fin del programa


CODE ENDS

END INICIO

Ñuño Martínez
14-06-2012, 14:29:20
Hola xndr3sjr, ¿leíste la Guía de estilo (http://clubdelphi.com/foros/guiaestilo.php)?

Lo cierto es que nos faltan muchos datos para poder responderte. Por ejemplo, ¿qué microprocesador es? ¿Y qué tipo de motor? ¿Cuáles son las especificaciones? ¿Cómo se conecta? ¿Necesita algún controlador, o se hace directamente?