<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 組態(tài)王與單片機(jī)多機(jī)串口通信的設(shè)計

          組態(tài)王與單片機(jī)多機(jī)串口通信的設(shè)計

          作者: 時間:2011-12-12 來源:網(wǎng)絡(luò) 收藏

          Sta:設(shè)備地址,1個字節(jié),設(shè)備地址范圍為0~255,此地址為單片機(jī)的地址,由單片機(jī)中的程序決定;
          R:讀標(biāo)志,1個字節(jié)(0x52);
          W:寫標(biāo)志,1個字節(jié)(0x57);
          DataType:需要交換的數(shù)據(jù)類型,1字節(jié)。其中“1”代表字節(jié),“2”代表字,“3”代表浮點(diǎn)型;
          DataNum:讀取數(shù)據(jù)的個數(shù),1字節(jié);
          DataAddr:數(shù)據(jù)偏移地址,2字節(jié),低字節(jié)在前,高字節(jié)在后;
          Data:實(shí)際傳輸?shù)臄?shù)據(jù),低字節(jié)在前,高字節(jié)在后;
          DataLong:單片機(jī)返回Data的字節(jié)數(shù),2字節(jié),低字節(jié)在前,高字節(jié)在后:
          CRC:為從第1個字節(jié)至CRC前的所有字節(jié)的異或值,1字節(jié);
          ErrorCode:錯誤代碼,“0”代表正確應(yīng)答,“1”代表數(shù)據(jù)類型錯誤,“2”代表數(shù)據(jù)范圍超限,“3”代表指令無法識別。

          5 單片機(jī)通訊程序流程設(shè)計
          圖4為程序流程,圖5為單片機(jī)通訊程序流程。80C51系列單片機(jī)多機(jī)通訊可歸納如下:

          上位機(jī)的SM2=0,所有下位機(jī)的SM2=1,以便只接收上位機(jī)發(fā)來的地址;
          上位機(jī)給下位機(jī)發(fā)送地址時,第9數(shù)據(jù)位應(yīng)該為1,以指示下位機(jī)接收這個地址;
          所有下位機(jī)在SM2=1,RB8=1和RI=0時,接收上位機(jī)發(fā)來的地址,進(jìn)入相應(yīng)中斷服務(wù)程序,并與本機(jī)地址相比較,以確認(rèn)是否為被尋址的下位機(jī);
          被尋址下位機(jī)通過指令清除SM2,以便正常接收上位機(jī)發(fā)送來的數(shù)據(jù),并向上位機(jī)發(fā)回接收到的地址以便核實(shí)。未被尋址的下位機(jī)保持SM2=1,并退出各自的中斷服務(wù)程序;
          完成上位機(jī)和被尋址下位機(jī)之間的數(shù)據(jù)通信后,被尋址從機(jī)使SM2=1,并退出中斷服務(wù)程序,等待下次通信。

          6 結(jié)束語
          該系統(tǒng)實(shí)現(xiàn)軟件與單片機(jī)多機(jī)的實(shí)時通信,已經(jīng)在實(shí)際項目中得到應(yīng)用。應(yīng)用的結(jié)果表明該設(shè)計方法簡單有效,實(shí)時性好,成本低廉,可以在控制與監(jiān)控系統(tǒng)中推廣應(yīng)用。


          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();