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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > PIC單片機與觸摸屏串行通信MODBUS協(xié)議

          PIC單片機與觸摸屏串行通信MODBUS協(xié)議

          作者: 時間:2012-02-21 來源:網絡 收藏

          4 程序的開發(fā)

          程序采用C語言編寫。編譯工具選擇Hitech公司的C編譯器。程序共分三大模塊,即初始化模塊、數(shù)據接收模塊以及數(shù)據處理及發(fā)送模塊。主程序流程圖如圖2所示。

          16F877USART功能模塊帶有一個八位的波特率發(fā)生器BRG,BRG支持USART的同步和異步工作方式。用SPBRG寄存器控制一個獨立的八位定時器的周期。在異步方式下,發(fā)送狀態(tài)/控制寄存器TXSTA的BRGH位(即D2)被用來控制波特率。對口進行的初始化如下:
          GIE=1; %全局中斷允許;
          SPBRG=25; %設置波特率為9600;
          TXSTA=0x04; %選擇異步高速方式;
          RCSTA=0x80; %允許同步口工作;
          RTISC6=1;
          TRISC7=1; %將C口的RC6和RC7設置為異步模式;
          PFIE=1; %外圍接口中斷允許;
          RCIE=1; %USART接收中斷允許;
          TXIE=1; %USART發(fā)送中斷允許;

          數(shù)據接收模塊由一個中斷函數(shù)組成。該中斷函數(shù)將發(fā)來的Modbus數(shù)據幀存儲在一個自定義的數(shù)組中,當一幀數(shù)據接收完時,置接收結束標志位為 1,轉入數(shù)據處理及發(fā)送模塊。串行通信接收器的核心是接收移位寄存器RSR,當接收到停止時,如果RCREG緩沖器為空,RSR就把接收到的數(shù)據送入 RCREG。傳送完成后,接收中斷標志位RCIF被置1。實際的中斷是否被CPU響應,可以通過設置外圍接口中斷允許寄存器PIE1的中斷允許位RCIE 來控制。

          38.jpg

          數(shù)據處理及發(fā)送模塊執(zhí)行Modbus功能碼對應的運用。eView與單片機以Modbus通信。

          以Modbus功能碼03為例來說明觸摸屏及單片機的實際通信數(shù)據格式。如單片機地址編號為01H,觸摸屏需要查看單片機中地址為0031H的寄存器的值,發(fā)送命令格式如表3所示。

          當波特率達到38400kb/s 時,通信仍然穩(wěn)定可靠。本系統(tǒng)具有連接電路簡單、組態(tài)靈活、通信可靠性高等特點,并已成功應用于物料篩選控制系統(tǒng)項目中。由于Modbus通信的開放性的特點,國外進口控制器串行通信大者支持該協(xié)議,因此本文所實現(xiàn)的采用Modbus協(xié)議的串行通信具有廣泛的應用價值。

          通信相關文章:通信原理



          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();