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