步进电机控制(汇编)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档