📄 receive.asm
字号:
ORG 0
LJMP 100H
ORG 100H
MAIN: MOV R0,#30H ;加载接受缓存区起始地址
MAI1: MOV DPTR,#0BF00H ;加载DATA标志端口地址
MAI2: MOVX A,@DPTR ;读入主控制器数据标志
ANL A,#01H ;屏蔽A高7位
JZ MAI2 ;查询DATA信号是否为高
MOV A,#0FFH
MOV P1,A ;P1口要读入数据,先置全"1"
MOV A,P1 ;读入P1口的数据
PUSH A ;压入最新接收的数据
MOV @R0,A ;将接收数据写入接收数据缓冲区
INC R0 ;指向下一个缓冲存储单元
MOV A,#01H
MOV DPTR,#0DF00H ;加载ACK端口地址
MOVX @DPTR,A ;ACK端口置高
MOV DPTR,#0BF00H ;加载DATA标志端口地址
MAI3: MOVX A,@DPTR
ANL A,#01H ;屏蔽高7位数据
JNZ MAI3 ;若DATA未变低,等待
MOV A,#0
MOV DPTR,#0DF00H ;加载ACK端口地址
MOVX @DPTR,A ;ACK端口置低
POP A ;弹出读入的数据
CJNE A,#0FFH,MAI1 ;若不是0FFH结束符,读下一数据
sjmp $
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -