📄 rs8251.asm
字号:
;FOR EAT598
;系统晶振是 11.0592 MHz
Z8251 EQU 0F202H ;8251 状态/命令口地址
D8251 EQU 0F200H ;8251 数据口地址
COM_MOD EQU 04EH ;字符 8 位, 1 位起始位, 1 位停止位
;异步 * 16
COM_COM EQU 25H ;请求发送,发送允许,接收允许
ORG 0000H
AJMP START
ORG 0040H
START:
MOV SP,#60H
LCALL INIT8251 ;初始化8251
WAIT1:
MOV DPTR,#Z8251 ;8251 状态寄存器(读)
MOVX A,@DPTR
ANL A,#02H
JZ WAIT1 ;判断是否有串行输入
MOV DPTR,#D8251
MOVX A,@DPTR ;读接收到的字符
MOV B,A
MOV DPTR,#Z8251
WAIT3: MOVX A,@DPTR
ANL A,#01H
JZ WAIT3 ;判断发送允许
MOV A,B
MOV DPTR,#D8251
MOVX @DPTR,A ;发送数据
NOP
MOV DPTR,#Z8251
WAIT2: MOVX A,@DPTR
ANL A,#01H
JZ WAIT2 ;判断发送允许
SJMP WAIT1
INIT8251: ;8251 初始化子程序
PUSH DPH ;保存现场
PUSH DPL
PUSH ACC
MOV DPTR,#Z8251
MOV A,#COM_MOD ;置 8251 工作方式
MOVX @DPTR,A
NOP
MOV A,#COM_COM ;请求发送,发送允许,接收允许
MOVX @DPTR,A
NOP
MOV A,#65H
MOVX @DPTR,A
NOP
MOV A,#COM_MOD ;置 8251 工作方式
MOVX @DPTR,A
NOP
MOV A,#COM_COM ;请求发送,发送允许,接收允许
MOVX @DPTR,A
NOP
POP ACC ;恢复现场
POP DPL
POP DPH
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -