新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于單片機系統的紅外遙控器應用

        基于單片機系統的紅外遙控器應用

        作者: 時間:2012-03-30 來源:網絡 收藏

        由于其體積小、功耗低、功能強、成本低的特點,已經在家電產品設備中廣泛。現代智能化儀器儀表、工業設備中的控制輸入也較多地使用。本文給出信號發射原理、紅外接收器的連接方式和軟件解碼程序,并提供了一種對未知格式的遙控器信號碼檢測的程序。

        本文引用地址:http://www.104case.com/article/171730.htm

        1 紅外遙控器信號發射原理簡介

        通用紅外發射器由指令鍵、指令信號產生電路、調制電路、驅動電路及紅外發射器組成。如圖1所示。

        遙控器所產生的脈沖編碼的格式一般為:  

        15.jpg

        引導脈沖(頭)─識別碼(用戶碼)─鍵碼─鍵碼的反碼

        其引導脈沖為寬度是10 ms左右的一個高脈沖和一個低脈沖的組合,用來標識指令碼的開始。識別碼、鍵碼、鍵碼的反碼均為數據編碼脈沖,用二進制數表示。“0”和“1”均由ms量級的高低脈沖的組合代表。識別碼(即用戶碼)是對每個遙控的標識。通過對識別碼的檢驗,每個遙控器只能控制一個設備動作,有效的防止了多個設備之間的串擾。當指令鍵按下時,指令信號產生電路便產生脈沖編碼。鍵碼后面一般還要有鍵碼的反碼,用來檢驗鍵碼接收的正確性,防止誤動作,增強的可靠性。這些指令信號由調制電路調制成32~40 kHz的信號,經調制后輸出,最后由驅動電路驅動紅外發射器件(LED)發出紅外遙控信號。

        2 紅外遙控器信號接收芯片外圍電路

        接收電路可以使用集成紅外接收器成品,一般不需要任何外接元件就能完成從紅外接收到輸出TTL電平兼容信號的所有工作。注意選擇接收器件時要保證接收器件的中心頻率與發射信號的中心頻率相匹配。接收器對外只有3個引腳:VCC,GND和1個脈沖信號輸出OUT。與接口非常方便,如圖2所示。

        16.jpg  

        脈沖信號輸出接CPU的普通輸入引腳或中斷輸入引腳(IO/INT)。采取這種連接方法,軟件解碼既可工作于查詢方式,也可工作于中斷方式。在實際應用中,還可以進一步增加抑制干擾電路和提高驅動能力電路,增強系統的穩定性。

        3 未知信號格式遙控器信號碼的識別

        在應用系統中,要完成對遙控器信號的解碼并實現對系統功能的控制,必須了解遙控器信號碼(即遙控器所發射脈沖流)的格式,即信號的引導脈沖高低脈沖的寬度、“0”,“1”的表示法,以及遙控器識別碼、各個功能鍵的鍵碼。對信號碼的識別應該從分析脈沖流的各個高、低脈沖的時間入手,通過分析各個高、低脈沖的時間,分析得出信號碼的格式。下面提供一種軟件測試信號碼的方法,以供參考。

        筆者采用PIC16C72,4 MHz晶振,紅外發射器芯片為BA6121-001,通過軟件中斷的方法,對手中未知格式的信號碼進行測試識別。遙控器接收器OUT端接RB0/INT,測得在遙控器空閑的情況下輸出為高,INT首先采用下降沿觸發。第一次INT發生時,啟動定時器,每次中斷要將觸發形式設置為上一次觸發的相反形式,以保證在下次電平變化時產生中斷;定時器溢出中斷記錄每次脈沖期間定時器溢出的次數;為了提高檢測精度,應提高定時器的時間分辨率,但過高的時間分辨率會引起單個脈沖期間定時器溢出,記錄每個脈沖期間溢出次數又浪費了大量數據寄存器。這里筆者采取了折中的辦法,即數據寄存器高6位只記錄定時器值的高6位,低2 位用來記錄定時器溢出次數,既節省了數據寄存器數量,又在一定程度上保證了較高的檢測精度。數據存儲格式如圖3所示。

        20.jpg

        由于此程序只為測試程序,可在仿真器中讀出寄存器組中所記錄的各高低脈沖所對應的定時器值,計算得出高低脈沖的時間數據,分析數據可知遙控器信號碼的格式。下面給出部分INT和定時器0中斷服務程序:

        17.jpg

        萬能遙控器相關文章:萬能遙控器代碼


        紅外遙控器相關文章:紅外遙控器原理
        晶振相關文章:晶振原理
        脈沖點火器相關文章:脈沖點火器原理

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 辽阳市| 化隆| 海伦市| 临泽县| 桃江县| 庆安县| 扶沟县| 潼关县| 兴城市| 泸溪县| 琼结县| 体育| 临城县| 长丰县| 景德镇市| 大余县| 嵊泗县| 鸡东县| 阳曲县| 股票| 惠水县| 新乡县| 达拉特旗| 本溪市| 苍溪县| 封丘县| 太保市| 丹江口市| 全南县| 察隅县| 海林市| 汨罗市| 屯门区| 宝清县| 郴州市| 锦屏县| 宁夏| 马尔康县| 密云县| 玉屏| 库尔勒市|