当前位置:文档之家› 步进电机启动停止正反转控制程序的汇编语言的实现

步进电机启动停止正反转控制程序的汇编语言的实现

DELAY 1MS MACRO TIME ;延时宏命令
LOCAL AA
LOCAL BB
PUSH CX
MOV CX,TIME
AA: PUSH CX
MOV CX,1000
BB: NOP
LOOP BB
POP CX
LOOP AA
POP CX
ENDM
DATA SEGMENT
TABA DB 01H,03H,02H,06H,04H,05H;正转的模型
TABB DB 05H,04H,06H,02H,03H,01H;反转的模型DATA ENDS
CODE SEGMENT
ZZ PROC NEAR
PUSH DS
MOV AX,DATA
MOV DS,AX
MOV AX,0
PUSH AX
MOV DX,203H
MOV AL,80H
OUT DX,AL ;8255的控制字设定
MOV DX,200H
MOV AL,0
OUT DX,AL ;先输出制动命令
MOV CX,360 ;设定正转步数
DD: MOV BL,6 ;六拍
MOV DX,200H
LEA DI,TABA ;指针指向正转的数字模型
CC: MOV AL,[DI]
OUT DX,AL
DELAY 1MS 10
INC DI ;指针加1,指向下一步的数字模型
DEC BL ;拍数减1
JNZ CC ;六拍未结束,则继续循环
LOOP DD;360个周期的六拍未结束,继续循环
ZZ ENDP
FZ PROC NEAR
MOV CX,400 ;设定反转步数
FF: MOV BL,6
MOV DX,200H
LEA DI,TABB ;指针指向反转的数字模型
EE: MOV AL,[DI]
OUT DX,AL
DELAY 1MS 10
DEC DI ;指针减1,指向反转下一步数字模型
DEC BL
JNZ EE
LOOP FF
FZ ENDP
MOV DX,200H
MOV AL,0
OUT DX,AL ;结束后,输出制动命令
RET
MAIN ENDP
CODE ENDS
END START。

相关主题