<li id="8g3ty"><tbody id="8g3ty"><th id="8g3ty"></th></tbody></li>
    <label id="8g3ty"><samp id="8g3ty"></samp></label>
  • <span id="8g3ty"></span>

    1. <center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
    2. <bdo id="8g3ty"><meter id="8g3ty"><bdo id="8g3ty"></bdo></meter></bdo><center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
      <label id="8g3ty"><samp id="8g3ty"></samp></label>

    3. 電子開發網

      電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
      搜索: 您現在的位置: 電子開發網 >> 電子開發 >> 常用電子制作 >> 正文

      紅外線遙控解碼實驗

      作者:佚名    文章來源:本站原創    點擊數:    更新時間:2008-11-22
          紅外線遙控是目前使用最廣泛的一種通信和遙控手段。由于紅外線遙控裝置具有體積小、功耗低、功能強、成本低等特點,因而,繼彩電、錄像機之后,在錄音機、音響設備、空凋機以及玩具等其它小型電器裝置上也紛紛采用紅外線遙控。工業設備中,在高壓、輻射、有毒氣體、粉塵等環境下,采用紅外線遙控不僅完全可靠而且能有效地隔離電氣干擾。

      1 紅外遙控系統

      通用紅外遙控系統由發射和接收兩大部分組成,應用編/解碼專用集成電路芯片來進行控制操作,如圖1所示。發射部分包括鍵盤矩陣、編碼調制、LED紅外發送器;接收部分包括光、電轉換放大器、解調、解碼電路。


      2 遙控發射器及其編碼

      遙控發射器專用芯片很多,根據編碼格式可以分成脈沖寬度調制和脈沖相位調制兩大類,這里我們以運用比較廣泛,解碼比較容易的脈沖寬度調制來加以說明,現以LC7461組成發射電路為例說明編碼原理。當發射器按鍵按下后,即有遙控碼發出,所按的鍵不同遙控編碼也不同。這種遙控碼具有以下特征:

      采用脈寬調制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進制的“0”;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表示二進制的“1”

      上述“0”和“1”組成的42位二進制碼經38kHz的載頻進行二次調制以提高發射效率,達到降低電源功耗的目的。然后再通過紅外發射二極管產生紅外線向空間發射,

      7461產生的遙控編碼是連續的42位二進制碼組,其中前26位為用戶識別碼,能區別不同的紅外遙控設備,防止不同機種遙控碼互相干擾。后16位為8位的操作碼和8位的操作反碼用于核對數據是否接收準確。

      當遙控器上任意一個按鍵按下超過36ms時,LC7461芯片的振蕩器使芯片激活,將發射一個特定的同步碼頭,對于接收端而言就是一個9ms的低電平,和一個4.5ms的高電平,這個同步碼頭可以使程序知道從這個同步碼頭以后可以開始接收數據。

      解碼的關鍵是如何識別“0”和“1”,從位的定義我們可以發現“0”、“1”均以0.56ms的低電平開始,不同的是高電平的寬度不同,“0”為0.56ms,“1”為1.68ms,所以必須根據高電平的寬度區別“0”和“1”。如果從0.56ms低電平過后,開始延時,0.56ms以后,若讀到的電平為低,說明該位為“0”,反之則為“1”,為了可靠起見,延時必須比0.56ms長些,但又不能超過1.12ms,否則如果該位為“0”,讀到的已是下一位的高電平,因此。1.12ms+0.56ms)/2=0.84ms最為可靠,一般取0.84ms左右即可。

          根據紅外編碼的格式,程序應該等待9ms的起始碼和4.5ms的結果碼完成后才能讀碼。



          如果郵購我們開發的51單片機試驗板和擴展元件的網友,可以獲得如上圖所示的紅外遙控手柄,這種遙控器的編碼格式符合上面的描述規律,而且價格低廉,有32個按鍵,按鍵外形比較統一,如果用于批量開發,可以把遙控器上貼膜換成你需要的字符,這為開發產品提供了便利。

      接收器及解碼

      LT0038是塑封一體化紅外線接收器,它是一種集紅外線接收、放大、整形于一體的集成電路,不需要任何外接元件,就能完成從紅外線接收到輸出與TTL電平信號兼容的所有工作,沒有紅外遙控信號時為高電平,收到紅外信號時為低電平,而體積和普通的塑封三極管大小一樣,它適合于各種紅外線遙控和紅外線數據傳輸。

      下面是一個對51實驗板配套的紅外線遙控器的解碼程序,它可以把上圖32鍵的紅外遙控器每一個按鍵的鍵值讀出來,并且通過實驗板上P1口的8個LED顯示出來,在解碼成功的同時并且能發出“嘀嘀嘀”的提示音。

             ORG 0000H
             AJMP MAIN;轉入主程序
             ORG 0003H ;外部中斷P3.2腳INT0入口地址
             AJMP INT ;轉入外部中斷服務子程序(解碼程序)
             ;以下為主程序進行CPU中斷方式設置
      MAIN:  SETB EA ;打開CPU總中斷請求
             SETB IT0 ;設定INT0的觸發方式為脈沖負邊沿觸發
             SETB EX0 ;打開INT0中斷請求
             ;以下對單片機的所有引腳進行初始化,全部設置成高電平
             MOV P2,#11100111B
             AJMP $            

      INT:   CLR EA;暫時關閉CPU的所有中斷請求
             MOV R6,#10
      SB:    ACALL YS1;調用882微秒延時子程序
             JB P3.2,EXIT;延時882微秒后判斷P3.2腳是否出現高電平如果有就退出解碼程序
             DJNZ R6, SB;重復10次,目的是檢測在8820微秒內如果出現高電平就退出解碼程序
      ;以上完成對遙控信號的9000微秒的初始低電平信號的識別。
             JNB P3.2, $;等待高電平避開9毫秒低電平引導脈沖
             ACALL YS2;延時4.74毫秒避開4.5毫秒的結果碼
             MOV R7,#26;忽略前26位系統識別碼

      JJJJA: JNB P3.2,$;等待地址碼第一位的高電平信號
             LCALL YS1;高電平開始后用882微秒的時間尺去判斷信號此時的高低電平狀態
             MOV C,P3.2;將P3.2引腳此時的電平狀態0或1存入C中
             JNC UUUA;如果為0就跳轉到UUUA
             LCALL YS3;檢測到高電平1的話延時1毫秒等待脈沖高電平結束
      UUUA:  DJNZ R7,JJJJA

             MOV R1,#1AH ;設定1AH為起始RAM區
             MOV R2,#2;接收從1AH到1BH的2個內存,用于存放操作碼和操作反碼
      PP:    MOV R3,#8;每組數據為8位

      JJJJ:  JNB P3.2,$;等待地址碼第一位的高電平信號
             LCALL YS1;高電平開始后用882微秒的時間尺去判斷信號此時的高低電平狀態
             MOV C,P3.2;將P3.2引腳此時的電平狀態0或1存入C中
             JNC UUU;如果為0就跳轉到UUU
             LCALL YS3;檢測到高電平1的話延時1毫秒等待脈沖高電平結束
      UUU:   MOV A,@R1;將R1中地址的給A
             RRC A;將C中的值0或1移入A中的最低位
             MOV @R1,A;將A中的數暫時存放在R1數值的內存中
             DJNZ R3,JJJJ;接收滿8位換一個內存
             INC R1;對R1中的值加1,換下一個RAM
             DJNZ R2,PP ;接收完8位數據碼和8位數據反碼,存放在1AH/1BH中

             MOV A,1AH
             CPL A;對1AH取反后和1BH比較
             CJNE A,1BH,EXIT;如果不等表示接收數據發生錯誤,放棄

             MOV P1,1AH;將按鍵的鍵值通過P1口的8個LED顯示出來!
             MOV A,1AH;將紅外遙控器具體按鍵的鍵值發送到串口去
             MOV SBUF,A;通過串口在電腦屏幕上顯示出來

             CLR P2.5;蜂鳴器鳴響嘀嘀嘀的聲音,表示解碼成功
             LCALL YS2
             LCALL YS2
             LCALL YS2
             SETB P2.5;蜂鳴器停止
      EXIT:  SETB EA ;允許中斷
             RETI ;退出解碼子程序

      YS1:   MOV R4,#20 ;(占用R4/R5)延時子程序1,精確延時882微秒
      D1:    ;MOV R5,#20  ;晶振為11.0592M時,請用 ; 注釋掉此行
             MOV R5,#19  ;晶振為12M時,請用 ; 注釋掉此行
             DJNZ R5,$
             DJNZ R4,D1
             RET

      YS2:   MOV R4,#10 ;(占用R4/R5)延時子程序2,精確延時4740微秒
      D2:    ;MOV R5,#235  ;晶振為11.0592M時,請用 ; 注釋掉此行
             MOV R5,#216  ;晶振為12M時,請用 ; 注釋掉此行
             DJNZ R5,$
             DJNZ R4,D2
             RET

      YS3:   MOV R4,#2;(占用R4/R5)延時程序3,精確延時1000微秒
      D3:    ;MOV R5,#248   ;晶振為11.0592M時,請用 ; 注釋掉此行
             MOV R5,#228  ;晶振為12M時,請用 ; 注釋掉此行
             DJNZ R5,$
             DJNZ R4,D3
             RET

      DELAY: MOV R1,#08H;(占用R1/R2/R3)延時子程序,12M晶振延時約250毫秒
      L3:    MOV R2 ,#0FAH
      L1:    MOV R3 ,#0FAH
      L2:    DJNZ R3 ,L2
             DJNZ R2 ,L1
             DJNZ R1 ,L3
             RET
             END

      keil工程文件:  hongwai.rar



      0A       01
      11 12 13 14
      15 16 17 18
      19 10 1A 1B
      0E 02 03 1C
      06 04 05 0C
      0D 08 09 1D
      00 1F 1E 0B
      07       0F

      這是按照紅外遙控器按鍵的實際位置給出的32個按鍵的鍵值(16進制)
      Tags:紅外線,遙控,解碼  
      責任編輯:admin
      相關文章列表
      沒有相關文章
      請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
      1分 2分 3分 4分 5分

      還可以輸入 200 個字
      [ 查看全部 ] 網友評論
      關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁面
      下到頁底
      晶體管查詢
      主站蜘蛛池模板: 国产精品综合一区二区三区| 久久婷婷综合中文字幕| 婷婷丁香五月激情综合| 色综合久久久久综合99| 国产精品亚洲综合专区片高清久久久| 国产综合无码一区二区三区| 久久综合亚洲色HEZYO社区| 天天综合日日噜噜噜| 亚洲综合久久1区2区3区| 国产精品 综合 第五页| 国产精品一区二区综合| 91色综合综合热五月激情| 综合亚洲伊人午夜网| 婷婷久久香蕉五月综合| 人妻av综合天堂一区| 91精品一区二区综合在线| 久久老色鬼天天综合网观看| 狠狠色综合网站久久久久久久高清| 天天综合色天天综合| 亚洲狠狠婷婷综合久久| 色综合网天天综合色中文男男| 精品亚洲综合在线第一区| 国产成人综合久久久久久| 狠狠色狠狠色综合久久| 国产在线一区二区综合免费视频| 亚洲伊人久久综合影院| 久久91精品综合国产首页| 色偷偷亚洲第一综合| 亚洲精品综合久久| 久久综合久久性久99毛片| 人人狠狠综合久久亚洲88| 麻豆精品久久精品色综合 | 日韩亚洲人成在线综合| 伊人色综合久久天天| 婷婷综合激情五月中文字幕| 国产色产综合色产在线视频| 久久久久亚洲AV综合波多野结衣| 久久综合久久综合久久综合| 色爱无码AV综合区| 色综合小说天天综合网| 久久久亚洲裙底偷窥综合|