📄 8250.asm
字号:
ORG 39A0H ;RCV DATA IN 4000h..... :10h,11h,12h
PDATA EQU 8000H ;BTS-LSB
MSB EQU 8001H
LINE EQU 8003H
LSTAT EQU 8005H
START: MOV SP,#50H
MOV A,#80H ;DLAB=1
MOV DPTR,#LINE
MOVX @DPTR,A
MOV A,#18H ;BTS=4800
MOV DPTR,#8000H
MOVX @DPTR,A
MOV DPTR,#MSB
MOV A,#00H
MOVX @DPTR,A
MOV A,#03H ;8-BIT,1-STOP
MOV DPTR,#LINE
MOVX @DPTR,A
MOV A,#00H ;NO-INT
MOV DPTR,#8001H
MOVX @DPTR,A
MOV B,#10H
MOV DPTR,#4000h
MAIN: PUSH DPH
PUSH DPL
CALL SEND
CALL RCV
POP DPL
POP DPH
MOVX @DPTR,A
INC DPTR
INC B
MOV A,B
CJNE A,#00H,MAIN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
GOOD: MOV R4,#0A0H
CALL BUF1
GOOD1: CALL DIS
DJNZ R4,GOOD1
CALL BUF2
GOOD2: CALL DIS
SJMP GOOD2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ERR: CALL BUF3
ERR1: CALL DIS
SJMP ERR1
BUF1: MOV 7EH,#08H
MOV 7DH,#02H
MOV 7CH,#05H
MOV 7BH,#00H
MOV 7AH,#14H
MOV 79H,#14H
RET
BUF2: MOV 7EH,#09H
MOV 7DH,#00H
MOV 7CH,#00H
MOV 7BH,#0DH
MOV 7AH,#10H
MOV 79H,#10H
RET
BUF3: MOV 7EH,#08H
MOV 7DH,#02H
MOV 7CH,#05H
MOV 7BH,#00H
MOV 7AH,#0EH
MOV 79H,#15H
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SEND: MOV DPTR,#LSTAT
WAIT1: MOVX A,@DPTR
ANL A,#20H
JZ WAIT1
MOV A,B
MOV DPTR,#PDATA
MOVX @DPTR,A
RET
;------------------------------------------------------
RCV: MOV DPTR,#LSTAT
WAIT2: MOVX A,@DPTR
JNB ACC.0,WAIT2
ANL A,#0EH
JNZ ERR
MOV DPTR,#PDATA
MOVX A,@DPTR
RET
;---------------------------------------------------------
DIS: MOV A,#00H
MOV R0,#21H
MOVX @R0,A
MOV R0,#7EH
MOV R2,#20H
MOV R3,#00H
MOV DPTR,#LS0
LS2: MOV A,@R0
MOVC A,@A+DPTR
MOV R1,#22H
MOVX @R1,A
MOV A,R2
DEC R1
MOVX @R1,A
DEC R0
LS1: DJNZ R3,LS1
CLR C
RRC A
MOV R2,A
JNZ LS2
INC R1
MOV A,#0FFH
MOVX @R1,A
RET
LS0: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFH,8FH
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -