多機通信是指兩臺以上計算機之間的數(shù)據(jù)傳輸,主從式多機通信是多機通信系統(tǒng)中最簡單的一種,應(yīng)用也最為廣泛。
工作原理:串行口控制寄存器SCON中的SM2為多機通信控制位。串行口以方式2或方式3接收時,若SM2為1,則僅當(dāng)接收到的第9位數(shù)據(jù)RB8為1時,數(shù)據(jù)才裝入SBUF,置位RI,請求CPU對數(shù)據(jù)進行處理;如果接收到的第9位數(shù)據(jù)RB8為0,則不產(chǎn)生中斷標(biāo)志RI,信息丟失,CPU不作任何處理。當(dāng)SM2為0時,則接收到一個數(shù)據(jù)后,不管第9位數(shù)據(jù)RB8是1還是0,都將數(shù)據(jù)裝入接收緩沖器SBUF,置位中斷標(biāo)志RI,請求CPU處理,應(yīng)用這個特性,便可以實現(xiàn)MCS-51的主從式多機通信。
(1)主機的SM2=0;所有從機的SM2=1,以便接收主機發(fā)來的地址。
(2)主機給從機發(fā)送地址時,第9數(shù)據(jù)位上發(fā)送1,以指示從機接收這個地址。
(3)所有從機在SM2=1、RB8=1和RI=0時,接收主機發(fā)來的從機地址,進入相應(yīng)中斷服務(wù)程序,并和本機地址比較以確定是否為被尋址從機。
(4)未被尋址從機保持SM2=1,并退出各自中斷服務(wù)程序。被尋址從機通過指令清零SM2,以正常接收主機隨之而來發(fā)送的數(shù)據(jù)或命令(每帖數(shù)據(jù)第9位均為0),并作相應(yīng)處理。同時向主機發(fā)回接收到的從機地址,供主機核對。
(5)完成主機和被尋址從機之間的數(shù)據(jù)通信,被尋址從機在通信完成后重新使SM2=1,并退出中斷服務(wù)程序,等待下一次通信。