📄 sca0.asm
字号:
ORG 0000H ;2002/01/23 this is a Sxx program of txd
AJMP START ;txd have av 02/01/21
ORG 0023H
LJMP SERVE
ORG 100H
txen bit p3.5
START: MOV SP,#60H
CLR RS0
MOV R7,#0FFH
DJNZ R7,$
MOV 50H,#0AH ;tx-bytes
MOV 51H,#55H ;tx-buf data/p1
MOV 52H,#56H
MOV 53H,#57H
MOV 54H,#58H
MOV 55H,#59H
MOV 56H,#5AH
MOV 57H,#5BH
MOV 58H,#5CH
MOV 59H,#5DH
MOV 5AH,#5EH
SETB PSW.1
SETB PSW.5
MOV TMOD,#20H
MOV TL1,#0F3H
MOV TH1,#0F3H
SETB TR1
MOV 87H,#80H
MOV SCON,#0F0H
MOV 08H,#50H ;R0,TX-BUF
MOV 0EH,#00H ;R6,AV
LCALL BUF1
SETB EA
SETB ES
DISCON:
LCALL DIS
MOV R7,#20H
ACALL XDEY
CPL p3.4 ;WORK POINT
SJMP DISCON
XDEY: PUSH 07H
LP2: PUSH 07H
LP1: PUSH 07H
LP0: DJNZ R7,LP0
POP 07H
DJNZ R7,LP1
POP 07H
DJNZ R7,LP2
POP 07H
DJNZ R7,XDEY
RET
SERVE: CLR RI
PUSH ACC
PUSH PSW
SETB RS0 ;Rx in 1 area
MOV A,SBUF
XRL A,#00H ;SXX
JZ IS_ME
EXIT: POP PSW
POP ACC
RETI
IS_ME: CLR SM2
MOV A,#00H ;SXX
clr txen
MOV SBUF,A
JNB TI,$
CLR TI
setb txen
RX_COMD:
JNB RI,RX_COMD
CLR RI
IF_RESET:
JNB RB8,DO_WHAT
SETB SM2
LJMP EXIT
DO_WHAT:
MOV A,SBUF
CLR C
CJNE A,#01H,NEXT1
AJMP READY_TX
NEXT1: MOV A,#80H
clr txen
MOV SBUF ,A
JNB TI,$
CLR TI
setb txen
SETB SM2
LJMP EXIT
READY_TX:
JB PSW.1,TX_TRDY
MOV A,#00H ;no ready
clr txen
MOV SBUF,A
JNB TI,$
CLR TI
setb txen
SETB SM2
LJMP EXIT
TX_TRDY:
MOV A,#02H
clr txen
MOV SBUF,A
JNB TI,$
CLR TI
CLR PSW.1
MOV A,@R0
MOV R4,A ;TX-BYTES
MOV SBUF,A
JNB TI,$
CLR TI
ADD A,R6
MOV R6,A
INC R0
TX_DATA: MOV A,P1 ;@R0
MOV SBUF,A
WAIT2: JNB TI,WAIT2
CLR TI
ADD A,R6
MOV R6,A
INC R0
DJNZ R4,TX_DATA
MOV A,R6 ;TX-AV
MOV SBUF,A
JNB TI,$
CLR TI
setb txen
SETB SM2
; inc 79h
MOV R6,#00H ;CLR AV
MOV 08H,#50H ;R0,TX-BUF
LJMP EXIT
BUF1: MOV 7EH,#09H
MOV 7DH,#00H
MOV 7CH,#00H
MOV 7BH,#0DH
MOV 7AH,#14H
MOV 79H,#00H ;Sxx
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 + -