Ver Mensaje Individual
  #1  
Antiguo 10-06-2012
xndr3sjr xndr3sjr is offline
Registrado
NULL
 
Registrado: may 2012
Posts: 1
Reputación: 0
xndr3sjr Va por buen camino
Ayuda con angulos motor a pasos

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

Código:
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
Responder Con Cita