📄 demo_led.lst
字号:
264
034F E532 265 SW5_OK: MOV A,SEC
0351 B43B0C 266 CJNE A,#59,SW5_OVER
0354 753200 267 MOV SEC,#00H
0357 D297 268 SETB BEEP
0359 120387 269 LCALL DEL
035C C297 270 CLR BEEP
035E 2137 271 JMP WAIT_KEYL1
0360 0532 272 SW5_OVER:INC SEC ;秒加1
0362 D297 273 SETB BEEP
0364 120387 274 LCALL DEL
0367 C297 275 CLR BEEP
0369 2137 276 JMP WAIT_KEYL1
277
036B E532 278 SW6_OK: MOV A,SEC
036D B4000C 279 CJNE A,#00,SW6_OVER
0370 75303B 280 MOV HOR,#59
0373 D297 281 SETB BEEP
0375 120387 282 LCALL DEL
0378 C297 283 CLR BEEP
037A 2137 284 JMP WAIT_KEYL1
037C 1532 285 SW6_OVER:DEC SEC ;时减1
037E D297 286 SETB BEEP
0380 120387 287 LCALL DEL
0383 C297 288 CLR BEEP
0385 2137 289 JMP WAIT_KEYL1
290
0387 7DFF 291 DEL: MOV R5,#0FFH
0389 DDFE 292 DJNZ R5,$
038B 7DFF 293 MOV R5,#0FFH
038D DDFE 294 DJNZ R5,$
038F 7DFF 295 MOV R5,#0FFH
0391 DDFE 296 DJNZ R5,$
0393 7DFF 297 MOV R5,#0FFH
0395 DDFE 298 DJNZ R5,$
0397 7DFF 299 MOV R5,#0FFH
0399 DDFE 300 DJNZ R5,$
039B 7DFF 301 MOV R5,#0FFH
039D DDFE 302 DJNZ R5,$
039F 22 303 RET
304
305
03A0 75F00A 306 BIN_BCD: MOV B,#10
03A3 84 307 DIV AB
03A4 22 308 RET
309
310 ;------------- T0 INTRRUPT 数码管扫描定时中断---------------------------
03A5 C0E0 311 T0_INT: PUSH ACC
03A7 C0D0 312 PUSH PSW
03A9 758CF6 313 MOV TH0,#HIGH(65536-2500) ;T0=2.5MS
03AC 758A3C 314 MOV TL0,#LOW(65536-2500)
03AF 052A 315 INC BUFF_LED_LP
03B1 E52A 316 MOV A,BUFF_LED_LP
03B3 B40850 317 CJNE A,#08,CON_INT0
03B6 752A00 318 MOV BUFF_LED_LP,#00H
03B9 052C 319 INC BUFF_T0
03BB E52C 320 MOV A,BUFF_T0
03BD B43246 321 CJNE A,#50,CON_INT0 ;50*8*2.5MS=1S
03C0 752C00 322 MOV BUFF_T0,#00H
A51 MACRO ASSEMBLER DEMO_LED 05/30/2006 10:17:11 PAGE 6
03C3 0532 323 INC SEC
03C5 E532 324 MOV A,SEC
03C7 B43C1E 325 CJNE A,#60,CONT_SCAN
03CA 753200 326 MOV SEC,#00H
03CD 0531 327 INC MIN
03CF E531 328 MOV A,MIN
03D1 B43C14 329 CJNE A,#60,CONT_SCAN
03D4 753100 330 MOV MIN,#00H
03D7 0530 331 INC HOR
03D9 E530 332 MOV A,HOR
03DB B4180A 333 CJNE A,#24,CONT_SCAN ;24:00:00时BEEP报时,
03DE 753000 334 MOV HOR,#00H
03E1 D297 335 SETB beep
03E3 120387 336 lcall del
03E6 C297 337 CLR beep
338
03E8 E532 339 CONT_SCAN:MOV A,SEC
03EA 1203A0 340 LCALL BIN_BCD
03ED 85F029 341 MOV BUFF_LED8,B
03F0 F528 342 MOV BUFF_LED7,A
03F2 E531 343 MOV A,MIN
03F4 1203A0 344 LCALL BIN_BCD
03F7 85F026 345 MOV BUFF_LED5,B
03FA F525 346 MOV BUFF_LED4,A
03FC E530 347 MOV A,HOR
03FE 1203A0 348 LCALL BIN_BCD
0401 85F023 349 MOV BUFF_LED2,B
0404 F522 350 MOV BUFF_LED1,A
0406 E52A 351 CON_INT0: MOV A,BUFF_LED_LP
352 ;MOV B,#08
353 ;DIV AB
354 ;MOV A,B
0408 23 355 RL A
0409 90040D 356 MOV DPTR,#TAB_SCAN
040C 73 357 JMP @A+DPTR
040D 811D 358 TAB_SCAN: AJMP SCAN_L1
040F 8128 359 AJMP SCAN_L2
0411 8133 360 AJMP SCAN_L3
0413 813E 361 AJMP SCAN_L4
0415 8149 362 AJMP SCAN_L5
0417 8154 363 AJMP SCAN_L6
0419 815F 364 AJMP SCAN_L7
041B 816A 365 AJMP SCAN_L8
041D C292 366 SCAN_L1: CLR DIG_A
041F C293 367 CLR DIG_B
0421 C294 368 CLR DIG_C
0423 E522 369 MOV A,BUFF_LED1 ;(000)
0425 020472 370 JMP END_SCAN
0428 D292 371 SCAN_L2: SETB DIG_A
042A C293 372 CLR DIG_B
042C C294 373 CLR DIG_C
042E E523 374 MOV A,BUFF_LED2 ;(100)
0430 020472 375 JMP END_SCAN
0433 D292 376 SCAN_L3: SETB DIG_A
0435 D293 377 SETB DIG_B
0437 C294 378 CLR DIG_C
0439 E525 379 MOV A,BUFF_LED4 ;(110)
043B 020472 380 JMP END_SCAN
043E D292 381 SCAN_L4: SETB DIG_A
0440 D293 382 SETB DIG_B
0442 D294 383 SETB DIG_C
0444 E529 384 MOV A,BUFF_LED8 ;(111)
0446 020472 385 JMP END_SCAN
0449 D292 386 SCAN_L5: SETB DIG_A
044B C293 387 CLR DIG_B
044D D294 388 SETB DIG_C
A51 MACRO ASSEMBLER DEMO_LED 05/30/2006 10:17:11 PAGE 7
044F E527 389 MOV A,BUFF_LED6 ;(101)
0451 020472 390 JMP END_SCAN
0454 C292 391 SCAN_L6: CLR DIG_A
0456 C293 392 CLR DIG_B
0458 D294 393 SETB DIG_C
045A E526 394 MOV A,BUFF_LED5 ;(001)
045C 020472 395 JMP END_SCAN
045F C292 396 SCAN_L7: CLR DIG_A
0461 D293 397 SETB DIG_B
0463 D294 398 SETB DIG_C
0465 E528 399 MOV A,BUFF_LED7 ;(011)
0467 020472 400 JMP END_SCAN
046A C292 401 SCAN_L8: CLR DIG_A
046C D293 402 SETB DIG_B
046E C294 403 CLR DIG_C
0470 E524 404 MOV A,BUFF_LED3 ;(010)
405
0472 90047E 406 END_SCAN: MOV DPTR,#TAB_LED
0475 93 407 MOVC A,@A+DPTR
0476 120490 408 LCALL SEND164
0479 D0D0 409 EXIT_T0: POP PSW
047B D0E0 410 POP ACC
047D 32 411 RETI
412
047E C0F9A4B0 413 TAB_LED: DB 0C0H,0F9H,0A4H,0B0H,99H,92H ;数码管显示字型表
0482 9992
0484 82F88090 414 DB 82H,0F8H,80H,90H,88H,83H,0A7H
0488 8883A7
048B A1868EBF 415 DB 0A1H,86H,8EH,0BFH,0FFH
048F FF
416
0490 752B08 417 SEND164: MOV BUFF_164,#08 ;发送数据到74164
0493 C0E0 418 PUSH ACC
0495 C291 419 SND164_LP:CLR CLK164
0497 33 420 RLC A
0498 9290 421 MOV DAT164,C
049A D291 422 SETB CLK164
049C D52BF6 423 DJNZ BUFF_164,SND164_LP
049F D0E0 424 POP ACC
04A1 22 425 RET
426
427 END
A51 MACRO ASSEMBLER DEMO_LED 05/30/2006 10:17:11 PAGE 8
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ACC. . . . . . . . D ADDR 00E0H A
B. . . . . . . . . D ADDR 00F0H A
BEEP . . . . . . . B ADDR 0090H.7 A
BIN_BCD. . . . . . C ADDR 03A0H A
BUFF_164 . . . . . N NUMB 002BH A
BUFF_KEY . . . . . N NUMB 0021H A
BUFF_LED1. . . . . N NUMB 0022H A
BUFF_LED2. . . . . N NUMB 0023H A
BUFF_LED3. . . . . N NUMB 0024H A
BUFF_LED4. . . . . N NUMB 0025H A
BUFF_LED5. . . . . N NUMB 0026H A
BUFF_LED6. . . . . N NUMB 0027H A
BUFF_LED7. . . . . N NUMB 0028H A
BUFF_LED8. . . . . N NUMB 0029H A
BUFF_LED_LP. . . . N NUMB 002AH A
BUFF_T0. . . . . . N NUMB 002CH A
CLK164 . . . . . . B ADDR 0090H.1 A
CLR_RAM. . . . . . C ADDR 0108H A
CONT_SCAN. . . . . C ADDR 03E8H A
CON_INT0 . . . . . C ADDR 0406H A
DAT164 . . . . . . B ADDR 0090H.0 A
DEL. . . . . . . . C ADDR 0387H A
DIG_A. . . . . . . B ADDR 0090H.2 A
DIG_B. . . . . . . B ADDR 0090H.3 A
DIG_C. . . . . . . B ADDR 0090H.4 A
EA . . . . . . . . B ADDR 00A8H.7 A
END_SCAN . . . . . C ADDR 0472H A
ET0. . . . . . . . B ADDR 00A8H.1 A
EXIT_T0. . . . . . C ADDR 0479H A
HOR. . . . . . . . N NUMB 0030H A
KEYL1. . . . . . . B ADDR 0090H.5 A
KEYL2. . . . . . . B ADDR 0090H.6 A
KS1. . . . . . . . C ADDR 0175H A
KS10 . . . . . . . C ADDR 0244H A
KS11 . . . . . . . C ADDR 024FH A
KS12 . . . . . . . C ADDR 0266H A
KS13 . . . . . . . C ADDR 027DH A
KS14 . . . . . . . C ADDR 0294H A
KS15 . . . . . . . C ADDR 02ABH A
KS16 . . . . . . . C ADDR 02C2H A
KS2. . . . . . . . C ADDR 018CH A
KS3. . . . . . . . C ADDR 01A3H A
KS4. . . . . . . . C ADDR 01BAH A
KS5. . . . . . . . C ADDR 01D1H A
KS6. . . . . . . . C ADDR 01E8H A
KS7. . . . . . . . C ADDR 01FFH A
KS8. . . . . . . . C ADDR 0216H A
KS9. . . . . . . . C ADDR 022DH A
MAIN . . . . . . . C ADDR 0100H A
MIN. . . . . . . . N NUMB 0031H 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
SCAN_L1. . . . . . C ADDR 041DH A
SCAN_L2. . . . . . C ADDR 0428H A
SCAN_L3. . . . . . C ADDR 0433H A
SCAN_L4. . . . . . C ADDR 043EH A
SCAN_L5. . . . . . C ADDR 0449H A
A51 MACRO ASSEMBLER DEMO_LED 05/30/2006 10:17:11 PAGE 9
SCAN_L6. . . . . . C ADDR 0454H A
SCAN_L7. . . . . . C ADDR 045FH A
SCAN_L8. . . . . . C ADDR 046AH A
SEC. . . . . . . . N NUMB 0032H A
SEND164. . . . . . C ADDR 0490H A
SND164_LP. . . . . C ADDR 0495H A
SP . . . . . . . . D ADDR 0081H A
SW1_OK . . . . . . C ADDR 02DFH A
SW1_OVER . . . . . C ADDR 02F0H A
SW2_OK . . . . . . C ADDR 02FBH A
SW2_OVER . . . . . C ADDR 030CH A
SW3_OK . . . . . . C ADDR 0317H A
SW3_OVER . . . . . C ADDR 0328H A
SW4_OK . . . . . . C ADDR 0333H A
SW4_OVER . . . . . C ADDR 0344H A
SW5_OK . . . . . . C ADDR 034FH A
SW5_OKA. . . . . . C ADDR 02D9H A
SW5_OVER . . . . . C ADDR 0360H A
SW6_OK . . . . . . C ADDR 036BH A
SW6_OKA. . . . . . C ADDR 02DCH A
SW6_OVER . . . . . C ADDR 037CH A
T0_INT . . . . . . C ADDR 03A5H A
TAB_KL1. . . . . . C ADDR 0146H A
TAB_KL2. . . . . . C ADDR 0165H A
TAB_LED. . . . . . C ADDR 047EH A
TAB_SCAN . . . . . C ADDR 040DH A
TH0. . . . . . . . D ADDR 008CH A
TL0. . . . . . . . D ADDR 008AH A
TMOD . . . . . . . D ADDR 0089H A
TR0. . . . . . . . B ADDR 0088H.4 A
WAIT_KEYL1 . . . . C ADDR 0137H A
WAIT_KEYL2 . . . . C ADDR 0156H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -