📄 congji1.asm
字号:
T_RSTATE EQU P3.7
ORG 0000H
LJMP START
ORG 0023H
LJMP SERIAL_INTERRUPT
ORG 0100H
;****************************************************
;
;程序初始化
;
;****************************************************
START:MOV 30H,#01H;设置从机号
MOV TMOD,#20H
MOV TH1,#0FDH
MOV TL1,#0FDH
SETB TR1
MOV SCON,#0F0H
MOV PCON,#80H
SETB ES;开串口中断使能
SETB EA;开全局中断使能
SJMP $
;****************************************************
;
;中断服务程序,按照通讯协议与主机之间交换数据
;
;****************************************************
SERIAL_INTERRUPT:
CLR RI
CLR ES
MOV R1,SBUF
MOV A,R1
CJNE A,30H,COMM_END;与存储在30H中的从机号进行比较
CLR SM2
SETB T_RSTATE;将MAX485设置为发送状态
MOV SBUF,30H
JNB TI,$;等待串口数据发送结束
CLR TI
CLR T_RSTATE;将MAX485设置为接收状态
JNB RI,$
CLR RI
JB RB8,COMM_END
SETB T_RSTATE
MOV SBUF,P1
JNB TI,$;等待发送完毕
CLR TI
CLR T_RSTATE;将MAX485设置为输入状态
COMM_END:
SETB SM2
SETB ES
RETI
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -