📄 eight interrupt.lst
字号:
A51 MACRO ASSEMBLER EIGHT_INTERRUPT 06/08/2006 17:12:22 PAGE 1
MACRO ASSEMBLER A51 V7.07
NO OBJECT MODULE REQUESTED
ASSEMBLER INVOKED BY: e:\Keil\C51\BIN\A51.EXE eight interrupt.a51 SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;调试基本成功,但是,个别通道数据不匹配
2 ;而且,不能实时检测数据。为什么?
0000 3 ORG 0000H
0000 8004 4 SJMP START
0030 5 ORG 0030H
0030 020006 6 LJMP START
0003 7 ORG 0003H
0003 020000 8 LJMP INT0
*** ______________________________________^
*** ERROR #A46 IN 8 (eight interrupt.a51, LINE 8): CODE-ADDRESS EXPECTED
9 ;******************
10 ;初始化各个变量
11 ;******************
0006 E4 12 START: CLR A
0007 7830 13 MOV R0,#30H ;初始化30H-3BH
0009 7A0D 14 MOV R2,#0DH
000B 7B08 15 MOV R3,#08H ;设置8路采样记数值
000D F6 16 LOOP0: MOV @R0,A
000E 08 17 INC R0
000F DAFC 18 DJNZ R2,LOOP0
0011 00 19 NOP
0012 00 20 NOP
0013 00 21 NOP
0014 74FF 22 MOV A,#0FFH
0016 F580 23 MOV P0,A
0018 F590 24 MOV P1,A
001A F5A0 25 MOV P2,A
001C F5B0 26 MOV P3,A
001E 7830 27 MOV R0,#30H ;让R0重新指向数据缓冲区首位
0020 907FF8 28 MOV DPTR,#7FF8H
29
0023 D2D5 30 MAIN: SETB F0
0025 F0 31 MOVX @DPTR,A
0026 D2AF 32 SETB EA
0028 D2A8 33 SETB EX0
002A D288 34 SETB IT0
002C 20D5FD 35 NEXT: JB F0,NEXT
002F DBF2 36 DJNZ R3,MAIN
0031 00 37 NOP
0032 00 38 NOP
0033 00 39 NOP
40
41 ;**********************
42 ;主程序
43 ;**********************
0034 00 44 LOOP: NOP
0035 00 45 NOP
0036 00 46 NOP
0037 12003F 47 LCALL DISPLAY
003A 00 48 NOP
003B 00 49 NOP
003C 00 50 NOP
003D 80F5 51 SJMP LOOP
52 ;*********************
53 ;显示控制子程序
54 ;*********************
003F 7B08 55 DISPLAY:MOV R3,#08H
0041 7830 56 MOV R0,#30H
A51 MACRO ASSEMBLER EIGHT_INTERRUPT 06/08/2006 17:12:22 PAGE 2
0043 753B00 57 MOV 3BH,#00H ;显示通道路数初值
0046 12006C 58 DISPLP1:LCALL PROC
0049 00 59 NOP
004A 00 60 NOP
004B 00 61 NOP
004C 7CAA 62 MOV R4,#0AAH ;每路显示时间控制
004E 1200B3 63 DISPLP2:LCALL DISP ;调用显示4位
0051 00 64 NOP
0052 00 65 NOP
0053 00 66 NOP
0054 DCF8 67 DJNZ R4,DISPLP2
0056 08 68 INC R0 ;显示下一路
0057 053B 69 INC 3BH ;显示通道数加1
0059 DBEB 70 DJNZ R3,DISPLP1
005B 22 71 RET
005C 00 72 NOP
005D 00 73 NOP
005E 00 74 NOP
75
76 ;*********************
77 ;;AD转换子程序中断方式
78 ;*********************
79
005F 00 80 INT0: NOP
*** _________________________^
*** ERROR #A8 IN 80 (eight interrupt.a51, LINE 80): ATTEMPT TO DEFINE AN ALREADY DEFINED LABEL
0060 00 81 NOP
0061 00 82 NOP
0062 E0 83 MOVX A,@DPTR
0063 F6 84 MOV @R0,A
0064 A3 85 INC DPTR
0065 08 86 INC R0
0066 C2D5 87 CLR F0
0068 32 88 RETI
0069 00 89 NOP
006A 00 90 NOP
006B 00 91 NOP
92
93 ;*********************
94 ;数据处理子程序
95 ;*********************
006C E6 96 PROC: MOV A,@R0
006D 75F033 97 MOV B,#51
0070 84 98 DIV AB
0071 F53A 99 MOV 3AH,A
0073 C5F0 100 XCH A,B
0075 75F00A 101 MOV B,#10
0078 A4 102 MUL AB
0079 20D20D 103 JB OV,BCD1
007C 75F033 104 MOV B,#51
007F 84 105 DIV AB
0080 F539 106 MOV 39H,A
0082 C5F0 107 XCH A,B
0084 0195 108 AJMP BCD2
0086 00 109 NOP
0087 00 110 NOP
0088 00 111 NOP
0089 75F033 112 BCD1: MOV B,#51
008C 84 113 DIV AB
008D 2405 114 ADD A,#5
008F F539 115 MOV 39H,A
0091 C5F0 116 XCH A,B
0093 2405 117 ADD A,#5
0095 75F00A 118 BCD2: MOV B,#10
0098 A4 119 MUL AB
0099 20D20B 120 JB OV,BCD3
A51 MACRO ASSEMBLER EIGHT_INTERRUPT 06/08/2006 17:12:22 PAGE 3
009C 75F033 121 MOV B,#51
009F 84 122 DIV AB
00A0 F538 123 MOV 38H,A
00A2 01AF 124 AJMP BCD4
00A4 00 125 NOP
00A5 00 126 NOP
00A6 00 127 NOP
00A7 75F033 128 BCD3: MOV B,#51
00AA 84 129 DIV AB
00AB 2405 130 ADD A,#5
00AD F538 131 MOV 38H,A
00AF 22 132 BCD4: RET
00B0 00 133 NOP
00B1 00 134 NOP
00B2 00 135 NOP
136 ;*******************
137 ;显示子程序
138 ;*******************
00B3 E53B 139 DISP: MOV A,3BH
00B5 900101 140 MOV DPTR,#TABLE
00B8 93 141 MOVC A,@A+DPTR
00B9 F590 142 MOV P1,A
00BB 74FE 143 MOV A,#0FEH
00BD F5A0 144 MOV P2,A
00BF 12010B 145 LCALL DELAY
00C2 00 146 NOP
00C3 00 147 NOP
00C4 00 148 NOP
00C5 E53A 149 MOV A,3AH
00C7 900101 150 MOV DPTR, #TABLE
00CA 93 151 MOVC A,@A+DPTR
00CB 4480 152 ORL A,#80H
00CD F590 153 MOV P1,A
00CF 74FD 154 MOV A, #0FDH
00D1 F5A0 155 MOV P2,A
00D3 12010B 156 LCALL DELAY
00D6 00 157 NOP
00D7 00 158 NOP
00D8 00 159 NOP
00D9 E539 160 MOV A,39H
00DB 900101 161 MOV DPTR, #TABLE
00DE 93 162 MOVC A,@A+DPTR
00DF F590 163 MOV P1,A
00E1 74FB 164 MOV A, #0FBH
00E3 F5A0 165 MOV P2,A
00E5 12010B 166 LCALL DELAY
00E8 00 167 NOP
00E9 00 168 NOP
00EA 00 169 NOP
00EB E538 170 MOV A,38H
00ED 900101 171 MOV DPTR, #TABLE
00F0 93 172 MOVC A,@A+DPTR
00F1 F590 173 MOV P1,A
00F3 74F7 174 MOV A, #0F7H
00F5 F5A0 175 MOV P2,A
00F7 12010B 176 LCALL DELAY
00FA 00 177 NOP
00FB 00 178 NOP
00FC 00 179 NOP
00FD 22 180 RET
00FE 00 181 NOP
00FF 00 182 NOP
0100 00 183 NOP
0101 3F065B4F 184 TABLE: DB 3FH,06H,5BH,4FH,66H
0105 66
0106 6D7D077F 185 DB 6DH,7DH,07H,7FH,6FH
A51 MACRO ASSEMBLER EIGHT_INTERRUPT 06/08/2006 17:12:22 PAGE 4
010A 6F
010B 7E14 186 DELAY: MOV R6,#14H
010D 7F19 187 D0: MOV R7,#19H
010F DFFE 188 D1: DJNZ R7,D1
0111 DEFA 189 DJNZ R6,D0
0113 22 190 RET
0114 00 191 NOP
0115 00 192 NOP
0116 00 193 NOP
194 END
A51 MACRO ASSEMBLER EIGHT_INTERRUPT 06/08/2006 17:12:22 PAGE 5
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
B. . . . . . . . . D ADDR 00F0H A
BCD1 . . . . . . . C ADDR 0089H A
BCD2 . . . . . . . C ADDR 0095H A
BCD3 . . . . . . . C ADDR 00A7H A
BCD4 . . . . . . . C ADDR 00AFH A
D0 . . . . . . . . C ADDR 010DH A
D1 . . . . . . . . C ADDR 010FH A
DELAY. . . . . . . C ADDR 010BH A
DISP . . . . . . . C ADDR 00B3H A
DISPLAY. . . . . . C ADDR 003FH A
DISPLP1. . . . . . C ADDR 0046H A
DISPLP2. . . . . . C ADDR 004EH A
EA . . . . . . . . B ADDR 00A8H.7 A
EX0. . . . . . . . B ADDR 00A8H.0 A
F0 . . . . . . . . B ADDR 00D0H.5 A
INT0 . . . . . . . B ADDR 00B0H.2 A
IT0. . . . . . . . B ADDR 0088H.0 A
LOOP . . . . . . . C ADDR 0034H A
LOOP0. . . . . . . C ADDR 000DH A
MAIN . . . . . . . C ADDR 0023H A
NEXT . . . . . . . C ADDR 002CH A
OV . . . . . . . . B ADDR 00D0H.2 A
P0 . . . . . . . . D ADDR 0080H A
P1 . . . . . . . . D ADDR 0090H A
P2 . . . . . . . . D ADDR 00A0H A
P3 . . . . . . . . D ADDR 00B0H A
PROC . . . . . . . C ADDR 006CH A
START. . . . . . . C ADDR 0006H A
TABLE. . . . . . . C ADDR 0101H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 2 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -