?? 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 + -