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

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設計應用 > DTMF專用芯片MT8880在通信網數(shù)據傳輸中的應用

          DTMF專用芯片MT8880在通信網數(shù)據傳輸中的應用

          作者: 時間:2009-12-25 來源:網絡 收藏

            2 系統(tǒng)硬件設計

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

            2.1 系統(tǒng)組成

            系統(tǒng)由發(fā)送和接收2大部分組成。如圖2所示。實現(xiàn)PC機的兩機間的通信步驟如下:

            (1)將PC的信號與串口的MAX232相連,將PC中的電平信號通過MAX232實現(xiàn)電平轉換。

           ?。?)將從MAX232中轉換出來的信號接入89C51中進行處理,將出來的信號引入中進行編碼,編碼后的信號經由普通的電纜線與另一個進行連接,由進行解碼處理。

            (3)將解碼后的信號接入89C51中進行處理。

            (4)從89C51出來的信號再次經過串口芯片MAX232進行電平轉換,將轉換后的信號接入計算機的串口后就實現(xiàn)了兩機的通信。


            2.2 MT8880接收電路設計

            當MT8880作為接收器的時候,信號經由IN+和IN-輸入,經過運算放大濾除信號中的撥號音頻率,然后發(fā)送到雙音頻濾波器,分離出低頻組和高頻組信號,通過數(shù)字計數(shù)的方式檢出DTMF信號的頻率,并且通過譯碼器譯成4位二進制碼。4位二進制編碼被鎖存在接收數(shù)據寄存器中,此時狀態(tài)寄存器中的延時控制識別位復位,狀態(tài)寄存器中的接收數(shù)據寄存器滿標識位置位,對外而言,當寄存器中的延時控制識別位復位時,IRQ/CP由高電平變?yōu)榈碗娖?。如果用IRQ/CP作為的中斷信號,IRQL由高電平變?yōu)榈碗娖?,向CPU發(fā)出中斷請求,當CPU響應中斷,讀出寄存器中的數(shù)據后,IRQ返回高電 平。MT8880的D0~D3與的P1.0~P1.3相連,P1.4-P1.7分別與CK,RSO,CS,R/W相連,電路圖如圖3所示。

            2.3 發(fā)送電路設計

            當MT8880作為發(fā)送器時數(shù)據總線上D0~D3四位二進制碼被鎖存在發(fā)送數(shù)據寄存器中,發(fā)送的DTMF信號頻率由3.58 MHz的晶振分頻產生。分頻器首先從基準頻率分離出8個不同頻率的正弦波,行列計數(shù)器根據發(fā)送數(shù)據寄存器中的數(shù)據,以八取二方式分離出一個高頻信號和一個低頻信號,經開關電容做D/A轉換,在加法器中合成DTMF信號,并從TONE端輸出,電路圖如圖4所示。



            3 系統(tǒng)軟件設計

            3.1 MT8880的數(shù)據發(fā)送程序設計

            MT8880的數(shù)據發(fā)送程序中用到了相應的串口接收程序,其程序流程圖如圖5所示。


             程序清單如下: 



          評論


          相關推薦

          技術專區(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); })();