步进电机启动停止正反转控制程序的汇编语言的实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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