📄 install.lst
字号:
MOV SCON1,#01011010B ; Init Serial Interface
JMP Mon51
$endif
405
406 $if (SERIAL = 6)
;********************************************************************
;* Using external UART 16450/16550 *
;* UART Oscillator frequency = 12.000 MHz *
;* Set Baudrate to 9600 Baud *
;********************************************************************
SIOCLK EQU 3686400 ; EXTERNAL SIO XTAL FREQUENZY
BAUDRATE EQU 9600 ;9600 bps
BAUDDIV EQU (SIOCLK / 16) / BAUDRATE
SIOADDR EQU 0FC00H ; SIO Address
InitSerial: PROMCHECK ; Check if PROM in System
MOV DPTR,#SIOADDR+3
MOV A,#83H ; Select Baudrate Registers
MOVX @DPTR,A
MOV DPTR,#SIOADDR
MOV A,#LOW (BAUDDIV)
MOVX @DPTR,A
INC DPTR
MOV A,#HIGH (BAUDDIV)
MOVX @DPTR,A
MOV DPTR,#SIOADDR+3
MOV A,#03H ; Mode: 8-bit, 1 stop, no parity
MOVX @DPTR,A
MOV DPTR,#SIOADDR+1
CLR A
MOVX @DPTR,A ; disable all interrupts
MOV DPTR,#SIOADDR+4
MOVX @DPTR,A
JMP Mon51
$elseif (SERIAL = 7)
;********************************************************************
;* Using Timer 1 to generate Baud Rates *
;* for 8052 and compatibles except Dallas 80C320/520/530 *
;* Oscillator frequency = don't care *
;* Automatic Baudrate Adjustment *
;********************************************************************
InitSerial: PROMCHECK ; Check if PROM in System
CLR TR1
CLR TF1
CLR A
MOV TL1,A
MOV TH1,A
MOV TMOD,#010H
L4: JB RXD,L4
L6: JNB RXD,L6
A51 MACRO ASSEMBLER Configuration for MONITOR-51 (C) 1987-1995 KEIL 03/11/2004 21:40:55 PAGE 8
L7: SETB TR1
L8: JNB RXD,L10
JNB TF1,L8
L10: JNB RXD,L10
L12: JNB RXD,L14
JNB TF1,L12
L14: JNB RXD,L14
L15: CLR TR1
JB TF1,InitSerial
MOV R7,TL1
MOV R6,TH1
MOV A,R7
ADD A,#040H
MOV R7,A
CLR A
ADDC A,R6
MOV R6,A
MOV A,R7
RLC A
MOV A,R6
RLC A
MOV R7,A
CLR C
CLR A
SUBB A,R7
MOV TH1,A
CLR A
MOV TL1,A
MOV TMOD,#00100000B ;C/T = 0, Mode = 2
SETB TR1
ORL PCON,#080H
MOV SCON,#05AH
L16: CLR RI
JNB RI,$
MOV A,SBUF
CJNE A,#011H,L16
JMP Mon51
$elseif (SERIAL = 8)
498 ;********************************************************************
499 ;* Using Timer 2 to generate Baud Rates (8052 and compatibles) *
500 ;* Oscillator frequency = don't care *
501 ;* Automatic Baudrate Adjustment *
502 ;********************************************************************
00C8 503 T2CON DATA 0C8H
00C9 504 T2MOD DATA 0C9H
00CA 505 RC2L DATA 0CAH
00CB 506 RC2H DATA 0CBH
00CC 507 TL2 DATA 0CCH
00CD 508 TH2 DATA 0CDH
00CA 509 TR2 BIT 0C8H.2
00CF 510 TF2 BIT 0C8H.7
511
0000 512 InitSerial: PROMCHECK ; Check if PROM in System
0000 E4 528 CLR A
0001 F5CB 529 MOV RC2H,A
0003 F5CA 530 MOV RC2L,A
0005 F5CC 531 MOV TL2,A
0007 F5CD 532 MOV TH2,A
0009 F5C9 533 MOV T2MOD,A
000B F5C8 534 MOV T2CON,A
000D 20B0FD 535 L4: JB RXD,L4
A51 MACRO ASSEMBLER Configuration for MONITOR-51 (C) 1987-1995 KEIL 03/11/2004 21:40:55 PAGE 9
0010 30B0FD 536 L6: JNB RXD,L6
0013 D2CA 537 L7: SETB TR2
0015 30B003 538 L8: JNB RXD,L10
0018 30CFFA 539 JNB TF2,L8
001B 30B0FD 540 L10: JNB RXD,L10
001E 30B003 541 L12: JNB RXD,L14
0021 30CFFA 542 JNB TF2,L12
0024 30B0FD 543 L14: JNB RXD,L14
0027 C2CA 544 L15: CLR TR2
0029 20CFD4 545 JB TF2,InitSerial
002C AFCC 546 MOV R7,TL2
002E AECD 547 MOV R6,TH2
548
0030 EE 549 MOV A,R6
0031 C3 550 CLR C
0032 13 551 RRC A
0033 FC 552 MOV R4,A
0034 EF 553 MOV A,R7
0035 13 554 RRC A
0036 2F 555 ADD A,R7
0037 FF 556 MOV R7,A
0038 EC 557 MOV A,R4
0039 3E 558 ADDC A,R6
003A FE 559 MOV R6,A
560
003B EF 561 MOV A,R7
003C 2410 562 ADD A,#010H
003E FF 563 MOV R7,A
003F E4 564 CLR A
0040 3E 565 ADDC A,R6
0041 FE 566 MOV R6,A
567
0042 EF 568 MOV A,R7
0043 7805 569 MOV R0,#05H
0045 CE 570 L22: XCH A,R6
0046 C3 571 CLR C
0047 13 572 RRC A
0048 CE 573 XCH A,R6
0049 13 574 RRC A
004A D8F9 575 DJNZ R0,L22
004C FF 576 MOV R7,A
004D C3 577 CLR C
004E E4 578 CLR A
004F 9F 579 SUBB A,R7
0050 F5CA 580 MOV RC2L,A
0052 F5CC 581 MOV TL2,A
0054 E4 582 CLR A
0055 9E 583 SUBB A,R6
0056 F5CB 584 MOV RC2H,A
0058 F5CD 585 MOV TH2,A
586
005A 75C834 587 MOV T2CON,#034H
005D 75985A 588 MOV SCON,#05AH
0060 C298 589 L16: CLR RI
0062 3098FD 590 JNB RI,$
0065 E599 591 MOV A,SBUF
0067 B411F6 592 CJNE A,#011H,L16
006A 020000 F 593 JMP Mon51
594
595
596 $elseif (SERIAL = 9)
;********************************************************************
;* Using internal Baudrate Generator to generate Baud Rates *
;* Oscillator frequency = don't care *
;* Automatic Baudrate Adjustment *
;********************************************************************
A51 MACRO ASSEMBLER Configuration for MONITOR-51 (C) 1987-1995 KEIL 03/11/2004 21:40:55 PAGE 10
SRELL DATA 0AAH
SRELH DATA 0BAH
ADCON DATA 0D8H
BD BIT 0D8H.7
InitSerial: PROMCHECK ; Check if PROM in System
CLR TR1
CLR TF1
CLR A
MOV TL1,A
MOV TH1,A
MOV TMOD,#010H
L4: JB RXD,L4
L6: JNB RXD,L6
L7: SETB TR1
L8: JNB RXD,L10
JNB TF1,L8
L10: JNB RXD,L10
L12: JNB RXD,L14
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -