1
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV SP,#60H
MOV TMOD,#20H ;設置T1 為方式2
MOV TH1,#0FDH ;設置波特率為9600
MOV TL1,#0FDH
MOV SCON,#50H ;設置串口為方式1
MOV PCON,#00H
SETB TR1 ;啟動定時器1
LOOP: JNB RI,$
CLR RI
MOV A,SBUF
CJNE A,#'X',FSEND
MOV A,#'T'
AJMP SEND
FSEND: MOV A,#'F'
SEND: MOV SBUF,A ;回發數據
JNB TI,$
CLR TI
SJMP LOOP
END
2、采用串行口中斷方式,實現與實驗2相同的功能。
ORG 0000H
LJMP MAIN
ORG 0023H
LJMP ZRS232
ORG 0100H
MAIN: CLR EA
MOV SP,#60H ;給堆棧指針賦初值
MOV TMOD,#20H ;設置T1 為方式2
MOV TH1,#0FDH ;設置波特率為9600
MOV TL1,#0FDH
MOV SCON,#50H ;設置串口位方式1,允許接收
MOV PCON,#00H
SETB ES
SETB TR1 ;定時器1 開始計數
SETB EA
SJMP $
ZRS232: JB RI,ZR
ZT: CLR TI
AJMP ZEND
ZR: CLR RI
MOV A,SBUF
CJNE A,#'X',FSEND
MOV A,#'T'
AJMP SEND
FSEND: MOV A,#'F'
SEND: MOV SBUF,A ;回發數據
ZEND: RETI
END
|