多机通信,不一定画上 MAX485,直接连接,就可以实验程序了。
前面初始化,已经是 SM2=1,只能收到 TB8=1 的数据。
所以,程序中,并不需要再判断 RB8 是否为一。
;-------------------
if (RI) {
RI = 0;
a = SBUF;
if(a == 0x01) { // (2好从机为02)
SM2 = 0;
delay(10);
P35 = 1; //fasong
SBUF = 0x12;
while(!TI); //--楼主这里漏掉了分号
TI = 0;
P35 = 0;
SM2 = 1; //继续设置为仅收取 TB8=1 的状态
}
}
参考:
http://hi.baidu.com/do_sermon/item/46b7c92b103d24cea4275a77
485多机通信,其实用方式1更方便,不需用方式3.
从机需要确定一个地址,主机通过地址区分不同从机。
另发送需要控制485的方向。
你的程序有点复杂化了吧