📄 install.lst
字号:
MOV A,R7
MOV R0,#05H
L22: XCH A,R6
CLR C
RRC A
XCH A,R6
RRC A
DJNZ R0,L22
MOV R7,A
CLR C
CLR A
SUBB A,R7
MOV RC2L,A
MOV TL2,A
CLR A
SUBB A,R6
MOV RC2H,A
MOV TH2,A
MOV T2CON,#034H
MOV SCON,#05AH
L16: CLR RI
JNB RI,$
MOV A,SBUF
CJNE A,#011H,L16
JMP Mon51
$elseif (SERIAL = 12)
;********************************************************************
;* Using second serial interface of Dallas 80C320/520/530 with *
;* Timer 1 and multiple data pointer support *
;* Oscillator frequency = don't care *
;* Automatic Baudrate Adjustment *
;********************************************************************
DPS DATA 086H
CKCON DATA 08EH
SCON1 DATA 0C0H
SBUF1 DATA 0C1H
A51 MACRO ASSEMBLER Configuration for MONITOR-51 (C) 1987-1995 KEIL 03/11/2004 21:40:55 PAGE 14
WDCON DATA 0D8H
RI1 BIT 0C0H.0
RXD1 BIT P1.2
InitSerial: PROMCHECK ; Check if PROM in System
MOV DPS,#00H
ORL CKCON,#010H ; Timer 1 uses a divide by 4 clock
CLR TR1
CLR TF1
CLR A
MOV TL1,A
MOV TH1,A
MOV TMOD,#010H
L4: JB RXD1,L4
L6: JNB RXD1,L6
L7: SETB TR1
L8: JNB RXD1,L10
JNB TF1,L8
L10: JNB RXD1,L10
L12: JNB RXD1,L14
JNB TF1,L12
L14: JNB RXD1,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 WDCON,#080H
MOV SCON1,#05AH
L16: CLR RI1
JNB RI1,$
MOV A,SBUF1
CJNE A,#011H,L16
JMP Mon51
$endif
923
924
925 $if ((SERIAL = 3) OR (SERIAL = 10))
;********************************************************************
;* Interface via additional 80517 UART *
;********************************************************************
SER_INT_ADR EQU 83H ; ADDRESS OF SERIAL INTERRUPT VECTOR
SER_INT_ADR_OFF EQU (INT_ADR_OFF + SER_INT_ADR)
A51 MACRO ASSEMBLER Configuration for MONITOR-51 (C) 1987-1995 KEIL 03/11/2004 21:40:55 PAGE 15
INSTAT: PUSH B ; INPUT STATUS OF SERIAL INTERFACE
MOV B,S1CON
MOV C,B.0
POP B
RET
OUTSTAT: PUSH B ; OUTPUT STATUS OF SERIAL INTERFACE
MOV B,S1CON
MOV C,B.1
POP B
RET
INCHAR: MOV A,S1BUF ; CHARACTER INPUT-ROUTINE
RET
OUTCHAR: MOV S1BUF,A ; CHARACTER OUTPUT-ROUTINE
RET
CLR_TI: ANL S1CON,#11111101B ; CLEAR SERIAL TRANSMIT INTERRUPT FLAG
RET
SET_TI: ORL S1CON,#00000010B ; SET SERIAL TRANSMIT INTERRUPT FLAG
RET
CLR_RI: ANL S1CON,#11111110B ; CLEAR SERIAL RECEIVE INTERRUPT FLAG
RET
CLR_SER_IE: ANL IEN2,#11111110B ; CLEAR SERIAL INTERRUPT ENABLE FLAG
RET
SET_SER_IE: ORL IEN2,#00000001B ; SET SERIAL INTERRUPT ENABLE FLAG
RET
BEFORE_GO: ; this code is executed before a
RET ; a go or proc step is executed
AFTER_GO: ; this code is executed after a go
RET ; command (when a breakpoint was set)
WR_CODE: MOVX @DPTR,A ; insert different code here, but
RET ; do not change any other register
; without saving it
$elseif ((SERIAL = 5) OR (SERIAL = 12))
;********************************************************************
;* Interface via additional 80C320 UART *
;********************************************************************
SER_INT_ADR EQU 03BH ; ADDRESS OF SERIAL INTERRUPT VECTOR
SER_INT_ADR_OFF EQU (INT_ADR_OFF + SER_INT_ADR)
TI1 BIT 0C1H
ES1 BIT 0AEH
INSTAT: MOV C,RI1 ; INPUT STATUS OF SERIAL INTERFACE
RET
OUTSTAT: MOV C,TI1 ; OUTPUT STATUS OF SERIAL INTERFACE
RET
INCHAR: MOV A,SBUF1 ; CHARACTER INPUT-ROUTINE
RET
OUTCHAR: MOV SBUF1,A ; CHARACTER OUTPUT-ROUTINE
RET
CLR_TI: CLR TI1 ; CLEAR SERIAL TRANSMIT INTERRUPT FLAG
A51 MACRO ASSEMBLER Configuration for MONITOR-51 (C) 1987-1995 KEIL 03/11/2004 21:40:55 PAGE 16
RET
SET_TI: SETB TI1 ; SET SERIAL TRANSMIT INTERRUPT FLAG
RET
CLR_RI: CLR RI1 ; CLEAR SERIAL RECEIVE INTERRUPT FLAG
RET
CLR_SER_IE: CLR ES1 ; CLEAR SERIAL INTERRUPT ENABLE FLAG
RET
SET_SER_IE: SETB ES1 ; SET SERIAL INTERRUPT ENABLE FLAG
RET
BEFORE_GO: ; this code is executed before a
RET ; a go or proc step is executed
AFTER_GO: ; this code is executed after a go
RET ; command (when a breakpoint was set)
WR_CODE: MOVX @DPTR,A ; insert different code here, but
RET ; do not change any other register
; without saving it
$elseif (SERIAL = 6)
;********************************************************************
;* Interface via external UART 16450/16550 *
;********************************************************************
SER_INT_ADR EQU 023H ; ADDRESS OF SERIAL INTERR
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -