📄 步进电机控制(点动正停反用).lt
字号:
1 ORG 50H
0050 7C05 2 L0: MOV R4,#05H ;五圈为5
0052 759000 3 MOV P1,#0H
0055 30B40E 4 JNB P3.4,LOOP ;如果P3.4按下转
0058 020050 5 LJMP L0 ;
005B 7C05 6 L1: MOV R4,#05H ;五圈为5
005D 759000 7 MOV P1,#0H
0060 1200B5 8 LCALL DELY1 ;延时一段时间
0063 020089 9 LJMP LOOP1 ;
0066 0C 10 LOOP: INC R4 ;
0067 EC 11 MOV A,R4
0068 60F1 12 JZ L1 ;
006A 7BFF 13 MOV R3,#0FFH ;30H送FF即-1
006C 0B 14 MAIN: INC R3
006D EB 15 MOV A,R3
006E 9000A1 16 TT: MOV DPTR,#TAB
0071 93 17 MOVC A,@A+DPTR
0072 F590 18 MOV P1,A ;输出
0074 1200A9 19 LCALL DELAY ;延时一段时间
0077 B408F2 20 CJNE A,#08H,MAIN ;是最后数重新开始
007A 020066 21 LJMP LOOP ;否则R3 清除
007D 22 22 RET
007E 7C05 23 L2: MOV R4,#05H ;五圈为5
0080 759000 24 MOV P1,#0H
0083 1200B5 25 LCALL DELY1 ;延时一段时间
0086 020066 26 LJMP LOOP ;
0089 0C 27 LOOP1: INC R4 ;
008A EC 28 MOV A,R4
008B 60F1 29 JZ L2 ;
008D 7BFF 30 MOV R3,#0FFH ;30H送FF即-1
008F 0B 31 MAIN1: INC R3
0090 EB 32 MOV A,R3
0091 9000A5 33 TT1: MOV DPTR,#TAB1
0094 93 34 MOVC A,@A+DPTR
0095 F590 35 MOV P1,A ;输出
0097 1200A9 36 LCALL DELAY ;延时一段时间
009A B402F2 37 CJNE A,#02H,MAIN1 ;是最后数重新开始
009D 020089 38 LJMP LOOP1 ;否则R3 清除
00A0 22 39 RET
00A1 01020408 40 TAB: DB 01H,02H,04H,08H ;步进电机正转表
00A5 01080402 41 TAB1: DB 01H,08H,04H,02H ;步进电机反转表
42 DELAY: ;延时程序
00A9 30B3A4 43 JNB P3.3,L0 ;如果P3.3按下停
00AC 7D19 44 MOV R5,#25 ;正常为25
00AE 7A19 45 D3: MOV R2,#25 ;正常为25
00B0 DAFE 46 D4: DJNZ R2,D4
00B2 DDFA 47 DJNZ R5,D3
00B4 22 48 RET
00B5 7D32 49 DELY1: MOV R5,#50 ;延时0.5秒程序(100.20.248为一分)
00B7 7E14 50 D2: MOV R6,#20 ;
00B9 7F64 51 D1: MOV R7,#100 ;
00BB DFFE 52 DJNZ R7,$ ;
00BD DEFA 53 DJNZ R6,D1 ;
00BF DDF6 54 DJNZ R5,D2 ;
00C1 22 55 RET
56 END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -