要用程序程序试现多机通讯很容易,就象楼主所说一样,不外乎加几IF判断,但用程序判断就完全忽略了中断的意义了.....
中断,是停止单片一切当切进程,来相应中断中要处理的内容,如果采用楼主的方法,下位机都接收到数据来判断地址什么的来,那就会严重影响下位机的其它运行中的进程, 而采用了多机通信控制位,单片机会判断是不是要中断,不相关的中断,他根本就不进入中断处理,也就根本谈不上打断接收机的运行....
SM2 :多机通信控制位。 接收机的串行口工作于方式2 或3,SM2=1 时,只有当接收到第9 位数据(RB8)为1 时,才把接收到的前8 位数据送入SBUF,且置位RI 发出中断申请引发串行接收中断,否则会将接受到的数据放弃。当SM2=0 时,就不管第位数据是0 还是1,都将数据送入SBUF,并置位RI 发出中断申请
所以,个人傻冒,注个册提醒一下楼主:多机通信控制位很重要,中断应用跟用WHILE(1)扫描是两回事 ,冒是你没理解中断的意义....