标题: STC15F2K60S2单片机控制步进电机-汇编代码 [打印本页]

作者: un51hei    时间: 2018-7-22 09:25
标题: STC15F2K60S2单片机控制步进电机-汇编代码
使用的单片机型号STC15F2K60S2
利用 P1.0~P1.3 实现步进电机的正转;以及固定的圈数

/* 步进电机程序
ORG  0000H
LJMP  MAIN
ORG  0100H
MAIN:
MOV  SP,#60H
ACALL  DELAY  ;ULN2003 反相
MOV P1,#00H;
SMRUN: ; 电机控制方式为单双八拍
MOV  P1,#08H ;A  1 0 0 0
ACALL  DELAY
MOV  P1,#0CH ;AB 1 1 0 0
ACALL  DELAY
MOV P1,#04H ;B  0 1 0 0
ACALL  DELAY
MOV  P1,#06H ;BC 0 1 1 0
ACALL  DELAY
MOV P1,#02H ;C  0 0 1 0
ACALL  DELAY
MOV  P1,#03H ;CD 0 0 1 1
ACALL  DELAY
MOV  P1,#01H ;D  0 0 0 1
ACALL  DELAY
MOV  P1,#09H ;DA 1 0 0 1
ACALL  DELAY
SJMP  SMRUN ;循环转动
DELAY: ;单步延时程序
NOP ;采用由 STC 给出的 2ms 的延时
NOP
NOP
NOP
PUSH 30H
PUSH 31H
MOV 30H,#18
MOV 31H,#48
NEXT:
DJNZ 31H,NEXT
DJNZ 30H,NEXT
POP 31H
POP 30H
RET
END

/* 步进电机程序 一圈
ORG  0000H
LJMP  MAIN
ORG  0100H
MAIN:
MOV  SP,#60H
MOV R0,#10H;
MOV R1,#20H
ACALL  DELAY  ;ULN2003 反相
MOV P1,#00H;
SMRUN: ; 电机控制方式为单双八拍
MOV  P1,#08H ;A  1 0 0 0
ACALL  DELAY
MOV  P1,#0CH ;AB 1 1 0 0
ACALL  DELAY
MOV P1,#04H ;B  0 1 0 0
ACALL  DELAY
MOV  P1,#06H ;BC 0 1 1 0
ACALL  DELAY
MOV P1,#02H ;C  0 0 1 0
ACALL  DELAY
MOV  P1,#03H ;CD 0 0 1 1
ACALL  DELAY
MOV  P1,#01H ;D  0 0 0 1
ACALL  DELAY
MOV  P1,#09H ;DA 1 0 0 1
ACALL  DELAY
DJNZ R1,SMRUN;
MOV R1,#20H
DJNZ R0,SMRUN;
LJMP STOP; ;循环转动至 4096 个节拍
DELAY: ;单步延时程序
NOP ;采用由 STC 给出的 2ms 的延时
NOP
NOP
NOP
PUSH 30H
PUSH 31H
MOV 30H,#18
MOV 31H,#48
NEXT:
DJNZ 31H,NEXT
DJNZ 30H,NEXT
POP 31H
POP 30H
RET
STOP:
SJMP $;
END







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1