资源描述
考试序列号 08
论文题目: 步进电机角度控制(2)
课程名称: 微型计算机控制技术
学 院 自动化
专业班级 10
学 号 3
姓 名
联系方式
任课教师
2013年 6 月 25 日
程序设计流程图
N
Y
N
Y
驱动电机
反转
正转
控制键输入
Start置位
CLR置位
CLR置位
数字输入
显示
电机
工作?
输入?
键盘扫描
初始化
开始
源程序:
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN:
-------------------初始化--------------------
MOV 50H,#00H ;角度个位
MOV 51H,#00H ;角度十位
MOV 52H,#00H ;角度百位
MOV 53H,#00H ;转次数
MOV 54H,#00H ;START标志位
MOV 55H,#00H ;CLR标志位
MOV 56H,#00H
MOV 57H,#00H ;正反转标志位
MOV 58H,#01H ;前后4拍标志位
MOV 59H,#00H ; 存放转的步数
MOV 60H,#00H ;角度个位
MOV 61H,#00H ;角度十位
MOV 62H,#00H ;角度百位
MOV 63H,#00H ;转次数
MOV DPTR,#7F03H
MOV A,#81H
MOVX @DPTR,A
BEGIN: MOV DPTR,#7F01H ;键盘检测
MOV A,#00H
MOVX @DPTR,A
MOV DPTR,#7F02H
MOVX A,@DPTR
ANL A,#0FH
CJNE A,#0FH,INK1
MOV A,54H ;电机运动及正反转判断
CJNE A,#01H,TEST1 ;START=0跳
MOV A,55H
CJNE A,#01H ,ZHENG ;CLR=0跳
AJMP NT ;跳去显示
TEST1: MOVA,55H ;start=0
CJNE A,#01H,NT ;跳去显示
FAN: MOV 57H,#00H ;给个反转标志
LCALL BJF
AJMP BEGIN
ZHENG: MOV 57H,#01H ;给个正传标志
ACALL BJZ
NT: ACALL DIS
AJMP BEGIN
---------------------键盘扫描程序----------
INK1: ACALL DL1MS
MOV DPTR,#7F02H
MOVX A,@DPTR
ANL A,#0FH
CJNE A,#0FH,INK2
AJMP BEGIN
INK2: MOV DPTR,#7F01H
MOV A,#0FEH
RL A
RL A
MOVX @DPTR,A
MOV DPTR,#7F02H
MOVX A,@DPTR
JNB ACC.1,KEY2
JNB ACC.2,KEY4
MOV DPTR,#7F01H
MOV A,#0FDH
RL A
RL A
MOVX @DPTR,A
MOV DPTR,#7F02H
MOVX A,@DPTR
JNB ACC.1,KEYCLR
JNB ACC.2,KEYSET
MOV DPTR,#7F01H
MOV A,#0FBH
RL A
RL A
MOVX @DPTR,A
MOV DPTR,#7F02H
MOVX A,@DPTR
JNB ACC.1,KEY5
JNB ACC.2,KEYSTART
MOV DPTR,#7F01H
MOV A,#0F7H
RL A
RL A
MOVX @DPTR,A
MOV DPTR,#7F02H
MOVX A,@DPTR
JNB ACC.1,KEY7
JNB ACC.2,KEY0
LJMP STTK
KEY2: MOV A,#02H
ACALL PUTBUF
ACALL DIS
LJMP STTK
KEY4: MOV A,#04H
ACALL PUTBUF
ACALL DIS
LJMP STTK
KEYCLR: MOV 54H,#00H
LJMP STTK
KEYSET: MOV 60H,50H
MOV 61H,51H
MOV 62H,52H
MOV 63H,53H
MOV 50H,#00H
MOV 51H,#00H
MOV 52H,#00H
MOV 53H,#00H
LJMP STTK
KEY5: MOV A,#05H
ACALL PUTBUF
ACALL DIS
LJMP STTK
KEYSTART:MOV 54H,#01H
LJMP STTK
KEY7: MOV A,#07H
ACALL PUTBUF
ACALL DIS
LJMP STTK
KEY0: MOV A,#00H
ACALL PUTBUF
ACALL DIS
LJMP STTK
------------显示左移------------------
PUTBUF:PUSH 00H
PUSH ACC
MOV R1,#3
MOV R0,#52H
PUTBUF0:MOV A,@R0
INC R0
MOV @R0,A
DEC R0
DEC R0
DJNZ R1,PUTBUF0
POP ACC
MOV 50H,A
POP 00H
RET
---------------显示子程序----------------------
DIS: PUSH ACC
PUSH 00H
PUSH 03H
MOV R0,#50H
MOV R3,#0F7H
AA2: MOV A,@R0
MOV DPTR,#A1
MOVC A,@A+DPTR
MOV DPTR,#7F00H
MOVX @DPTR,A
MOV DPTR,#7F01H
MOV A,R3
RL A
RL A
MOVX @DPTR,A
ACALL DL1MS
MOV A,R3
JNB ACC.0,AA3
RR A
MOV R3,A
INC R0
AJMP AA2
AA3:POP 03H
POP 00H
POP ACC
RET
STTK:ACALL DIS
MOV DPTR,#7F01H
MOV A,#00H
MOVX @DPTR,A
MOV DPTR,#7F02H
MOVX A,@DPTR
ANL A,#0FH
CJNE A,#0FH,STTK
AJMP BEGIN
A1:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
DL1MS:MOV R7,#02H
DL0: MOV R6,#0FFH
DL1: DJNZ R6,DL1
DJNZ R7,DL0
RET
-------------步进电机正转---------------
BJZ: MOV 57H,#01H ;正转标志
ACALL BJ1
MOV 40H , 50H
MOV 41H , 51H
MOV 42H , 52H
MOV 43H , 53H
MOV 50H , 60H
MOV 51H , 61H
MOV 52H , 62H
MOV 53H ,63H
MOV 57H,#01H ;;正转标志
ACALL BJ1
MOV 54H,#01H
MOV 55H,#01H
RET
-------------------步进电机反转-----------------
BJF: MOV 57H,#00H ;反转标志
ACALL BJ1
MOV 60H,#00H
MOV 61H,#00H
MOV 62H,#00H
MOV 63H,#00H
MOV 50H, 40H
MOV 51H, 41H
MOV 52H, 42H
MOV 53H, 43H
MOV 57H,#00H ;反转标志
ACALL BJ1
MOV 50H,#00H
MOV 51H,#00H
MOV 52H,#00H
MOV 53H,#00H
MOV 54H,#00H
MOV 55H,#00H
RET
---------------步进电机转动子程序--------------
BJ1: PUSH 03H
;转动角数据处理
MOV R0,#52H ;百位
MOV A,@R0
MOV B,#6H ;100=15*6+10
CLR C
MUL AB
MOV R1,A ;n次15的一个分量
MOV R0,#51H ;十位
MOV A,@R0
ADD A,52H
MOV B,#0AH
CLR C
MUL AB
MOV R0,#50H ;个位
ADD A,@R0;将个位和十位和陈一个数
MOV B,#0FH
CLR C
DIV AB
ADD A,R1 ;要转A次15°
MOV 59H,A ;
MOV R0,53H
MOV 56H,53H
MOV A,R0
CJNE A,#00H,AAA4
MOV 54H,#00H
MOV 55H,#00H
AJMP BACK
AAA4: MOV R5,53H
AAA3:MOV R1,59H ;转R1次*15
AAA2:MOV R0,#04H ;步距4拍
MOV A,57H
CJNE A,#01H,FZ
MOV A,58H
CJNE A,#01H,ZX
MOV DPTR,#L1 ;前4拍
CPL A MOV 58H,A ;标志位区反
AJMP AAA1
ZX: MOV DPTR,#L2 ;后4拍
CPL A
MOV 58H,A
AJMP AAA1
FZ: MOV A,58H
CJNE A,#01H,FX
MOV DPTR,#L3 ;前4拍
CPL A
MOV 58H,A ;标志位区反
AJMP AAA1
FX: MOV DPTR,#L4 ;后4拍
CPL A
MOV 58H,A
AAA1:MOV A,#00H
MOVC A,@A+DPTR
RL A
MOV P1,A
ACALL DL1M
INC DPTR
PUSH DPH
PUSH DPL
DEC R5
MOV 53H,R5
ACALL DIS
INC R5
POP DPL
POP DPH
DJNZ R0,AAA1
DJNZ R1,AAA2
ACALL DL2MS
DJNZ R5,AAA3
MOV 53H,56H
BACK: POP 03H
RET
L1:DB 01H,03H,02H,06H
L2:DB 04H,0CH,08H,09H
L3:DB 09H,08H,0CH,04H
L4:DB 06H,02H,03H,01H
DL1M:MOV R7,#05H
DL2:MOV R6,#0FFH
DL3:DJNZ R6,DL3
DJNZ R7,DL2
RET
DL2MS:MOV R7,#0FFH
DL4:MOV R6,#0FFH
DL5:DJNZ R6,DL5
DJNZ R7,DL4
RET
END
展开阅读全文