📄 从机通讯程序.asm
字号:
address EQU 30H;从机地址
myself EQU 31H;本机地址
sadd EQU 32H;传送数据起始地址
bitlong EQU 33H;传送数据块长度
ORG 0000H
AJMP START
ORG 0023H
LJMP INSER0
ORG 0030H
START: MOV SP, #60H
MOV TMOD, #20H
MOV TH1, #0F3H
MOV TL1, #0F3H
MOV PCON, #80H
MOV SCON, #0F0H
SETB EA
SETB TR1
SETB ES
MOV 08H, #SADD
MOV 0CH, #BITLONG
;SETB 20.0H
;SETB 20.1H
MAIN: SJMP MAIN
;******接收中断程序******
INSER0:CLR RI
PUSH A
PUSH PSW
MOV PSW, #80H
;JB 20.0, ISADDR
;JB 20.1, ISBYTE
;*******接收数据********
ISDATA:;MOV R0, #SADD
MOV A, SBUF
MOV @R0, A
INC R0
DJNZ R4, RETURN
;SETB 20.0H
;SETB 20.1H
SJMP RETURN
;*******验证本机地址*******
ISADDR:MOV A, SBUF
CJNE A, #myself, RETURN
MOV SBUF, #01H;相符,发回答信号01(本机号)
JNB TI, $;以触发主机继续发送数据
CLR TI
;CLR 20.0H
CLR SM2
SJMP RETURN
;*************************
RETURN:POP PSW
POP A
RETI
;*******接收数据桢长度*****
;ISBYTE:MOV A, SBUF
;MOV R0, ##
;MOV @R0 A
;MOV 2FH, A
;MOV 2EH, #61H
;CLR 20.1H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -