<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. 電子開(kāi)發(fā)網(wǎng)

      電子開(kāi)發(fā)網(wǎng)電子設(shè)計(jì) | 電子開(kāi)發(fā)網(wǎng)Rss 2.0 會(huì)員中心 會(huì)員注冊(cè)
      搜索: 您現(xiàn)在的位置: 電子開(kāi)發(fā)網(wǎng) >> 電子開(kāi)發(fā) >> 單片機(jī)實(shí)例 >> 正文

      單片機(jī)紅外遙控器設(shè)計(jì)

      作者:佚名    文章來(lái)源:本站原創(chuàng)    點(diǎn)擊數(shù):    更新時(shí)間:2018/10/12

        UPD6121G產(chǎn)生的遙控編碼是連續(xù)的32位二進(jìn)制碼組,其中前16位為用戶識(shí)別碼,能區(qū)別不同的電器設(shè)備,防止不同機(jī)種遙控碼互相干擾。該芯片的用戶識(shí)別碼固定為十六進(jìn)制01H;后16位為8位操作碼(功能碼)及其反碼。UPD6121G最多額128種不同組合的編碼。

        當(dāng)遙控器在按鍵按下后,周期性地發(fā)出同一種32位二進(jìn)制碼,周期約為108ms。一組碼本身的持續(xù)時(shí)間隨它包含的二進(jìn)制“0”和“1”的個(gè)數(shù)不同而不同,大約在45~63ms之間,圖4為發(fā)射波形圖。

        當(dāng)一個(gè)鍵按下超過(guò)36ms,振蕩器使芯片激活,將發(fā)射一組108ms的編碼脈沖,這108ms發(fā)射代碼由一個(gè)起始碼(9ms),一個(gè)結(jié)果碼(4.5ms),低8位地址碼(9ms~18ms),高8位地址碼(9ms~18ms),8位數(shù)據(jù)碼(9ms~18ms)和這8位數(shù)據(jù)的反碼(9ms~18ms)組成。如果鍵按下超過(guò)108ms仍未松開(kāi),接下來(lái)發(fā)射的代碼(連發(fā)代碼)將僅由起始碼(9ms)和結(jié)束碼(2.5ms)組成。

       代碼格式(以接收代碼為準(zhǔn),接收代碼與發(fā)射代碼反向)
        
        ① 位定義

         

        ② 單發(fā)代碼格式
       
         
             
        ③ 連發(fā)代碼格式

         

        注:代碼寬度算法:

        16位地址碼的最短寬度:1.12×16=18ms 16位地址碼的最長(zhǎng)寬度:2.24ms×16=36ms

        已知8位數(shù)據(jù)代碼及其8位反代碼的寬度和不變:(1.12ms+2.24ms)×8=27ms

        ∴ 32位代碼的寬度為(18ms+27ms)~(36ms+27ms)

        1. 解碼的關(guān)鍵是如何識(shí)別“0”和“1”,從位的定義我們可以發(fā)現(xiàn)“0”、“1”均以0.56ms的低電平開(kāi)始,不同的是高電平的寬度不同,“0”為0.56ms,“1”為1.68ms,所以必須根據(jù)高電平的寬度區(qū)別“0”和“1”。如果從0.56ms低電平過(guò)后,開(kāi)始延時(shí),0.56ms以后,若讀到的電平為低,說(shuō)明該位為“0”,反之則為“1”,為了可*起見(jiàn),延時(shí)必須比0.56ms長(zhǎng)些,但又不能超過(guò)1.12ms,否則如果該位為“0”,讀到的已是下一位的高電平,因此取(1.12ms+0.56ms)/2=0.84ms最為可*,一般取0.84ms左右均可。

        2. 根據(jù)碼的格式,應(yīng)該等待9ms的起始碼和4.5ms的結(jié)果碼完成后才能讀碼。


       【紅外遙控解碼實(shí)驗(yàn)硬件】

        一體化紅外線接收器是一種集紅外線接收和放大整形于一體,不需要任何外接元件,就能完成從紅外線接收到輸出與TTL電平信號(hào)兼容的所有工作,而體積又很小巧,它適合于各種紅外線遙控和紅外線數(shù)據(jù)傳輸,廣泛用于電視機(jī)、衛(wèi)星接收機(jī)、VCD、DVD、音響、空調(diào)等家用電器中接收紅外信號(hào),圖5是一體化接收頭的引腳排列圖,圖6是本站產(chǎn)品配套的采用屏蔽線焊接的一體化紅外接收頭,采用屏蔽線焊接,抗干擾能力強(qiáng),接收更可*。沒(méi)有購(gòu)買(mǎi)實(shí)驗(yàn)板配套的一體化紅外接收頭的網(wǎng)友可以根據(jù)圖2所示接收頭引腳排列圖自己焊接一個(gè)。

       
       
      圖5:一體化紅外接收頭
      (引腳排列圖)
       
      圖6:本站產(chǎn)品配套一體化紅外接收頭(已經(jīng)用屏蔽線焊接好,抗干擾能力強(qiáng),插入實(shí)驗(yàn)板即可使用)

        下面就是我們將要進(jìn)行紅外遙控解碼實(shí)驗(yàn)所要用到的硬件設(shè)備:S51增強(qiáng)型實(shí)驗(yàn)板、ISP編程器、AT89S51實(shí)驗(yàn)芯片、豪華型多功能紅外線遙控器。

       
       
      圖7:S51增強(qiáng)型單片機(jī)實(shí)驗(yàn)板及防插反紅外遙控接口


       

       
      圖8:豪華型多功能紅外遙控器 + 高靈敏度一體化紅外接收頭(23元)


       

      圖9:32鍵豪華型紅外遙控器原理圖



       

      圖10:ISP編程器燒寫(xiě)實(shí)驗(yàn)單片機(jī)芯片AT89S51


       【紅外遙控解碼實(shí)驗(yàn)】

        我們經(jīng)過(guò)對(duì)前面的遙控編解碼知識(shí)的學(xué)習(xí),對(duì)紅外遙控有了基本的了解,下面我們馬上進(jìn)行解碼實(shí)驗(yàn)。本紅外遙控解碼實(shí)驗(yàn)的的功能是:程序?qū)b控器發(fā)射的遙控碼進(jìn)行解碼,解碼成功時(shí)蜂鳴器發(fā)出"嘀嘀"的解碼成功提示音,如果按壓的是數(shù)字鍵"0~9"就將按鍵值在實(shí)驗(yàn)板上的5位數(shù)碼管上顯示出按鍵值,同時(shí)將按鍵的十六進(jìn)制值用P1口的8位發(fā)光二極管指示出來(lái);如果按壓的不是數(shù)字鍵"0~9",就直接從P1口輸出鍵值;下面是遙控解碼匯編源程序。

        實(shí)驗(yàn)時(shí)將先連接好硬件設(shè)備,將配套的一體化紅外遙控接收頭插入實(shí)驗(yàn)板上的"紅外遙控"接口內(nèi),在Keil單片機(jī)集成開(kāi)發(fā)環(huán)境中新建工程,通過(guò)Keil將源程序編譯得到HEX格式目標(biāo)文件yk.hex,最后使用ISP編程器將目標(biāo)文件燒寫(xiě)到AT89S51單片機(jī)中,插到S51增強(qiáng)型實(shí)驗(yàn)板上運(yùn)行,拿出配套的紅外遙控器進(jìn)行解碼測(cè)試,看看實(shí)驗(yàn)結(jié)果是否和程序相同。。。

        >>> 點(diǎn)此下載HEX格式目標(biāo)文件 yk.hex >>>
        >>> 點(diǎn)此下載遙控解碼源程序和Keil工程文件 >>>

          ORG   0000H
      MAIN:  MOV   SP,#60H
          MOV   P0,#0FFH
          MOV   P1,#0FFH
          MOV   P2,#0FFH
          MOV   P3,#0FFH
          JNB   P3.2,$    ;等待遙控信號(hào)出現(xiàn)
          MOV   R6,#10
      SB:   ACALL  YS1      ;調(diào)用882微秒延時(shí)子程序
          JB   P3.2,MAIN   ;延時(shí)882微秒后判斷P3.2腳是否出現(xiàn)高電平如果有就退出解碼程序
          DJNZ  R6, SB    ;重復(fù)10次,目的是檢測(cè)在8820微秒內(nèi)如果出現(xiàn)高電平就退出解碼程序
                     ;以上完成對(duì)遙控信號(hào)的9000微秒的初始低電平信號(hào)的識(shí)別。
          JNB   P3.2, $    ;等待高電平避開(kāi)9毫秒低電平引導(dǎo)脈沖
          ACALL  YS2      ;延時(shí)4.74毫秒避開(kāi)4.5毫秒的結(jié)果碼
          MOV   R1,#1AH    ;設(shè)定1AH為起始RAM區(qū)
          MOV   R2,#4
      PP:   MOV   R3,#8
      JJJJ:  JNB   P3.2,$    ;等待地址碼第一位的高電平信號(hào)
          LCALL  YS1      ;高電平開(kāi)始后用882微秒的時(shí)間尺去判斷信號(hào)此時(shí)的高低電平狀態(tài)
          MOV   C,P3.2    ;將P3.2引腳此時(shí)的電平狀態(tài)0或1存入C中
          JNC   UUU      ;如果為0就跳轉(zhuǎn)到UUU
          JB   P3.2,$    ;如果為1就等待高電平信號(hào)結(jié)束
      UUU:   MOV   A,@R1     ;將R1中地址的給A
          RRC   A       ;將C中的值0或1移入A中的最低位
          MOV   @R1,A     ;將A中的數(shù)暫時(shí)存放在R1中
          DJNZ  R3,JJJJ    ;接收地址碼的高8位
          INC   R1      ;對(duì)R1中的值加1,換成下一個(gè)RAM
          DJNZ  R2,PP     ;接收完16位地址碼和8位數(shù)據(jù)碼和8位數(shù)據(jù)反碼,存放在1AH/1BH/1CH/1DH的RAM中
                     ;以下對(duì)代碼是否正確和定義進(jìn)行識(shí)別
          MOV   A,1AH     ;比較高8位地址碼
          XRL   A,#00000000B ;判斷1AH的值是否等于00000000,相等的話A為0
          JNZ   MAIN     ;如果不相等說(shuō)明解碼失敗退出解碼程序
          MOV   A,1BH     ;比較低8位地址
          XRL   A,#11111111B ;再判斷高8位地址是否正確
          JNZ   MAIN     ;如果不相等說(shuō)明解碼失敗退出解碼程序
          MOV   A,1CH     ;比較數(shù)據(jù)碼和數(shù)據(jù)反碼是否正確?
          CPL   A
          XRL   A,1DH     ;將1CH的值取反后和1DH比較 不同則無(wú)效丟棄,核對(duì)數(shù)據(jù)是否準(zhǔn)確
          JNZ   MAIN     ;如果不相等說(shuō)明解碼失敗退出解碼程序
          LCALL  SOUND     ;解碼成功,聲音提示
          MOV   A,1AH
          CPL   A
          MOV   P1,A     ;遙控碼十六進(jìn)制值通過(guò)P1口LED顯示出來(lái)

      ;-------- 下面為0~9鍵碼判斷并在實(shí)驗(yàn)板的5位數(shù)碼管中顯示鍵值 --------
      JZPD:  MOV   A,1AH
      IRD0:  CJNE  A,#00H,IRD1  ;按鍵"0"判斷顯示
          MOV   P0,#0C0H
          MOV   P2,#11100000B
          AJMP  MAIN
      IRD1:  CJNE  A,#01H,IRD2  ;按鍵"1"判斷顯示
          MOV   P0,#0F9H
          MOV   P2,#11100000B
          AJMP  MAIN
      IRD2:  CJNE  A,#02H,IRD3  ;按鍵"2"判斷顯示
          MOV   P0,#0A4H
          MOV   P2,#11100000B
          AJMP  MAIN
      IRD3:  CJNE  A,#03H,IRD4  ;按鍵"3"判斷顯示
          MOV   P0,#0B0H
          MOV   P2,#11100000B
          AJMP  MAIN
      IRD4:  CJNE  A,#04H,IRD5  ;按鍵"4"判斷顯示
          MOV   P0,#99H
          MOV   P2,#11100000B
          AJMP  MAIN
      IRD5:  CJNE  A,#05H,IRD6  ;按鍵"5"判斷顯示
          MOV   P0,#92H
          MOV   P2,#11100000B
          AJMP  MAIN
      IRD6:  CJNE  A,#06H,IRD7  ;按鍵"6"判斷顯示
          MOV   P0,#82H
          MOV   P2,#11100000B
          AJMP  MAIN
      IRD7:  CJNE  A,#07H,IRD8  ;按鍵"7"判斷顯示
          MOV   P0,#0F8H
          MOV   P2,#11100000B
          AJMP  MAIN
      IRD8:  CJNE  A,#08H,IRD9  ;按鍵"8"判斷顯示
          MOV   P0,#80H
          MOV   P2,#11100000B
          AJMP  MAIN
      IRD9:  CJNE  A,#09H,IRDOR  ;按鍵"9"判斷顯示
          MOV   P0,#90H
          MOV   P2,#11100000B
          AJMP  MAIN

      IRDOR: MOV   P2,#0FFH     ;關(guān)閉數(shù)碼管使能。"0~9"以外的非數(shù)字功能按鍵鍵值不采用數(shù)碼管顯示,直接從P1口輸出鍵值
          AJMP  MAIN

      YS1:   MOV   R4,#19 ;延時(shí)子程序1
      D1:   MOV   R5,#18
          DJNZ  R5,$
          DJNZ  R4,D1
          RET

      YS2:   MOV   R4,#10 ;延時(shí)子程序2
      D2:   MOV   R5,#216
          DJNZ  R5,$
          DJNZ  R4,D2
          RET

      SOUND: MOV   R7,#228 ;音效延時(shí)子程序
      SDL1:  CPL   P3.7
          MOV   R6,#0FFH
      SDL0:  DJNZ  R6,SDL0
          DJNZ  R7,SDL1
          RET

        把上面程序?qū)懭隺t89S51單片機(jī)中,一個(gè)簡(jiǎn)單的單片機(jī)紅外遙控器設(shè)計(jì)就完成了哈哈,是不是很有興趣了,通電后,按壓遙控器上的0~9按鍵,則實(shí)驗(yàn)板上的數(shù)碼管上就顯示出對(duì)應(yīng)的按鍵值,同時(shí)解碼成功后發(fā)出聲音指示。。。

      Tags:單片機(jī),紅外遙控器  
      責(zé)任編輯:admin
      相關(guān)文章列表
      基于AT89C52單片機(jī)控制的雙軸太陽(yáng)自動(dòng)跟蹤系統(tǒng)設(shè)計(jì)
      ESP32單片機(jī)入門(mén)篇
      超聲波測(cè)距+溫度+報(bào)警的單片機(jī)代碼_51單片機(jī)超聲波測(cè)距C語(yǔ)言程序
      七段數(shù)碼管顯示原理研究_數(shù)碼管顯示0~9對(duì)應(yīng)的段碼
      單片機(jī)C語(yǔ)言編程入門(mén)教程  流水燈程序示例
      基于51單片機(jī)—多功能秒表,多功能計(jì)時(shí)器C語(yǔ)言程序
      STC89C52單片機(jī)數(shù)字電流表電壓表源碼與電路圖  51單片機(jī)電流電壓
      自學(xué)stm32單片機(jī)四個(gè)步驟,實(shí)用又高效!
      先學(xué)51還是先學(xué)STM32?STM32和51單片機(jī)的區(qū)別
      單片機(jī)最小系統(tǒng)介紹及電路設(shè)計(jì) STM32單片機(jī)最小系統(tǒng)
      什么是PIC單片機(jī)
      為什么51單片機(jī)的晶振一般使用11.0592? 51單片機(jī)常用波特率初值表
      51單片機(jī)寄存器功能一覽表
      單片機(jī)寫(xiě)延時(shí)程序的幾種方法
      自學(xué)單片機(jī)編程之中斷與時(shí)鐘程序
      哈佛結(jié)構(gòu)與馮·諾伊曼結(jié)構(gòu)區(qū)別以及X86體系
      單片機(jī)萬(wàn)年歷:公歷日期與農(nóng)歷日期的相互轉(zhuǎn)換程序
      AVR定時(shí)器1的CTC模式設(shè)置
      單片機(jī)超聲波視覺(jué)識(shí)別系統(tǒng)的測(cè)量軟件開(kāi)發(fā),超聲波測(cè)距
      LCD1602的單片機(jī)驅(qū)動(dòng)詳解
      請(qǐng)文明參與討論,禁止漫罵攻擊,不要惡意評(píng)論、違禁詞語(yǔ)。 昵稱:
      1分 2分 3分 4分 5分

      還可以輸入 200 個(gè)字
      [ 查看全部 ] 網(wǎng)友評(píng)論
      關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁(yè)面
      下到頁(yè)底
      晶體管查詢
      主站蜘蛛池模板: 国产亚洲综合成人91精品| 久久综合狠狠色综合伊人| 国产精品亚洲综合五月天| 天天综合天天做天天综合| 乱色熟女综合一区二区三区| 区三区激情福利综合中文字幕在线一区| 中文字幕亚洲综合久久男男| 综合在线免费视频| 伊人久久大香线蕉综合爱婷婷| 色综合久久夜色精品国产| 亚洲精品第一国产综合境外资源| 91精品国产色综合久久不| 伊人久久中文大香线蕉综合| 亚洲综合欧美色五月俺也去| 久久婷婷综合色丁香五月| 色婷婷综合缴情综免费观看| 97久久天天综合色天天综合色| 久久天天日天天操综合伊人av| 亚洲heyzo专区无码综合| 久艾草国产成人综合在线视频| 久久久久综合国产| 久久久久久青草大香综合精品| 色偷偷91综合久久噜噜| 婷婷六月久久综合丁香可观看| 亚洲精品综合在线影院| 色狠狠色狠狠综合天天| 成人综合久久精品色婷婷| 久久久亚洲裙底偷窥综合| 久久伊人久久亚洲综合| 亚洲综合精品一二三区在线| 亚洲国产精品综合久久久| 色欲综合久久躁天天躁蜜桃| 亚洲综合视频在线| 色综合综合色综合色综合| 婷婷激情综合色五月久久| 日韩亚洲国产综合久久久| 亚洲综合久久夜AV | 久久久综合九色合综国产精品| 亚洲av永久综合在线观看尤物| 亚洲综合一区无码精品| 国产综合精品一区二区|