📄 alarm.lst
字号:
019B 05E0 189 INC acc ;指针+1
019D F7 190 mov @r1,a
A51 MACRO ASSEMBLER ALARM 09/12/2007 23:33:37 PAGE 4
019E 2440 191 ADD A,#40h
01A0 F9 192 MOV R1,A
01A1 EF 193 MOV A,R7
01A2 F7 194 MOV @R1,A
01A3 22 195 RET
01A4 00 196 nop
01A5 00 197 nop
01A6 00 198 nop
199 ;数据出
200 ;出口:A,出口数据
01A7 7940 201 DATAOUT:MOV R1,#40h
01A9 E7 202 MOV A,@R1 ;取数据个数
01AA FF 203 MOV R7,A
01AB 14 204 DEC A
01AC F7 205 MOV @R1,A
01AD 09 206 INC R1
01AE E7 207 MOV A,@R1
01AF F5F0 208 MOV B,A ;数据暂存B
01B1 E9 209 MOV A,R1
01B2 F8 210 MOV R0,A
01B3 09 211 LP: INC R1
01B4 E7 212 MOV A,@R1
01B5 F6 213 MOV @R0,A
01B6 08 214 INC R0
01B7 DFFA 215 DJNZ R7,LP ;将队列中数据顺序前移
01B9 E5F0 216 MOV A,B
01BB 00 217 nop
01BC 00 218 nop
01BD 00 219 nop
01BE 22 220 RET
01BF 00 221 nop
01C0 01BE 222 jmp start
223 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
01C2 C023 224 DELAY: PUSH 23H
01C4 C021 225 PUSH 21H
01C6 752364 226 MOV 23h,#100
01C9 752164 227 QQ: MOV 21h,#100
01CC 00 228 WW: nop
01CD D521FC 229 DJNZ 21h,WW
01D0 D523F6 230 DJNZ 23h,QQ
01D3 D021 231 POP 21H
01D5 D023 232 POP 23H
01D7 22 233 RET
01D8 00 234 nop
01D9 00 235 nop
01DA 00 236 nop
237 ;将地址译成显示码子程序
238 ;入口:A
239 ;出口:A,B
01DB 75F00A 240 asc2led:mov b,#0ah
01DE 84 241 div ab
01DF C0F0 242 push b
01E1 93 243 movc a,@a+dptr
01E2 23 244 rl a
01E3 A202 245 mov c,run
01E5 13 246 rrc a
01E6 F531 247 mov ledbuf+1,a
01E8 D0E0 248 pop acc
01EA 93 249 movc a,@a+dptr
01EB 23 250 rl a
01EC A201 251 mov c,shift
01EE 13 252 rrc a
01EF F532 253 mov ledbuf+2,a
01F1 22 254 ret
01F2 00 255 nop
01F3 00 256 nop
A51 MACRO ASSEMBLER ALARM 09/12/2007 23:33:37 PAGE 5
01F4 00 257 nop
01F5 0189 258 jmp init
259
260
01F7 C0F9A4B0 261 ledtab: DB 0C0H,0F9H,0A4H,0B0H ;0-3
01FB 999282F8 262 db 99H,92H,82H,0F8H,80H ;4-8
01FF 80
0200 908883C6 263 db 90H,88H,83H,0C6H ;9-c
0204 A1868EFF 264 db 0A1H,86H,8EH,0FFH ;d-f,灭
0208 00 265 nop
0209 00 266 nop
020A 00 267 nop
020B 0189 268 jmp init
020D 00 269 nop
270
271
020E 309804 272 serve: JNB RI,LOOP;是接收中断,清除RI,转入接收从机的应答信息
0211 C299 273 CLR TI;是发送中断,清除此中断标志
0213 8019 274 SJMP ENDT
275
0215 276 LOOP:
277
0215 E599 278 MOV A,SBUF;取从机的应答信息
0217 6009 279 JZ LOOP1;判应答信号是#00H
0219 E0 280 MOVX A,@DPTR;否则主机重发
021A A2D0 281 MOV C,P;
021C 929B 282 MOV TB8,C;
021E F599 283 MOV SBUF,A;主机重发原数据
0220 800C 284 SJMP ENDT;
285
0222 286 LOOP1:
287
0222 A3 288 INC DPTR;修改地址指针,准备发送下一个数据
0223 E0 289 MOVX A,@DPTR;
0224 A2D0 290 MOV C,P;
0226 929B 291 MOV TB8,C;
0228 F599 292 MOV SBUF,A;发送
022A D802 293 DJNZ R0,ENDT;数据块未发送完,返回继续发送
022C C2AC 294 CLR ES;全部发送完,禁止串行口中断
295
022E 32 296 ENDT: RETI;中断返回
297
298 END
A51 MACRO ASSEMBLER ALARM 09/12/2007 23:33:37 PAGE 6
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ACC. . . . . . . . D ADDR 00E0H A
ALARM. . . . . . . N NUMB 0003H A
ASC2LED. . . . . . C ADDR 01DBH A
B. . . . . . . . . D ADDR 00F0H A
BEEP . . . . . . . B ADDR 00B0H.3 A
BITADD . . . . . . N NUMB 0022H A
CT . . . . . . . . N NUMB 0025H A
DATAIN . . . . . . C ADDR 0198H A
DATAOUT. . . . . . C ADDR 01A7H A
DELAY. . . . . . . C ADDR 01C2H A
ENDT . . . . . . . C ADDR 022EH A
ES . . . . . . . . B ADDR 00A8H.4 A
ET0IN. . . . . . . C ADDR 0069H A
EXIT . . . . . . . C ADDR 007CH A
IE . . . . . . . . D ADDR 00A8H A
INIT . . . . . . . C ADDR 0089H A
IT0. . . . . . . . B ADDR 0088H.0 A
IT1. . . . . . . . B ADDR 0088H.2 A
LEDBUF . . . . . . N NUMB 0030H A
LEDTAB . . . . . . C ADDR 01F7H A
LOOP . . . . . . . C ADDR 0215H A
LOOP1. . . . . . . C ADDR 0222H A
LP . . . . . . . . C ADDR 01B3H A
NEXT . . . . . . . C ADDR 00C4H A
NT . . . . . . . . C ADDR 00D5H A
NTAL . . . . . . . C ADDR 00CDH A
NX1. . . . . . . . C ADDR 0062H A
OK . . . . . . . . C ADDR 007AH A
P. . . . . . . . . B ADDR 00D0H.0 A
P0 . . . . . . . . D ADDR 0080H A
P1 . . . . . . . . D ADDR 0090H A
P2 . . . . . . . . D ADDR 00A0H A
P3 . . . . . . . . D ADDR 00B0H A
PSW. . . . . . . . D ADDR 00D0H A
QQ . . . . . . . . C ADDR 01C9H A
RI . . . . . . . . B ADDR 0098H.0 A
RS0. . . . . . . . B ADDR 00D0H.3 A
RS1. . . . . . . . B ADDR 00D0H.4 A
RUN. . . . . . . . N NUMB 0002H A
SBUF . . . . . . . D ADDR 0099H A
SEGADD . . . . . . N NUMB 0034H A
SEGBIT . . . . . . N NUMB 0000H A
SERVE. . . . . . . C ADDR 020EH A
SHIFT. . . . . . . N NUMB 0001H A
SP . . . . . . . . D ADDR 0081H A
START. . . . . . . C ADDR 00BEH A
STEP1. . . . . . . C ADDR 00EEH A
STEP10 . . . . . . C ADDR 017AH A
STEP11 . . . . . . C ADDR 0188H A
STEP12 . . . . . . C ADDR 0196H A
STEP2. . . . . . . C ADDR 00FEH A
STEP3. . . . . . . C ADDR 010EH A
STEP4. . . . . . . C ADDR 011EH A
STEP5. . . . . . . C ADDR 012EH A
STEP6. . . . . . . C ADDR 013EH A
STEP7. . . . . . . C ADDR 014EH A
STEP8. . . . . . . C ADDR 015EH A
STEP9. . . . . . . C ADDR 016CH A
T0INT. . . . . . . C ADDR 0025H A
TB8. . . . . . . . B ADDR 0098H.3 A
A51 MACRO ASSEMBLER ALARM 09/12/2007 23:33:37 PAGE 7
TH0. . . . . . . . D ADDR 008CH A
TI . . . . . . . . B ADDR 0098H.1 A
TL0. . . . . . . . D ADDR 008AH A
TMOD . . . . . . . D ADDR 0089H A
TR0. . . . . . . . B ADDR 0088H.4 A
WAIT . . . . . . . C ADDR 00DCH A
WW . . . . . . . . C ADDR 01CCH A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -