导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→嘗試串連89C51多處理機連線通信出現問題,急求高手指點指點[terryzz]

 *第37289篇: 嘗試串連89C51多處理機連線通信出現問題,急求高手指點指點!!

  
楼 主:terryzz 2006年1月19日05:48
 嘗試串連89C51多處理機連線通信出現問題,急求高手指點指點!!
嘗試使用串列埠模式3 之多處理機連線通信,發現89C51 未能自動識別及判斷位址以接收數據,請各高手指點指點!!
主機已初設:
 SCON = 0xF0; /* uart in mode 3(9 bit), REN=1 */
 SADDR=0x01; /* local address */
 SADEN=0xFF; /* address mask*/

從機已初設:
 SCON = 0xF0; /* uart in mode 3 (9 bit), REN=1 */
 SADDR=0x02; /* local address*/
 SADEN=0xFF; /* address mask*/

已確定從機能夠收到主機發出之8位元地址及數據

問題是:
如主機發出之地址不等於從機之地址時,從機依然接收數據
例如:
TB8 = 1;
SBUF = 0xf3;
  <---不等於從機地址
TB8 = 0;
SBUF = 0x55;   <----從機依然接收數據0x55

從Atmel 89c51 Data Sheet
"The automatic
address recognition feature is enabled when the multiprocessor communication feature is enabled
(SM2 bit in SCON register is set).
Implemented in the hardware, automatic address recognition
enhances the multiprocessor communication feature by allowing the serial port to examine the
address of each incoming command frame. Only when the serial port recognizes its own address will
the receiver set the RI bit in the SCON register to generate an interrupt."

得知89C51
可以自動試別及判斷位址正確與否從而接收數據,但始終未能實現,已苦試個多月,請各高手指點指點!!!


  
2楼:terryzz 2006年1月20日00:10
 求助~~
自己頂一下....哭求网友回覆>  .  <
  
3楼:lenglianxi 2006年1月20日16:03
 從機是怎么處理地阯位的?
TB8 = 1;
SBUF = 0xf3;
    <---不等於從機地址
/*
此時,所有從機都將收到這個數據.
從機利用此數據判斷是否主機呼叫自己.
如是,復位SM2(SM2=0),否則,依舊保持SM2=1
*/
TB8 = 0;
SBUF = 0x55;     <----從機依然接收數據0x55
/*
這個數據將隻被已經復位SM2的從機收到,其他的從機都不應當也不可能收到這個數據的.
*/
從機的數據處理如下:
...
unsinged char c;
if(RI)
{
 RI=0;
c = SBUF;
if(SM2) // 收到的是地阯位
{
 if(c = MYADDR) // 對地阯位判斷
   SM2=0;
}
else
{
//接收到一些數據暸,對數據處理
}

}


  
4楼:terryzz 2006年1月21日02:27
 究竟89c51可否實現硬件核對地址呢
先謝謝你的回覆!!
因為Atmel 的Data sheet 上寫有:
"Only when the serial port recognizes its own address will the receiver set the RI bit in the SCON register to generate an interrupt."
而且Atmel serial mode 3 的參考程式亦未有軟體數據處理,以核對地址。

從以上兩點,究竟89c51可否實現硬件核對地址呢??
因為此功能對本人十分重要!!

  
5楼:lenglianxi 2006年1月23日09:41
 
89c52不能.
不過某些擴展型的單片機可以.
具體型號我記不得暸.



>>>>>>对该主题发表你的看法

本主题贴数5,分页: [第1页]


[上一篇主题]:请教C52向8019缓冲写入出错的问题

[下一篇主题]:请教各位大虾推荐一款带EEPROM的单片机(除MICROCHIP之外,成本太高)?