<var id="fnfpo"><source id="fnfpo"></source></var>
<rp id="fnfpo"></rp>

<em id="fnfpo"><object id="fnfpo"><input id="fnfpo"></input></object></em>
<em id="fnfpo"><acronym id="fnfpo"></acronym></em>
  • <th id="fnfpo"><track id="fnfpo"></track></th>
  • <progress id="fnfpo"><track id="fnfpo"></track></progress>
  • <tbody id="fnfpo"><pre id="fnfpo"></pre></tbody>

  • x
    x

    用ZHX1010實現單片機之間的紅外通信

    發布時間:2010-6-9 13:44    發布者:我芯依舊
    關鍵詞: ZHX1010 , 單片機 , 紅外通信
    目前的單片機應用系統之間一般都使用UART進行通信,通過電平轉換口將信號變成RS232或RS485信號來進行直接通信。這種有線通信的好處是通信誤碼率比較低,受干擾的機率相對較少,但對于要經常插拔通信 線的系統來說,有線通信反而容易出現故障。筆者在開發織機控制系統時,要用一個手持式編程器來修改控制系統的工作參數。在實際使用過程中,由于工作人員要經常插拔通信線,因此會經常出現接觸不良、繞毀通信芯片的情況。筆者利用ZiLOG公司生產的IrDA芯片ZHX1010設計了一個紅外無線通信電路。

    1 ZHX1010介紹

    ZHX1010是一個符號IrDA SIR(Serial Infrared,串行紅外協議)的收發模塊,該模塊在1米范圍內的最高速度可達115.2kbps。而且它的供電范圍較寬(2.4~5.5V),可方便地與各種電壓的CPU進行接口。

    ZHX1010在3V供電時,其典型電流只有90μA,非常適用于電池供電產品。此外,ZHX1010體積小,僅有9.9mm×3.7mm,且其外圍元件少(只需一個電阻和一個電容)。

    ZHX1010有6個引腳,依次是LEDA、TXD、RXD、SD、Vcc和GND。LEDA內部與IRED紅外發光二極管相連,外部接一限流電阻到Vcc,以給紅外管提供工作電流。但應注意提供的最大電流不能超過500mA(20%的占空比)。TXD是數據發送引腳,該腳內部帶有下拉電阻,可以直接接到MCU的數據發送端,當器件進入省電模式時,該下拉電阻開路。RXD是接收到紅外數據后的輸出腳,它是一個三態輸出引腳,擺率控制的CMOS輸出驅動器可驅動標準CMOS或LSTTL負載。該引腳無需外接電阻。SD是省電模式控制腳,該引腳輸入高電平時,ZHX1010進入省電模式,此時的最大電流只有1μA。

    2 ZHX1010與AT89C51的接口電路

    AT89C51的工作電壓為5V,而ZHX1010的工作電壓范圍較寬,從2.4V到5.5V,因此可以直接相連。此外,AT89C51有一個UART,非常適合于傳輸串行數據,當使用22.1184MHz的晶振時,其最高波特率可以達到115.2kbps。




    圖1給出了ZHX1010與AT89C51的具體接口連接方式。

    3 程序設計

    使用ZHX1010的目的是在兩個單片機系統之間進行無線數據通信,因此,AT89C51的UART應工作于方式2,而且應使其波特率可調,以適用于不同通信距離的應用場合。其工作方式初始化程序如下:

    InitComm:
    MOV TMOD,#21H
    MOV TH1,#250 ;22.1184M晶振
    MOV TL1,#250 ;9600bps
    SETB TR1
    MOV SCON,#50H
    MOV 87H,#0H
    CLR RI
    SETB REN
    SETB ES ;允許接收中斷
    RET

    為了避免數據丟失,接收紅外數據采用中斷方式,接收到的數據可保存在cReceBuffer中,中斷部分的具體程序如下:

    cReceBuffer EQU 40H ;數據接收緩沖區
    cReceLen EQU 50H ;數據接收長度
    CommIntProc:
    PUSH ACC
    PUSH R0
    MOV A,#cReceBuffer ;計算要保存數據的當前地址


    ADD A,cReceLen
    MOV R0,A
    MOV A,SBUF
    MOV @R0,A ;保存收到的數據
    INC cReceLen ;收到的數據長度加1
    POP R0
    POP ACC
    RETI

    數據收到后,便可根據不同的命令來完成不同的功能:

    MOV A,cReceBuffer ;首字節是命令號
    CJNE A,#1,Command1
    ;讀取設定的數據

    Command1:
    CJNE A,#2,Command2
    ;修改設定的數據

    Command2:
    ;其他命令
    RET

    4 總結

    在使用ZHX1010時,要注意現場的環境情況。在筆者實際使用過程中,常常會出現收發誤碼率較高的情況,經檢查發現是ZHX1010的紅外發送、接收頭比較臟,其原因是織造廠的環境比較惡劣,空氣比較潮濕,很容易在發送、接收端聚集灰塵,從而影響通信。另外,一個系統完成從發送到接收的狀態轉換時,要經過至少2ms的延時才能保證接收比較可靠。
    本文地址:http://www.portaltwn.com/thread-12456-1-1.html     【打印本頁】

    本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
    您需要登錄后才可以發表評論 登錄 | 立即注冊

    廠商推薦

    • Microchip視頻專區
    • EtherCAT®和Microchip LAN925x從站控制器介紹培訓教程
    • MPLAB®模擬設計器——在線電源解決方案,加速設計
    • 讓您的模擬設計靈感,化為觸手可及的現實
    • 深度體驗Microchip自動輔助駕駛應用方案——2025巡展開啟報名!
    • 貿澤電子(Mouser)專區

    相關在線工具

    相關視頻

    關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
    電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
    快速回復 返回頂部 返回列表
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷