單片機串口通信之(多處理通信的接收程序)
;學習多處理通信的接收程序
本文引用地址:http://butianyuan.cn/article/201611/315803.htmADDREQU27H
STOPEQU00H
;
ORG0000H
RESTE:MOVR0,#00H
L0:DJNZR0,L0
;
START:LCALLINIT_SIO;跳轉到中斷初始化程序中去
CLR RI;中斷請求位清零
SETBSM2;多機通信位置1 ,開始接收地址值
WAIT:JNBRI,WAIT
MOVA,SBUF
CLRRI
CJNEA,#ADDR,WAIT ;查看接收到的地址是否于自己相同,不行同則據需等待
CLRSM2 ;多機通信位置0,開始接收數(shù)據值
DWAIT:JNBRI,DWAIT
MOVA,SBUF
CLRRI
SETBSM2;重新置SM2為1,重新開始接收地址值
CJNEA,#STOP,WAIT;當接收到的地址值為STOP時,結束
SJMPSTART ;程序結束后從新從開始進行運行
INIT_SIO:
MOVTMOD,#00100000B;設置定時器1工作在工作方式2(串行口工作方式)
MOVTH1,#0FDH ;波特率設置為9600b/s
MOVTL1,#0FDH
SETBTR1 ;打開串行口中斷
MOVSCON,#11010000B ;設置串行模式設置寄存器工作在模式3,并且打開允許接收位
RET
END
評論