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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 純軟件實現(xiàn)單片機遠程通信

          純軟件實現(xiàn)單片機遠程通信

          作者: 時間:2012-03-16 來源:網(wǎng)絡(luò) 收藏

          GMS972051是韓國LG公司生產(chǎn)的MW內(nèi)部帶2K E2PROM的與MCS-51兼容的。

          本文引用地址:http://www.ex-cimer.com/article/171866.htm

          GMS97C2051省去了MCS-51的P0和P3口,但是多了一個內(nèi)部硬件比較器。由于信號為TTL電平,如果不采取其它的措施,其在速率為9600bps時距離不超過5米。一般為了延長的通信距離,采用RS-232/RS- 485轉(zhuǎn)換器、RS-232/RS-422轉(zhuǎn)換器或光隔收發(fā)器。本文介紹的方法可將GMS97C2051單片機之間通信距離延長到1200米以上,而且不需要添加任何硬件措施,完全用。

          5.gif

          要用純方法GMS97C2051單片機之間的通信,首先必須將單片機的TTL電平的方法轉(zhuǎn)換為差分電平,其次要用普通I/O口線來構(gòu)成軟件串行口,并且在軟件上進行正確的配合。

          TTL電平轉(zhuǎn)換成差分電平的純軟件方法

          GMS97C2051 單片機的信號均為TTL電平。TTL電平信號傳輸距離非常有限,一般在9600bps傳輸率時傳輸距離不超過5米。而差分電平信號則是取決于兩種信號線之間的電平差值,如果某條信號線的電平高于另一條,則信號為1,否則為0。由于差分電平信號可以避免長距離傳輸導(dǎo)線上的電荷積累,并且具有更寬的電平范圍,所以傳輸距離遠得多。RS485差分電平信號在9600bps傳輸率時傳輸距離可達1200米。

          為了用純軟件差分電平傳輸就不能使用GMS97C2051本身的硬件串行口,而是用普通I/O線來實現(xiàn)串行通信。差分電平要用兩條I/O口線來實現(xiàn),比如P1.2和P1.3兩條線(見圖1)。當傳輸信號為1時,P1.2為+5V,而 P1.3為0V。當傳輸信號為0時,P1.2為0V為0V,而P1.3為 +5V。注意P1.2和P1.3不得同時置+5V或同時置0V。

          GMS97C2051 單片機的P1.0和P1.1可以分別作為片內(nèi)精密模擬電壓比較器的正輸入端(AIN0)和負輸入端(AINI),所以正好可以用于接收差分電平信號。內(nèi)部電平比較器的輸出已經(jīng)在芯片內(nèi)部連到P3.6口,所以可以通過讀取P3.6口的值來得到差分電平信號。

          6.gif

          軟件串行口的實現(xiàn)方法

          由普通I/O口線來實現(xiàn)串行通信,習(xí)慣上稱為軟件串行口。采用差分電平通信的軟件串行口的硬件接線圖如圖2.A、B兩機均為GMS97C2051單片機。 P1.2和P1.3用于發(fā)送,P1.0和P1.1口用于接收,P1.0同時接本機中INI0。軟件串行口一般全用標準的10位異步通信格式:1位起始位(信號0),8位數(shù)據(jù)位,1位停止位(信號1)。接收時均是低位數(shù)據(jù)在前,高位數(shù)據(jù)在后。


          上一頁 1 2 下一頁

          評論


          相關(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); })();