📄 uart.asm
字号:
#include"SST89x5x4.h"
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN: CLR ES
CLR TR2
MOV PCON,#00H
MOV T2CON,#30H
MOV SCON,#50H
MOV RCAP2H,#0FFH
MOV RCAP2L,#0F7H
MOV TH2,#0FFH
MOV TL2,#0F7H
MOV IP,#10H
SETB REN
CLR TI
CLR RI
SETB TR2
SETB ES
ACALL STI51
MOV R0,#41H
MOV R7,#00H
CHAR: ACALL SENDCH
AJMP CHAR
INTCH: AJMP CRI1 ;串口数据接受处理
CRI1: JNB RI,CRI1
MOV A,SBUF
CLR RI
CJNE A,#0AAH,CRI1
CRI2: JNB RI,CRI2
MOV A,SBUF
CLR RI
CJNE A,#55H,CRI1
CRI3: JNB RI,CRI3
MOV A,SBUF
CLR RI
CJNE A,#0AAH,CRI1
MOV R1,#01H
LOOP: RET
SENDCH: ACALL INTCH ;判断是否发送字符
CJNE R1,#01H,OUT
ACALL GETCH
OUT: AJMP SENDCH
GETCH: MOV R6,#00H ;发送反馈信息
BACK1: CJNE R6,#37,TAB1
AJMP OVER1
TAB1: MOV DPTR,#REC
MOV A,R6
MOVC A,@A+DPTR
MOV SBUF,A
CTI: JNB TI,CTI
CLR TI
INC R6
AJMP BACK1
OVER1: RET
STI51: MOV R6,#00H ;发送初始化信息
BACK2: CJNE R6,#27,TAB2
AJMP OVER2
TAB2: MOV DPTR,#SEND
MOV A,R6
MOVC A,@A+DPTR
MOV SBUF,A
CCTI: JNB TI,CCTI
CLR TI
INC R6
AJMP BACK2
OVER2: RET
REC: DB 50H, 72H, 6FH,74H , 6FH, 63H ,6FH, 6CH, 3AH, 20H ;反馈语句ASCII码表
DB 30H, 78H, 41H, 41H, 2CH, 20H ,30H, 78H, 35H, 35H
DB 2CH, 20H, 30H, 78H, 41H, 41H ,20H, 52H, 65H, 63H
DB 65H, 69H, 76H, 65H, 64H, 0DH ,0AH
SEND: DB 53H, 54H, 49H, 35H, 31H, 20H ,44H, 65H ,76H, 20H ;初始语句ASCII码表
DB 42H, 6FH, 61H, 72H, 64H, 2EH ,20H, 48H ,55H, 53H
DB 54H, 2DH, 53H, 54H, 49H, 0DH ,0AH
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -