📄 象山步进驱动.lst
字号:
A51 MACRO ASSEMBLER 象山步进驱动 12/14/2006 11:24:36 PAGE 1
MACRO ASSEMBLER A51 V1.10
OBJECT MODULE PLACED IN 象山步进驱动.OBJ
ASSEMBLER INVOKED BY: C:\MANLEY\PMEDWIN\A51.EXE 象山步进驱动.ASM DB
LOC OBJ LINE SOURCE
1 ; AT89C2051步进电机驱动程序
0000 2 ORG 0000H ;程序执行开始地址
0000 020003 3 LJMP START ;跳到标号START执行
0020 4 state EQU 20H
0017 5 xadd equ 17h
0018 6 yadd equ 18h
0010 7 step equ 10h
00E1 8 dogcontr equ 0e1h
00B1 9 p3m0 equ 0b1h
00B2 10 p3m1 equ 0b2h
0091 11 p1m0 equ 91h
0092 12 p1m1 equ 92h
001A 13 dirb bit 26
0003 E5E1 14 START: mov a,dogcontr
0005 20E70B 15 jb acc.7,lppp
0008 E4 16 clr a
0009 F520 17 mov state,a
000B 75B000 18 mov p3,#00h
000E 00 19 nop
000F E5B0 20 mov a,p3
0011 7F00 21 mov r7,#00h
22
0013 7590FE 23 lppp: mov p1,#0feh ;非回位状态和开机时,系统读键
0016 00 24 nop
0017 00 25 nop
0018 E590 26 mov a,p1
001A F4 27 cpl a
001B 540E 28 anl a,#0eh
001D 13 29 rrc a
001E 13 30 rrc a
001F 540F 31 anl a,#0fh
0021 9000D1 32 mov dptr,#tab5
0024 93 33 movc a,@a+dptr
0025 F530 34 mov 30h,a
0027 F536 35 mov 36h,a
0029 753503 36 mov 35h,#03h
002C 751700 37 mov xadd,#00h
002F 751800 38 mov yadd,#00h
39
0032 759100 40 mov p1m0,#00h
0035 759288 41 mov p1m1,#88h
0038 75B100 42 mov p3m0,#00h
003B 75B2FF 43 mov p3m1,#0ffh
44
003E D294 45 main: setb p1.4
0040 D290 46 setb p1.0
0042 D291 47 setb p1.1
0044 00 48 nop
0045 00 49 nop
0046 00 50 nop
0047 A290 51 mov c,p1.0
0049 B3 52 cpl c
004A 9214 53 mov 20,c
004C A291 54 mov c,p1.1
004E B3 55 cpl c
004F 9215 56 mov 21,c
0051 A214 57 mov c,20
0053 B015 58 anl c,/21
A51 MACRO ASSEMBLER 象山步进驱动 12/14/2006 11:24:36 PAGE 2
0055 5002 59 jnc lpp
0057 D21A 60 setb dirb
0059 A215 61 lpp :mov c,21
005B B014 62 anl c,/20
005D 5002 63 jnc lpp1
005F C21A 64 clr dirb
0061 A214 65 lpp1: mov c,20
0063 8215 66 anl c,21
0065 9216 67 mov 22,c
0067 75E13C 68 mov dogcontr,#00111100b
69
006A A294 70 mov c,p1.4 ;clk脉冲上升沿判定
006C 9201 71 mov state.1,c
006E B000 72 anl c,/state.0
0070 B016 73 anl c,/22
0072 5003 74 jnc clklp1
0074 12007E 75 lcall xy
0077 A201 76 clklp1: mov c, state.1 ;clk
0079 9200 77 mov state.0,c
007B 80C1 78 jmp main
007D 22 79 ret
80
007E 1536 81 xy:dec 36h
0080 E536 82 mov a,36h
0082 700B 83 jnz outp3 ;方向判别
0084 853036 84 mov 36h,30h
0087 0517 85 inc xadd
86
0089 DF04 87 djnz r7,outp3
008B 7F06 88 mov r7,#06h
008D 0518 89 inc yadd
90
008F E517 91 outp3:mov a,xadd ;根据当前输出脉冲码地址输出码型
0091 5403 92 anl a,#03h
0093 F517 93 mov xadd,a
0095 9000B8 94 mov dptr,#tab
0098 93 95 movc a,@a+dptr
0099 F9 96 mov r1,a
97
009A E518 98 mov a,yadd ;根据当前输出脉冲码地址输出码型
009C 5403 99 anl a,#03h
009E F518 100 mov yadd,a
00A0 301A02 101 jnb dirb,loop8
00A3 2408 102 add a,#08h
00A5 9000C0 103 loop8: mov dptr,#tab1
00A8 93 104 movc a,@a+dptr
00A9 A2E7 105 mov c,acc.7
00AB 9297 106 mov p1.7,c
00AD A2E6 107 mov c,acc.6
00AF 92E7 108 mov acc.7,c
00B1 59 109 anl a,r1
00B2 F5B0 110 mov p3,a
00B4 B296 111 cpl p1.6
00B6 00 112 nop
00B7 22 113 ret
114
00B8 F3F6FCF9 115 tab : db 11110011b,11110110b,11111100b,11111001b
00BC F3F6FCF9 116 db 11110011b,11110110b,11111100b,11111001b
117
118
00C0 3F6FCF9F 119 tab1: db 00111111b,01101111b,11001111b,10011111b
00C4 3F6FCF9F 120 db 00111111b,01101111b,11001111b,10011111b
121
00C8 3F9FCF6F 122 db 00111111b,10011111b,11001111b,01101111b
00CC 3F9FCF6F 123 db 00111111b,10011111b,11001111b,01101111b
124
A51 MACRO ASSEMBLER 象山步进驱动 12/14/2006 11:24:36 PAGE 3
00D0 00 125 nop
00D1 013B64F0 126 tab5:db 01h,3bh,64h,240d ;细分数16,4,2,1
127
128
00D5 013E 129 jmp main
0200 130 org 200h
0200 00 131 nop
0201 00 132 nop
0202 00 133 nop
0203 013E 134 jmp main
135
0300 136 org 300h
0300 00 137 nop
0301 00 138 nop
0302 00 139 nop
0303 013E 140 jmp main
03F0 141 org 3f0h
03F0 00 142 nop
03F1 00 143 nop
03F2 00 144 nop
03F3 013E 145 jmp main
03F0 146 org 3f0h
03F0 00 147 nop
03F1 00 148 nop
03F2 00 149 nop
03F3 013E 150 jmp main
151
152 end
A51 MACRO ASSEMBLER 象山步进驱动 12/14/2006 11:24:36 PAGE 4
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ACC. . . . . . . . D ADDR 00E0H A
CLKLP1 . . . . . . C ADDR 0077H A
DIRB . . . . . . . B ADDR 0023H.2 A
DOGCONTR . . . . . N NUMB 00E1H A
LOOP8. . . . . . . C ADDR 00A5H A
LPP. . . . . . . . C ADDR 0059H A
LPP1 . . . . . . . C ADDR 0061H A
LPPP . . . . . . . C ADDR 0013H A
MAIN . . . . . . . C ADDR 003EH A
OUTP3. . . . . . . C ADDR 008FH A
P1 . . . . . . . . D ADDR 0090H A
P1M0 . . . . . . . N NUMB 0091H A
P1M1 . . . . . . . N NUMB 0092H A
P3 . . . . . . . . D ADDR 00B0H A
P3M0 . . . . . . . N NUMB 00B1H A
P3M1 . . . . . . . N NUMB 00B2H A
START. . . . . . . C ADDR 0003H A
STATE. . . . . . . N NUMB 0020H A
STEP . . . . . . . N NUMB 0010H A
TAB. . . . . . . . C ADDR 00B8H A
TAB1 . . . . . . . C ADDR 00C0H A
TAB5 . . . . . . . C ADDR 00D1H A
XADD . . . . . . . N NUMB 0017H A
XY . . . . . . . . C ADDR 007EH A
YADD . . . . . . . N NUMB 0018H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -