📄 turn lamp.lst
字号:
A51 MACRO ASSEMBLER TURN_LAMP 08/02/2006 13:22:11 PAGE 1
MACRO ASSEMBLER A51 V8.00
OBJECT MODULE PLACED IN Turn Lamp.OBJ
ASSEMBLER INVOKED BY: e:\Program Files\Keil\C51\BIN\A51.EXE Turn Lamp.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
0000 1 ORG 0000H
0000 0130 2 AJMP START1
0030 3 ORG 0030H
004E 4 SAME EQU 4EH
0030 759000 5 START1: MOV P1,#00H ;无输入时无输出
0033 E5B0 6 START: MOV A,P3 ;读P3口数据
0035 541F 7 ANL A,#1FH ;取用P3口的低五位数据
0037 B41F02 8 CJNE A,#1FH,SHIY ;对P3口低五位数据进行判断
003A 0130 9 AJMP START1
003C F54E 10 SHIY: MOV SAME,A
003E 120112 11 LCALL YS ;延时
0041 E5B0 12 MOV A,P3 ;读P3口的数据
0043 541F 13 ANL A,#1FH ;取用P3口的低五位数据
0045 B41F02 14 CJNE A,#1FH,SHIY1 ;对P3口的低五位数据进行判断
0048 0130 15 AJMP START1 ;开关没有动作时无输出
004A B54EE3 16 SHIY1: CJNE A,SAME,START1
004D B41702 17 CJNE A,#17H,NEXT1 ;P3.3=0时进入左转分支
0050 0181 18 AJMP LEFT
0052 B40F02 19 NEXT1: CJNE A,#0FH,NEXT2 ;P3.4=0时进入右转分支
0055 018F 20 AJMP RIGHT
0057 B41D02 21 NEXT2: CJNE A,#1DH,NEXT3 ;P3.1=0时进入紧急分支
005A 019D 22 AJMP EARGE
005C B41E02 23 NEXT3: CJNE A,#1EH,NEXT4 ;P3.0=0时进入刹车分支
005F 01AB 24 AJMP BRAKE
0061 B41602 25 NEXT4: CJNE A,#16H,NEXT5 ;P3.0=P3.3=0时进入左转刹车分支
0064 01B0 26 AJMP LEBR
0066 B40E02 27 NEXT5: CJNE A,#0EH,NEXT6 ;P3.0=P3.4=0时进入右转刹车分支
0069 01BE 28 AJMP RIBR
006B B41C02 29 NEXT6: CJNE A,#1CH,NEXT7 ;P3.0=P3.1=0时进入紧急刹车分支
006E 01CC 30 AJMP BRER
0070 B41402 31 NEXT7: CJNE A,#14H,NEXT8 ;P3.0=P3.1=P3.3=0时进入左转紧急刹车分支
0073 01DA 32 AJMP LBE
0075 B40C02 33 NEXT8: CJNE A,#0CH,NEXT9 ;P3.0=P3.1=P3.4=0时进入右转紧急刹车分支
0078 01E8 34 AJMP RBE
007A B41B02 35 NEXT9: CJNE A,#1BH,NEXT10 ;P3.2=0时进入停靠分支
007D 01F6 36 AJMP STOP
007F 2104 37 NEXT10: AJMP ERROR ;其他情况进入错误分支
0081 75902A 38 LEFT: MOV P1,#2AH ;左转分支
0084 12011B 39 LCALL Y1s
0087 759000 40 MOV P1,#00H
008A 12011B 41 LCALL Y1s
008D 0133 42 AJMP START
008F 759054 43 RIGHT: MOV P1,#54H ;右转分支
0092 12011B 44 LCALL Y1s
0095 759000 45 MOV P1,#00H
0098 12011B 46 LCALL Y1s
009B 0133 47 AJMP START
009D 75907F 48 EARGE: MOV P1,#7FH ;紧急分支
00A0 12011B 49 LCALL Y1s
00A3 759000 50 MOV P1,#00H
00A6 12011B 51 LCALL Y1s
00A9 0133 52 AJMP START
00AB 759060 53 BRAKE: MOV P1,#60H ;刹车分支
00AE 0133 54 AJMP START
00B0 75906A 55 LEBR: MOV P1,#6AH ;左转刹车分支
00B3 12011B 56 LCALL Y1s
00B6 759040 57 MOV P1,#40H
00B9 12011B 58 LCALL Y1s
A51 MACRO ASSEMBLER TURN_LAMP 08/02/2006 13:22:11 PAGE 2
00BC 0133 59 AJMP START
00BE 75906A 60 RIBR: MOV P1,#6AH ;右转刹车分支
00C1 12011B 61 LCALL Y1s
00C4 759040 62 MOV P1,#40H
00C7 12011B 63 LCALL Y1s
00CA 0133 64 AJMP START
00CC 75907E 65 BRER: MOV P1,#7EH ;紧急刹车分支
00CF 12011B 66 LCALL Y1s
00D2 759060 67 MOV P1,#60H
00D5 12011B 68 LCALL Y1s
00D8 0133 69 AJMP START
00DA 75907E 70 LBE: MOV P1,#7EH ;左转紧急刹车分支
00DD 12011B 71 LCALL Y1s
00E0 759040 72 MOV P1,#40H
00E3 12011B 73 LCALL Y1s
00E6 0133 74 AJMP START
00E8 75907E 75 RBE: MOV P1,#7EH ;右转紧急刹车分支
00EB 12011B 76 LCALL Y1s
00EE 759020 77 MOV P1,#20H
00F1 12011B 78 LCALL Y1s
00F4 0133 79 AJMP START
00F6 759066 80 STOP: MOV P1,#66H ;停靠分支
00F9 120128 81 LCALL Y100ms
00FC 759000 82 MOV P1,#00H
00FF 120128 83 LCALL Y100ms
0102 0133 84 AJMP START
0104 759080 85 ERROR: MOV P1,#80H ;错误分支
0107 12011B 86 LCALL Y1s
010A 759000 87 MOV P1,#00H
010D 12011B 88 LCALL Y1s
0110 0133 89 AJMP START
0112 7F20 90 YS: MOV R7,#20H ;延时
0114 7EFF 91 YS0: MOV R6,#0FFH
0116 DEFE 92 YS1: DJNZ R6,YS1
0118 DFFA 93 DJNZ R7,YS0
011A 22 94 RET
011B 7F04 95 Y1s: MOV R7,#04H ;延时
011D 7EFF 96 Y1s1: MOV R6,#0FFH
011F 7DFF 97 Y1s2: MOV R5,#0FFH
0121 DDFE 98 DJNZ R5,$
0123 DEFA 99 DJNZ R6,Y1s2
0125 DFF6 100 DJNZ R7,Y1s1
0127 22 101 RET
0128 7F66 102 Y100ms: MOV R7,#66H ;延时
012A 7EFF 103 Y100ms1:MOV R6,#0FFH
012C DEFE 104 Y100ms2:DJNZ R6, Y100ms2
012E DFFA 105 DJNZ R7, Y100ms1
0130 22 106 RET
107 END
A51 MACRO ASSEMBLER TURN_LAMP 08/02/2006 13:22:11 PAGE 3
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
BRAKE. . . . . . . C ADDR 00ABH A
BRER . . . . . . . C ADDR 00CCH A
EARGE. . . . . . . C ADDR 009DH A
ERROR. . . . . . . C ADDR 0104H A
LBE. . . . . . . . C ADDR 00DAH A
LEBR . . . . . . . C ADDR 00B0H A
LEFT . . . . . . . C ADDR 0081H A
NEXT1. . . . . . . C ADDR 0052H A
NEXT10 . . . . . . C ADDR 007FH A
NEXT2. . . . . . . C ADDR 0057H A
NEXT3. . . . . . . C ADDR 005CH A
NEXT4. . . . . . . C ADDR 0061H A
NEXT5. . . . . . . C ADDR 0066H A
NEXT6. . . . . . . C ADDR 006BH A
NEXT7. . . . . . . C ADDR 0070H A
NEXT8. . . . . . . C ADDR 0075H A
NEXT9. . . . . . . C ADDR 007AH A
P1 . . . . . . . . D ADDR 0090H A
P3 . . . . . . . . D ADDR 00B0H A
RBE. . . . . . . . C ADDR 00E8H A
RIBR . . . . . . . C ADDR 00BEH A
RIGHT. . . . . . . C ADDR 008FH A
SAME . . . . . . . N NUMB 004EH A
SHIY . . . . . . . C ADDR 003CH A
SHIY1. . . . . . . C ADDR 004AH A
START. . . . . . . C ADDR 0033H A
START1 . . . . . . C ADDR 0030H A
STOP . . . . . . . C ADDR 00F6H A
Y100MS . . . . . . C ADDR 0128H A
Y100MS1. . . . . . C ADDR 012AH A
Y100MS2. . . . . . C ADDR 012CH A
Y1S. . . . . . . . C ADDR 011BH A
Y1S1 . . . . . . . C ADDR 011DH A
Y1S2 . . . . . . . C ADDR 011FH A
YS . . . . . . . . C ADDR 0112H A
YS0. . . . . . . . C ADDR 0114H A
YS1. . . . . . . . C ADDR 0116H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -