步进电机控制(汇编)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN:SETB P2.4 //启停键
SETB P2.5 //正反
SETB P2.6 //加速
SETB P2.7 //减速
MOV R0,#0 //启停标志
MOV R1,#0 //正反标志
MOV R7,#0 //速度控制及查表
MOV R3,#0 //查表
STA:
JNB P2.4,YS1 //启停键按下,跳至防抖
LJMP PDR0 //判断R0奇偶性
SS:INC R0 //R0+1
LJMP PDR0 //判断R0奇偶性
START:
JNB P2.5,YS2 //正反键按下,跳至防抖
LJMP PDR1 //判断R1奇偶性
TT:INC R1
LJMP PDR1 //判断R1奇偶性FAN:CJNE R3,#09H,PDR3F //反转
FANZ:
MOV R3,#09H //反转查表初始化
LJMP XX //跳至判断加减速
ZHENG:CJNE R3,#8,PDR3Z //正转
ZHENGZ: MOV R3,#0 //正转查表初始化
XX:
JNB P2.6,YS3 //加速判断,P2.6=0跳至防抖JNB P2.7,YS4 //减速判断,P2.7=0跳至防抖
CS: CJNE R7,#0,XIANSHI //速度显示初始化CSZT:MOV R7,#5 //速度显示保护,初始状态LJMP XIANSHI
YY:MOV R2,#1 //加速标志
LJMP GZZT
ZZ:MOV R2,#2 //减速标志
GZZT:CJNE R2,#1,JIANSU //加减速工作
DEC R7
CJNE R7,#0,XIANSHI //速度显示保护,减速
LJMP CSZT
JIANSU:
INC R7
CJNE R7,#10,XIANSHI //速度显示保护,加速LJMP CSZT
XIANSHI: //显示及输出
MOV DPTR,#TABLE
MOV A,R7
ADD A,#12H
MOVC A,@A+DPTR
MOV P0,A //速度等级显示
MOV A,R3
MOVC A,@A+DPTR
JZ STA
MOV P1,A //P1.0--P1.3输出步进电机控制脉冲
MOV A,R7
MOV R6,A
LCALL DELAY //速度控制
MOV A,R6
MOV R7,A
INC R3
LJMP STA
YS1:LCALL DL10mS //启停防抖
JNB P2.4, YS1
LJMP SS
YS2:LCALL DL10mS //正反转防抖
JNB P2.5, YS2
LJMP TT
YS3:LCALL DL10mS //加速位防抖
JNB P2.6, YS3
LJMP YY
YS4:LCALL DL10mS //减速位防抖
JNB P2.7, YS4
LJMP ZZ
PDR1:MOV A,#01H //正反转判断,R1为奇数反转ANL A,R1
JZ ZHENG
LJMP FAN
PDR3F : JC FANZ //反转查表判断
CJNE R3,#11H,XX
MOV R3,#0AH
LJMP XX
PDR3Z : JNC ZHENGZ
JC XX
PDR0:MOV A,#01H //启停标志判断
ANL A,R0
JZ CSH
LJMP START
CSH:MOV P0,#0C0H //初始化
MOV P1,#0
LJMP MAIN
DELAY: //步进电机步间延时速度控制M3: MOV R5,#5
M2: MOV R4,#100
DJNZ R4,$
DJNZ R5,M2
DJNZ R7,M3
RET
DL10mS:MOV R5,#25 //防抖延时
DL4: MOV R4,#198
DL5: DJNZ R4,DL5
DJNZ R5,DL4
RET
TABLE:
DB 01H,03H,02H,06H,04H,0CH,08H,09H // 正转表
DB 00H // 正转结束
DB 08H,0CH,04H,06H,02H,03H,01H,09H // 反转表
DB 00H // 反转结束
DB 0xc0,0x90,0x80,0xf8,0x82,0x92,0x99,0xb0,0xa4,0xf9,0xc0 //共阳数码管0,1~9,0 END