【正确答案】多机通信时,主机向从机发送的信息分地址帧和数据帧两类,以第9位可编程TB8作区分标志。TB8=0,表示数据;TB8=1,表示地址。
多机通信充分利用了80C51串行控制寄存器SCON中的多机通信控制位SM2的特性。当SM2=1时,CPU接收的前8位数据是否送入SBUF取决于接收的第9位RB8:RB8=1,将接收到的前8位数据送入SBUF,并置位RI产生中断请求;RB8=0,将接收到的前8位数据丢弃。即当从机SM2=1时,从机只能接收主机发送的地址帧(RB8=1),对数据帧(RB8=0)不予理睬。当从机SM2=0时,可以接收主机发送的所有信息。
通信开始时,主机首先发送地址。由于各从机SM2=1和RB8=1,所以各从机都分别发出串行中断请求,通过中断服务程序来判断主机发送的地址与本从机地址是否相符。若相符,则把自身的SM2清0,以准备接收其后传送来的数据帧。其余从机由于地址不符,则仍然保持SM2=1状态,因而不能接收主机传送来的数据帧。这就是多机通信中主从机一对一的通信情况。通信只能在主从机之间进行,如若需进行两个从机之间的通信,要通过主机作中介才能实现。
【答案解析】