📄 comsre.lst
字号:
MACRO ASSEMBLER COMSRE 09/06/05 09:25:05 PAGE 1
WIN32 MACRO ASSEMBLER MA51 V06.04.14OBJECT MODULE PLACED IN E:\UPSD\COM9_3\COMSRE.OBJ
ASSEMBLER INVOKED BY: MA51.EXE E:\UPSD\COM9_3\COMSRE.A51 OJ(E:\UPSD\COM9_3\COMSRE.OBJ) PIN(D:\CIRCUITSOFT\RIDE\INC;D:\CIRCUITSOFT\RIDE\INC\51) PIN(D:\CIRCUITSOFT\RIDE\INC\51\ST\UPSD3354DV-40\) EP LINES SYNTAX(ASM51) PR(E:\UPSD\COM9_3\COMSRE.LST) XR DB PW(80) RB(0)
LOC OBJ LINE SOURCE
1 $INCLUDE(REG51.INC)
80 $INCLUDE(UPSD3300.INC)
328
0030 329 BAUDRATEUART0 EQU 30H
0031 330 BAUDRATEUART1_H EQU 31H
0032 331 BAUDRATEUART1_L EQU 32H
332
0033 333 DPHUART0_R EQU 33H
0034 334 DPLUART0_R EQU 34H
0035 335 DPHUART0_S EQU 35H
0036 336 DPLUART0_S EQU 36H
337
0037 338 DPHUART1_R EQU 37H
0038 339 DPLUART1_R EQU 38H
0039 340 DPHUART1_S EQU 39H
003A 341 DPLUART1_S EQU 3AH
342
8006 343 PORTA_DIR EQU 8006H
8000 344 PORTA_DATA EQU 8000H
345
00D8 346 TH0_TEMP EQU 0D8H
00F0 347 TL0_TEMP EQU 0F0H ;1MS, 2MS:0F060,3MS:0E890, 4MS:0E0C0, 5MS:0D8F0, 10MS:0B1E0
348
0000 349 FLAG_UART0_S BIT 00H
0001 350 FLAG_UART1_S BIT 01H
351
352
0000 353 ORG 0000H
0000 020080 354 LJMP MAIN
000B 355 ORG 000BH
000B 02011E 356 LJMP TIMER0_INTT
0023 357 ORG 0023H
0023 02012D 358 LJMP SRE_INTT0 ;uart0 data receive and send int
004B 359 ORG 004BH
004B 020188 360 LJMP SRE_INTT1 ;uart1 data receive and send int
361
0080 362 ORG 0080H
363 MAIN:
0080 908006 364 MOV DPTR , # 32774
0083 7400 365 MOV A,#00H
0085 F0 366 MOVX @DPTR,A
0086 908000 367 MOV DPTR , # 32768
0089 E0 368 MOVX A,@DPTR
008A F9 369 MOV R1,A
008B 54F0 370 ANL A,#0F0H
008D FA 371 MOV R2,A ;UART1 BAUDRATE CHOOSE
008E E9 372 MOV A,R1
008F 540F 373 ANL A,#0FH
0091 FB 374 MOV R3,A ;UART0 BAUDRATE CHOOSE
375
376 UART1_BAUDSET0:
0092 BA8009 377 CJNE R2,#80H,UART1_BAUDSET1
0095 7531FF 378 MOV 49 , # 0FFH
0098 7532DC 379 MOV 50 , # 0DCH
009B 0200BC 380 LJMP UART0_BUADSET0
381 UART1_BAUDSET1:
009E BA4009 382 CJNE R2,#40H,UART1_BAUDSET2
00A1 7531FF 383 MOV 49 , # 0FFH
00A4 7532B8 384 MOV 50 , # 0B8H
00A7 0200BC 385 LJMP UART0_BUADSET0
386 UART1_BAUDSET2:
00AA BA2009 387 CJNE R2,#20H,UART1_BAUDSET3
00AD 7531FF 388 MOV 49 , # 0FFH
00B0 753270 389 MOV 50 , # 70H
00B3 0200BC 390 LJMP UART0_BUADSET0
391 UART1_BAUDSET3:
392 ;CJNE R2,#10H,UART1_BAUDSET4
00B6 7531FE 393 MOV 49 , # 0FEH
00B9 7532E0 394 MOV 50 , # 0E0H
395
396 UART0_BUADSET0:
00BC BB0106 397 CJNE R3,#01H,UART0_BAUDSET1
00BF 7530A0 398 MOV 48 , # 0A0H
00C2 0200DA 399 LJMP MAIN_UART
400 UART0_BAUDSET1:
00C5 BB0206 401 CJNE R3,#02H,UART0_BAUDSET2
00C8 7530D0 402 MOV 48 , # 0D0H
00CB 0200DA 403 LJMP MAIN_UART
404 UART0_BAUDSET2:
00CE BB0406 405 CJNE R3,#04H,UART0_BAUDSET3
00D1 7530E8 406 MOV 48 , # 0E8H
00D4 0200DA 407 LJMP MAIN_UART
408 UART0_BAUDSET3:
409 ;CJNE R3,#01H,UART0_BAUDSET4
00D7 7530F4 410 MOV 48 , # 0F4H
411 ;sjmp $
412
413 MAIN_UART:
00DA 758180 414 MOV SP,#80H
00DD 759850 415 MOV SCON,#50H
00E0 75D850 416 MOV SCON1,#50H
417
00E3 759103 418 MOV P3SFS, #03H ;SET P3.1,P3.0 AS UART0,THE OTHERS AS GPIO
00E6 758E0C 419 MOV P1SFS0,#0CH
00E9 758F00 420 MOV P1SFS1,#00H ;SET P1.2,P1.3 AS UART1,THE OTHERS AS GPIO
421
422
00EC 75A892 423 MOV IE,#92H
00EF 75A710 424 MOV IEA,#10H
00F2 75B800 425 MOV IP, #00H
426 ;MOV IPA,#10H ;uart1 has high interrupt preference
427
00F5 75878C 428 MOV PCON,#8CH ;use timer2 as uart1 baudrate generator
429
430 ;uart0 baudrate SET,22.1184M xtal
431 ;use timer1 as the uart0 baudrate generator
00F8 758921 432 MOV TMOD,#21H
00FB 85308B 433 MOV TL1 , 48
00FE 85308D 434 MOV TH1 , 48
0101 D28E 435 SETB TR1
436
437 ;uart1 baudrate SET,22.1184M xtal
438 ;use timer2 as the uart1 baudrate generator
0103 8531CB 439 MOV RCAP2H , 49
0106 8532CA 440 MOV RCAP2L , 50
0109 8531CD 441 MOV TH2 , 49
010C 8532CC 442 MOV TL2 , 50
010F 75C804 443 MOV T2CON,#04H
444
0112 1201E3 445 LCALL RESETDPTR0
0115 1201F3 446 LCALL RESETDPTR1
0118 C200 447 CLR FLAG_UART0_S
011A C201 448 CLR FLAG_UART1_S
449
011C 80FE 450 SJMP $
451
452 TIMER0_INTT:
011E C28C 453 CLR TR0
0120 100007 454 JBC FLAG_UART0_S,UART1_SEND
0123 C201 455 CLR FLAG_UART1_S
0125 D2D9 456 SETB TI1 ;when one data package finished,uart0 start to send data
0127 02012C 457 LJMP RETURN_TIMER0
458
459 UART1_SEND:
012A D299 460 SETB TI
461 RETURN_TIMER0:
012C 32 462 RETI
463
464 SRE_INTT0:
012D 109931 465 JBC TI, SENDINT0
0130 C298 466 CLR RI
467
0132 758CD8 468 MOV TH0 , # 216
0135 758AF0 469 MOV TL0 , # 240
0138 D28C 470 SETB TR0 ;use timer0 as data package discrimination
013A D201 471 SETB FLAG_UART1_S
472
013C E599 473 MOV A,SBUF
013E 853383 474 MOV DPH , 51
0141 853482 475 MOV DPL , 52
0144 F0 476 MOVX @DPTR,A
477
478 OVERFLOW_CHECK0:
0145 E583 479 MOV A,DPH
0147 B43F0D 480 CJNE A,#3FH,RETURNINC_R0
014A E582 481 MOV A,DPL
014C B4FF08 482 CJNE A,#0FFH,RETURNINC_R0
014F C29C 483 CLR REN ;when overflow,forbide receiving data
0151 120203 484 LCALL LED_BLINK
0154 020187 485 LJMP RETURN0
486
487 RETURNINC_R0:
0157 A3 488 INC DPTR
0158 858333 489 MOV 51 , DPH
015B 858234 490 MOV 52 , DPL
015E 020187 491 LJMP RETURN0
492
493 SENDINT0:
0161 853783 494 MOV DPH , 55
0164 853882 495 MOV DPL , 56
0167 E535 496 MOV A , 53
0169 B5830B 497 CJNE A,DPH,RETURNINC_S0
016C E536 498 MOV A , 54
016E B58206 499 CJNE A,DPL,RETURNINC_S0
0171 1201E3 500 LCALL RESETDPTR0
501 ;;;;;;;mov scon1, #50h ;when return from overflow,SCON1 must be reset
0174 020187 502 LJMP RETURN0
503
504 RETURNINC_S0:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -