📄 auto motor.lst
字号:
A51 MACRO ASSEMBLER AUTO_MOTOR 06/15/2008 12:22:50 PAGE 1
MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN Auto Motor.OBJ
ASSEMBLER INVOKED BY: D:\Program Files\Keil\C51\BIN\A51.EXE Auto Motor.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
0000 1 ORG 0000H
2
0000 900096 3 START: MOV DPTR,#TAB1
0003 7803 4 MOV R0,#03
0005 7B00 5 MOV R3,#0
0007 7C00 6 MOV R4,#0
0009 759003 7 MOV P1,#3
8 ;=============================================================第一次键盘检测
000C 8890 9 WAIT: MOV P1,R0 ;初始角度,0度
000E 7580FF 10 MOV P0,#0FFH
0011 30800B 11 JNB P0.0,POS ;判断键盘状态
0014 308111 12 JNB P0.1,NEG
0017 308218 13 JNB P0.2,POS1 ;判断键盘状态
001A 30831E 14 JNB P0.3,NEG1
001D 80ED 15 SJMP WAIT
16 ;==============================================================首次跳入
001F EC 17 POS: MOV A,R4 ;正转9度
0020 93 18 MOVC A,@A+DPTR
0021 F590 19 MOV P1,A
0023 1189 20 ACALL DELAY
0025 0C 21 INC R4
0026 0145 22 AJMP KEY
0028 7C06 23 NEG: MOV R4,#6 ;反转9度
002A EC 24 MOV A,R4
002B 93 25 MOVC A,@A+DPTR
002C F590 26 MOV P1,A
002E 1189 27 ACALL DELAY
0030 0145 28 AJMP KEY
29
0032 EB 30 POS1: MOV A,R3 ;正转9度
0033 93 31 MOVC A,@A+DPTR
0034 F5A0 32 MOV P2,A
0036 1189 33 ACALL DELAY
0038 0B 34 INC R3
0039 0145 35 AJMP KEY
003B 7B06 36 NEG1: MOV R3,#6 ;反转9度
003D EB 37 MOV A,R3
003E 93 38 MOVC A,@A+DPTR
003F F5A0 39 MOV P2,A
0041 1189 40 ACALL DELAY
0043 0145 41 AJMP KEY
42 ;==========================================================开始检测
0045 43 KEY:
0045 20800E 44 JB P0.0,FZ1
0048 BC0802 45 CJNE R4,#8,LOOPZ ;是结束标志
004B 7C00 46 MOV R4,#0
004D EC 47 LOOPZ: MOV A,R4
004E 93 48 MOVC A,@A+DPTR
004F F590 49 MOV P1,A ;输出控制脉冲
0051 1189 50 ACALL DELAY ;程序延时
0053 0C 51 INC R4 ;地址加1
0054 0145 52 AJMP KEY
0056 20810E 53 FZ1: JB P0.1,FZ2
0059 BCFF02 54 CJNE R4,#255,LOOPF ;是结束标志
005C 7C07 55 MOV R4,#7
005E 1C 56 LOOPF: DEC R4
005F EC 57 MOV A,R4
0060 93 58 MOVC A,@A+DPTR
A51 MACRO ASSEMBLER AUTO_MOTOR 06/15/2008 12:22:50 PAGE 2
0061 F590 59 MOV P1,A ;输出控制脉冲
0063 1189 60 ACALL DELAY ;程序延时
0065 0145 61 AJMP KEY
0067 20820E 62 FZ2: JB P0.2,FZ3
006A BB0802 63 CJNE R3,#8,LOOPZ1 ;是结束标志
006D 7B00 64 MOV R3,#0
006F EB 65 LOOPZ1: MOV A,R3
0070 93 66 MOVC A,@A+DPTR
0071 F5A0 67 MOV P2,A ;输出控制脉冲
0073 1189 68 ACALL DELAY ;程序延时
0075 0B 69 INC R3 ;地址加1
0076 0145 70 AJMP KEY
0078 2083CA 71 FZ3: JB P0.3,KEY
007B BBFF02 72 CJNE R3,#255,LOOPF1 ;是结束标志
007E 7B07 73 MOV R3,#7
0080 1B 74 LOOPF1: DEC R3
0081 EB 75 MOV A,R3
0082 93 76 MOVC A,@A+DPTR
0083 F5A0 77 MOV P2,A ;输出控制脉冲
0085 1189 78 ACALL DELAY ;程序延时
0087 0145 79 AJMP KEY
80 ;======================================================主要延时
0089 7E05 81 DELAY: MOV R6,#5
008B 7D80 82 DD1: MOV R5,#080H
008D 7F00 83 DD2: MOV R7,#0
008F DFFE 84 DD3: DJNZ R7,DD3
0091 DDFA 85 DJNZ R5,DD2
0093 DEF6 86 DJNZ R6,DD1
0095 22 87 RET
0096 0206040C 88 TAB1: DB 02H,06H,04H,0CH
009A 08090103 89 DB 08H,09H,01H,03H ;正转模型资料
90
91 END
A51 MACRO ASSEMBLER AUTO_MOTOR 06/15/2008 12:22:50 PAGE 3
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
DD1. . . . . . . . C ADDR 008BH A
DD2. . . . . . . . C ADDR 008DH A
DD3. . . . . . . . C ADDR 008FH A
DELAY. . . . . . . C ADDR 0089H A
FZ1. . . . . . . . C ADDR 0056H A
FZ2. . . . . . . . C ADDR 0067H A
FZ3. . . . . . . . C ADDR 0078H A
KEY. . . . . . . . C ADDR 0045H A
LOOPF. . . . . . . C ADDR 005EH A
LOOPF1 . . . . . . C ADDR 0080H A
LOOPZ. . . . . . . C ADDR 004DH A
LOOPZ1 . . . . . . C ADDR 006FH A
NEG. . . . . . . . C ADDR 0028H A
NEG1 . . . . . . . C ADDR 003BH A
P0 . . . . . . . . D ADDR 0080H A
P1 . . . . . . . . D ADDR 0090H A
P2 . . . . . . . . D ADDR 00A0H A
POS. . . . . . . . C ADDR 001FH A
POS1 . . . . . . . C ADDR 0032H A
START. . . . . . . C ADDR 0000H A
TAB1 . . . . . . . C ADDR 0096H A
WAIT . . . . . . . C ADDR 000CH A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -