📄 8251send.asm
字号:
;0~9发送到PC机
D8251 XDATA 8000H ;数据口
S8251 XDATA 8001H ;状态口
A8253 XDATA 9000H
B8253 XDATA 9001H
C8253 XDATA 9002H
D8253 XDATA 9003H
ORG 0000H
AJMP START
ORG 0030H
START: MOV SP,#50H
MOV DPTR,#D8253
MOV A,#00110110B ;计时器0,先低后高,方式3,二进制计数
MOVX @DPTR,A
MOV DPTR,#A8253
MOV A,#2FH ;计数初值
MOVX @DPTR,A
CLR A
MOVX @DPTR,A
MOV DPTR,#S8251
MOV A,#01001110B ;异步1个停止位,无奇偶校验,8位字符,波特率为=发送(接收)时钟/16
MOVX @DPTR,A
MOV A,#00110111B ;不搜索,不内复位,请求发送,错误标志复位,正常通信,允许接收,数据准备好,允许发送
MOVX @DPTR,A
AGAIN: MOV R0,#30H ;发送初值
NEXT: MOV DPTR,#S8251
WAIT: MOVX A,@DPTR
RRC A ;检测TXRDY是否为0,即判断发送是否准备好
JNC WAIT
MOV DPTR,#D8251
MOV A,R0
MOVX @DPTR,A
INC R0
CJNE A,#39H,NEXT ;为9赋初值
AJMP AGAIN
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -