📄 com8123(check).asm
字号:
;------------------------------------------------------------
; 串口调试程序 ( 查询方式。)
;
; 当晶体为 22.1184 MHZ时,SPD=09DH 通讯速率为 1200。
; (晶体电容为22pf) SPD=0CEH 通讯速率为 2400。
; SPD=0E9H 通讯速率为 4800。
; SPD=0F3H 通讯速率为 9600。
;------------------------------------------------------------
SPD EQU 30H ;放入的计数初值。
NUM EQU 40H ;要发送的数据。
ORG 0000H
LJMP SERIAL ;SERIAL
ORG 100H
SERIAL:
;----------------------------------------------------------------------------
; 初始化串口
;----------------------------------------------------------------------------
MOV SPD,#09dH ;0FDH ;计数值初值。
MOV IE,#80H ;禁止所有中断。
MOV TMOD,#20H ;T1工作在模式2下。
MOV PCON,#80H ;smod=1.
MOV SCON,#0C0H ;50H ;串行口工作在方式1。==
YYY:
MOV TH1,SPD ;时间常数。
MOV TL1,SPD
SETB TR1 ;启动定时器1。
;------------------------------------------------------------------------
; 测试发送功能
;------------------------------------------------------------------------
MOV R3,#0ffh ;1BH ;发送1BH个数据。
MOV A,#78H ;NUM ;要发送的数据。
TR_NEXT:
MOV SBUF,A
WAIT_TR:
JBC TI,TR_OK
SJMP WAIT_TR
TR_OK:
DJNZ R3,TR_NEXT
;---------------------------------------------------------------------------------
; INC SPD ;搜索计数初值时要加入这几句。
; MOV A,SPD
; CJNE A,#00H,YYY ;若从00-FFH了,停止。
; SJMP $
;---------------------------------------------------------------------------------
LJMP YYY
;-------------------------------------------------------------------------
; 测试接收功能
; 接收到的数据存放 50H-7FH 的RAM中。
;-------------------------------------------------------------------------
ORG 900H
SERIALA:
;----------------------------------------------------------------------------
; 初始化串口
;----------------------------------------------------------------------------
MOV SPD,#09DH ;F3H ;计数值初值。
MOV IE,#80H ;禁止所有中断。
MOV TMOD,#20H ;T1工作在模式2下。
MOV PCON,#80H ;smod=1.
MOV SCON,#50H ;串行口工作在方式1。
MOV TH1,SPD ;时间常数。(1200)
MOV TL1,SPD
SETB TR1 ;启动定时器1。
MOV R1,#50H ;保存接收到的数据首址。
WAIT_RE:
JBC RI,RE_OK
SJMP WAIT_RE
RE_OK:
MOV A,SBUF
MOV @R1,A
INC R1
CJNE R1,#80H,WAIT_RE
MOV R1,#50H
LJMP WAIT_RE
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -