📄 switch.lst
字号:
A51 MACRO ASSEMBLER SWITCH 02/27/2008 17:13:49 PAGE 1
MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN switch.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE switch.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
0000 1 ORG 0000H
0000 0130 2 AJMP MAIN
000B 3 ORG 000BH
000B 01C9 4 AJMP TIMER2
0030 5 ORG 0030H
0030 6 MAIN:
0030 758170 7 MOV SP,#70H
0033 7840 8 MOV R0,#40H
0035 763F 9 MOV @R0,#3FH
0037 08 10 INC R0
0038 7606 11 MOV @R0,#06H
003A 08 12 INC R0
003B 765B 13 MOV @R0,#5BH
003D 08 14 INC R0
003E 764F 15 MOV @R0,#4FH
0040 08 16 INC R0
0041 7666 17 MOV @R0,#66H
0043 08 18 INC R0
0044 766D 19 MOV @R0,#6DH
0046 08 20 INC R0
0047 767D 21 MOV @R0,#7DH
0049 08 22 INC R0
004A 7607 23 MOV @R0,#07H
004C 08 24 INC R0
004D 767F 25 MOV @R0,#7FH
004F 08 26 INC R0
0050 766F 27 MOV @R0,#6FH
0052 753801 28 MOV 38H,#01H
0055 753903 29 MOV 39H,#03H
30 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0058 758901 31 MOV TMOD,#01H
005B D2A9 32 SETB ET0
005D D2AF 33 SETB EA
005F 758CE6 34 MOV TH0,#0E6H
0062 758A00 35 MOV TL0,#00H
0065 D28C 36 SETB TR0
37 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0067 38 JMAIN:
0067 7A7F 39 MOV R2,#07FH
0069 79FF 40 WTEMP: MOV R1,#0FFH
006B D9FE 41 TEMP: DJNZ R1,TEMP
006D DAFA 42 DJNZ R2,WTEMP
006F 11E3 43 ACALL KS1 ;调用查键子程序
0071 7002 44 JNZ DSHAKE
0073 0167 45 AJMP JMAIN
46
47 ;消抖子程序
0075 11ED 48 DSHAKE: ACALL DELAY ;调用延时子程序
0077 11E3 49 ACALL KS1
0079 7002 50 JNZ SCAN
007B 0167 51 AJMP JMAIN
52
53 ;扫描查键
007D 7A01 54 SCAN: MOV R2,#01H ;将第0行置一
007F 7C00 55 MOV R4,#00H ;从第0号开始检查
0081 908000 56 SCAN1: MOV DPTR,#8000H
0084 EA 57 MOV A,R2
0085 F0 58 MOVX @DPTR,A
A51 MACRO ASSEMBLER SWITCH 02/27/2008 17:13:49 PAGE 2
0086 E0 59 MOVX A,@DPTR
0087 30E004 60 JNB ACC.0,LONE
008A 7400 61 MOV A,#00H
008C 01A1 62 AJMP LKP
008E 30E104 63 LONE: JNB ACC.1,LTWO
0091 7401 64 MOV A,#01H
0093 01A1 65 AJMP LKP
0095 30E204 66 LTWO: JNB ACC.2,LTHR
0098 7402 67 MOV A,#02H
009A 01A1 68 AJMP LKP
009C 30E30D 69 LTHR: JNB ACC.3,NEXT
009F 7403 70 MOV A,#03H
00A1 2C 71 LKP: ADD A,R4
00A2 C0E0 72 PUSH ACC
00A4 11E3 73 SCAN2: ACALL KS1
00A6 70FC 74 JNZ SCAN2
00A8 D0E0 75 POP ACC
00AA 01B8 76 AJMP SCANED
00AC 0C 77 NEXT: INC R4
00AD 0C 78 INC R4
00AE 0C 79 INC R4
00AF 0C 80 INC R4
00B0 EA 81 MOV A,R2
00B1 20E3B3 82 JB ACC.3,JMAIN
00B4 23 83 RL A
00B5 FA 84 MOV R2,A
00B6 0181 85 AJMP SCAN1
00B8 F54A 86 SCANED: MOV 4AH,A
00BA E54A 87 MOV A,4AH
00BC C2D7 88 CLR CY
00BE 940E 89 SUBB A,#0EH
00C0 70A5 90 JNZ JMAIN
00C2 E539 91 MOV A,39H
00C4 04 92 INC A
00C5 F539 93 MOV 39H,A
00C7 0167 94 AJMP JMAIN
95
96
97
98
00C9 758CE6 99 TIMER2: MOV TH0,#0E6H
00CC 758A00 100 MOV TL0,#00H
00CF 11D2 101 ACALL DPLAY
00D1 32 102 RETI
103 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
00D2 E538 104 DPLAY: MOV A,38H
00D4 908000 105 MOV DPTR,#8000H
00D7 F0 106 MOVX @DPTR,A
00D8 E539 107 MOV A,39H
00DA 2440 108 ADD A,#40H
00DC F8 109 MOV R0,A
00DD E6 110 MOV A,@R0
00DE 909000 111 MOV DPTR,#9000H
00E1 F0 112 MOVX @DPTR,A
00E2 22 113 RET
114 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
115
116
00E3 908000 117 KS1: MOV DPTR,#8000H
00E6 74FF 118 MOV A,#0FFH
00E8 F0 119 MOVX @DPTR,A
00E9 E0 120 MOVX A,@DPTR
00EA 540F 121 ANL A,#0FH
00EC 22 122 RET
123
00ED 7A18 124 DELAY: MOV R2,#18H
A51 MACRO ASSEMBLER SWITCH 02/27/2008 17:13:49 PAGE 3
00EF 79FF 125 DELAY2: MOV R1,#0FFH
00F1 D9FE 126 DELAY3: DJNZ R1,DELAY3
00F3 DAFA 127 DJNZ R2,DELAY2
00F5 22 128 RET
129
130
131
132
133 END
A51 MACRO ASSEMBLER SWITCH 02/27/2008 17:13:49 PAGE 4
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ACC. . . . . . . . D ADDR 00E0H A
CY . . . . . . . . B ADDR 00D0H.7 A
DELAY. . . . . . . C ADDR 00EDH A
DELAY2 . . . . . . C ADDR 00EFH A
DELAY3 . . . . . . C ADDR 00F1H A
DPLAY. . . . . . . C ADDR 00D2H A
DSHAKE . . . . . . C ADDR 0075H A
EA . . . . . . . . B ADDR 00A8H.7 A
ET0. . . . . . . . B ADDR 00A8H.1 A
JMAIN. . . . . . . C ADDR 0067H A
KS1. . . . . . . . C ADDR 00E3H A
LKP. . . . . . . . C ADDR 00A1H A
LONE . . . . . . . C ADDR 008EH A
LTHR . . . . . . . C ADDR 009CH A
LTWO . . . . . . . C ADDR 0095H A
MAIN . . . . . . . C ADDR 0030H A
NEXT . . . . . . . C ADDR 00ACH A
SCAN . . . . . . . C ADDR 007DH A
SCAN1. . . . . . . C ADDR 0081H A
SCAN2. . . . . . . C ADDR 00A4H A
SCANED . . . . . . C ADDR 00B8H A
SP . . . . . . . . D ADDR 0081H A
TEMP . . . . . . . C ADDR 006BH A
TH0. . . . . . . . D ADDR 008CH A
TIMER2 . . . . . . C ADDR 00C9H A
TL0. . . . . . . . D ADDR 008AH A
TMOD . . . . . . . D ADDR 0089H A
TR0. . . . . . . . B ADDR 0088H.4 A
WTEMP. . . . . . . C ADDR 0069H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -