《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 紅外遙控器解碼軟件設計及應用
紅外遙控器解碼軟件設計及應用
來源:微型機與應用2011年第21期
劉萬斌,于 群
(山東科技大學 信息與電氣工程學院,山東 青島 266510)
摘要: 基于AT87C52單片機的萬能遙控器解碼及其應用,提出了一種簡易的紅外遙控器解碼方法,此法可以在完全不知遙控引導碼和結束碼使用的編碼規則的情況下,直接解碼,自主定義1和0。具有操作簡便,可移植性強的特點。
Abstract:
Key words :

摘  要: 傳統的紅外遙控器解碼,需要預知發射端紅外編碼格式,不同的編碼格式軟件不通用,可移植性差。通過對遙控器紅外信號的采集、分析,提出基于AT87C52單片機外部中斷,利用HS0038紅外線接收器的紅外遙控器的解碼軟件的設計及其應用,可以在不掌握遙控器的編碼格式的情況下,破譯每個鍵的紅外編碼,進而將其擴展為單片機的鍵盤系統。其程序通用性好,裝置集成化高,可以方便地應用于其他紅外遙控接收裝置。
關鍵詞: 單片機;外部中斷;紅外遙控器;解碼;鍵盤

 紅外遙控器是一種無線的、非接觸控制裝置,具有抗干擾能力強、信息傳輸可靠、功耗低、成本低的特點,廣泛應用于日常生活和工業中[1]。由于不同公司生產的遙控器編碼碼制往往不同,通常不可移植。考慮到C語言與匯編語言相比具有書寫方便易于開發等特點,本文設計了一種簡單的紅外線接收電路,通過C語言軟件設計,實現對萬用遙控器的解碼,可以方便地應用于其他紅外遙控設備。
1 系統的實現
1.1 紅外信號的構成

 紅外通信主要由發射和接收兩部分組成。發射端將待發送的二進制信號編碼成一系列脈沖串信號,通過紅外發射管發送。接收端接收信號的同時,對紅外信號進行放大、檢波、整形后得到TTL電平編碼,送入單片機處理[2]。紅外發射二極管發送的信號是頻率為38 kHz的間斷脈沖串,相當于用二進制信號的編碼乘以頻率為38 kHz的脈沖信號得到的間斷脈沖串。如圖1所示,A是二進制信號的編碼波形,B是頻率為38 kHz周期為26 μs的連續脈沖串,C是經調制后的間斷脈沖串(相當于C=A×B),用于紅外發射二極管發送的波形。圖1中,待發送的二進制數據為101。
1.2 紅外發射接收部分設計
 本文采用的紅外遙控器共6個鍵,分別是開關、震動、氣泡、定時、加溫、減溫。接收的部分選用HS0038紅外接收探頭,接收頻率為38 kHz、周期為26 μs的紅外信號。HS0038是黑色環氧樹脂封裝,不受日光、熒光燈等光源干擾,內附磁屏蔽,功耗低,靈敏度高。在用小功率發射管發射信號的情況下,其接收距離可達35 m;它能與TTL、CMOS電路兼容;HS0038為直立側面收光型,同時能對信號進行放大、檢波、整形得到TTL電平的編碼信號。3個管腳分別是地、+5 V電源、解調信號輸出端。
 紅外解碼電路如圖2所示,當HS0038接收到紅外信號時,輸出端輸出脈沖,觸發三極管導通,發光二極管通電發光[3],這樣可以直觀地看到發射、接收部分是否正常工作。輸出端接AT87C52單片機的T0口,下降沿觸發T0計數器計數[4]。

2 解碼方案
 單片機T0口接收到脈沖下降沿后,T0計數器計數,下一次下降沿觸發計數器停止,并把結果存在預先設置好的數組中。數組里面的數字代表一個信號的長短。雖然不同廠商的紅外遙控器編碼形制不同,但在所有的編碼中,0、1信號只有長度的區別。根據這個原理,對采集到的信號組進行分析,定義長的信號為1,短的信號為0。反復實驗就得到各個按鍵的編碼,破解后的遙控器可以用作單片機的擴展鍵盤。圖3為解碼程序主流程圖。

 

 


 void int1()
{
       IT0=1;  //下降沿觸發外部中斷IT0;
           EX0=1; //允許外部中斷;
           EA=1;  //CPU中斷總允許;
}
           void main()
{
           int i=0,j=0;  //設置變量;
           int1();      //初始化;
           TMOD=0x01;//定時模式;
           TH0=0;    //計數器高8位清零;
           TL0=0;    //計數器低8位清零;
           TR0=1;    //開啟定時器;
           Running=0; //設置引導碼標志位,初始值為“0”;
           Time=0;   //接收次數
}
 for(i=0;i<32;i++)
{   
 calendar[i]=0; //清空信號存儲數組
}
}
void s_int0(void) interrupt 0 using 0://外部中斷T0[5]
  int th,tl; //設置變量用于暫時存儲計數器里的數值
             TR0=0; //關閉定時器;
 if(running==0) //判斷引導碼標志位的數值是否為“0”
     {
    running=1;   //標志位置“1”;
      }
   else         //已經接收過引導碼;
   {
        th=TH0;
        tl=TL0;
        calendar[time]=th*256+tl; //高8位與低8位整合
為一個數,存入數組中;
         time++ ;  //采樣次數標志位加1;
        if(time>=32) //判斷是否采集夠32位
          {
               EA=0;  //關總中斷;
               EX0=0;//關外部中斷;
         }
    }
        TH0=0;   //計數器高8位清零;
        TL0=0;   //計數器低8位清零;
    TR0=1;  //開啟定時器;
}
 數據分析:以開關鍵為例,采到的數據如表1所示。

 由表1可以看出,開頭與結尾的3個信號時間比較長,其余的信號可分為兩種(大約是1 100和2 200)。開頭的13 521是引導碼,結尾的40 498和11 235是終止碼。把2 200定義為邏輯1,1 100定義為邏輯0,得到第一個鍵碼制為00FF30CF。用同樣的方法得到其他鍵的碼值分別為00FF10EF、00FF20DF、00FF00FF、00FF807F、00FFA05F。前16位相同,是客戶代碼。
3 應用
 遙控器解碼之后,可以通過單片機將其用于其他裝置(此系統已成功應用于本實驗室的微機繼電保護系統中)。由于計數器低8位的數值對整體影響不大,本文根據高8位的數值判斷收到的信號為0或1,根據之前測得脈沖范圍,規定TH0接收的數值在0x07~0x09之間,鍵位碼為1;數值在0x02~0x05之間,鍵位碼為0。如此循環即可得到一個完整的碼值。然后進入功能實現區,用戶可以根據自己的需要,定義鍵位功能,具有很高的靈活性。
應用部分軟件設計:
(1)讀鍵位循環的代碼如下:
 void s_int0(void)interrupt 0 using 0
 {      int th,tl;
        th=TH0;
         tl=TL0;
        calendar[time]=th*256+tl;
          if((TH0>=0x07)&&(TH0<=0x09)) 
 //如果高8位數值在0x07~0x09之間;
       {codegroup=(codegroup*2+1); //在鍵位碼結尾加1;
        }       
    else if((TH0>=0x02)&&(TH0<=0x05))
//如果高8位數值在0x02~0x05之間;
      { codegroup=codegroup*2; //在鍵位碼結尾加0;
      }    
            else{leader=0;}
                 time++;
           }
(2)鍵位功能代碼如下:
if(code1==0x30CF)    //讀鍵位碼
      {     while(code1==0x30CF); //確認鍵位碼
         code1=0;      //清空碼值,等待下一次按鍵
            (實現功能1)
    }
 if(code1==0x10EF)
      {  while(code1==0x10EF);
        code1=0;
        (實現功能2)
…………………………
    if(code1==0x00FF)
      { while(code1==0xA05F);
           code1=0;
         (實現功能6)
        }
基于AT87C52單片機的萬能遙控器解碼及其應用,提出了一種簡易的紅外遙控器解碼方法,此法可以在完全不知遙控引導碼和結束碼使用的編碼規則的情況下,直接解碼,自主定義1和0。具有操作簡便,可移植性強的特點。
參考文獻
[1] 戴培山,馮承德,劉棟.基于keilC51的紅外解碼設計[J].自動化儀器與儀表,2003(6):11-23.
[2] 盧靈,劉遠峰.紅外通信技術在溫濕度變送器上的應用[J].微計算機信息,2010(9-2):158-160.
[3] 童詩白,華成英.模擬電子技術基礎(第四版)[M].北京:高等教育出版社,1980.
[4] 魏立峰,王寶興.單片機原理與應用技術[M].北京:北京大學出版社,2006.
[5] 馬忠梅,籍順心,張凱,等.單片機的C語言應用程序設計(第四版)[M].北京:北京航空航天大學出版社,2007.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
1024国产精品| 午夜一区二区三区不卡视频| 国产精品网站在线| 欧美视频在线观看视频极品| 免费欧美在线| 老鸭窝毛片一区二区三区| 久久激情视频| 久久成人羞羞网站| 欧美伊人久久大香线蕉综合69| 亚洲欧美日韩国产综合在线 | 久久婷婷国产综合尤物精品| 欧美一区二区在线视频| 翔田千里一区二区| 亚洲欧洲99久久| 亚洲欧美日韩在线播放| 午夜电影亚洲| 久久成人国产| 久久久久久综合| 久久久午夜精品| 老司机午夜精品视频在线观看| 久久久久久香蕉网| 每日更新成人在线视频| 欧美国产日韩一区二区三区| 欧美劲爆第一页| 欧美日韩精品一区| 国产精品久久久对白| 国产精品视频内| 国产中文一区二区| 亚洲国产精品国自产拍av秋霞| 亚洲精品国产精品乱码不99 | 欧美日韩岛国| 欧美日韩精品系列| 国产精品久久网| 国产欧美综合在线| 极品少妇一区二区| 亚洲黄色成人| 在线视频你懂得一区二区三区| 亚洲一区二区在线视频 | 一道本一区二区| 亚洲综合色丁香婷婷六月图片| 校园春色国产精品| 久久在线精品| 欧美精品一区二区三区四区| 欧美午夜精品久久久久久人妖| 国产精品亚洲а∨天堂免在线| 国产精品视频免费在线观看| 韩国久久久久| 日韩亚洲视频| 新狼窝色av性久久久久久| 亚洲电影视频在线| 99re66热这里只有精品4| 亚洲欧美日韩国产一区二区三区 | 亚洲在线国产日韩欧美| 久久精品国产99国产精品澳门| 亚洲欧洲日韩综合二区| 亚洲午夜伦理| 久久综合国产精品| 欧美三区视频| 娇妻被交换粗又大又硬视频欧美| 亚洲美女淫视频| 欧美一区二区视频免费观看| 日韩午夜黄色| 久久久久久久久久久成人| 欧美精品在线视频观看| 国产日韩欧美精品一区| 亚洲国产另类 国产精品国产免费| 这里只有精品视频| 亚洲激情成人在线| 午夜精品理论片| 欧美福利视频在线| 国产欧美亚洲视频| 日韩视频免费| 亚洲福利一区| 欧美在线观看日本一区| 欧美啪啪一区| 激情另类综合| 亚洲自拍电影| 一区二区三区日韩| 免费久久精品视频| 国产乱码精品1区2区3区| 亚洲激情欧美| 久久av二区| 欧美日韩国产精品成人| 亚洲人成欧美中文字幕| 亚洲一区二区在线| 99精品免费视频| 毛片精品免费在线观看| 国产精品一区=区| 99伊人成综合| 日韩视频在线一区| 久久综合九色| 国产亚洲一级高清| 亚洲专区国产精品| 亚洲一级免费视频| 欧美精品电影在线| 亚洲第一黄色| 亚洲第一在线综合在线| 欧美一区三区三区高中清蜜桃| 欧美日韩亚洲一区三区| 亚洲国产欧美日韩| 亚洲国产精品久久人人爱蜜臀| 欧美在线影院在线视频| 欧美性天天影院| 日韩视频在线播放| 日韩视频在线观看一区二区| 蜜桃久久精品乱码一区二区| 国产综合久久久久影院| 午夜国产精品视频免费体验区| 亚洲女同在线| 欧美天天在线| 99国产精品自拍| 中文在线资源观看网站视频免费不卡 | 在线欧美不卡| 久久国产精品亚洲va麻豆| 性做久久久久久免费观看欧美| 欧美私人网站| av成人毛片| 亚洲一区在线观看免费观看电影高清| 欧美日韩成人综合天天影院| 亚洲人成亚洲人成在线观看图片| 亚洲精品激情| 欧美激情自拍| 亚洲看片免费| 亚洲无吗在线| 国产精品久久久久99| 亚洲影院高清在线| 欧美在线视频在线播放完整版免费观看 | 欧美一级午夜免费电影| 久久国产日本精品| 性欧美精品高清| 欧美成人有码| 国产在线乱码一区二区三区| 香蕉免费一区二区三区在线观看| 欧美一级视频精品观看| 国产嫩草一区二区三区在线观看| 亚洲欧美另类在线| 久久精品国产欧美亚洲人人爽| 国产一区二区三区免费观看| 久久国产乱子精品免费女 | 国产有码一区二区| 久久不射网站| 欧美成人精品在线播放| 亚洲精品美女在线| 亚洲欧美日韩综合| 国产亚洲福利社区一区| 亚洲国产精品第一区二区| 欧美freesex8一10精品| 日韩亚洲在线| 午夜精品在线观看| 国产一区二区三区的电影 | 欧美精品久久久久久久免费观看| 日韩网站在线看片你懂的| 亚洲主播在线播放| 国产视频亚洲| 亚洲人成毛片在线播放| 欧美三区在线观看| 欧美在线观看网站| 欧美精品一区二区高清在线观看| 一区二区三区四区在线| 久久精品一本| 亚洲欧洲综合另类在线| 午夜精品在线看| 亚洲国产成人av| 亚洲欧美精品在线观看| 海角社区69精品视频| 亚洲乱码国产乱码精品精可以看 | 欧美一区二区视频免费观看| 极品中文字幕一区| 亚洲一区二区久久| 国内久久精品| 一区二区三区国产| 国产欧美日韩高清| 亚洲高清毛片| 欧美小视频在线观看| 久久精品视频在线免费观看| 欧美日韩在线一区二区| 欧美一区二区三区四区夜夜大片| 欧美大片免费观看在线观看网站推荐| 一区二区三区高清不卡| 久久不射中文字幕| 亚洲美女淫视频| 久久偷窥视频| 亚洲一二三四区| 欧美成人精品一区| 午夜电影亚洲| 欧美日韩一区二区三区视频| 一区二区三区在线不卡| 亚洲直播在线一区| 欧美精品久久久久a| 亚洲欧美日韩中文在线制服| 欧美久久久久久| 久久精品国产91精品亚洲| 国产精品jizz在线观看美国| 亚洲国产岛国毛片在线| 国产精品一区二区在线观看网站 | 国产精品美女www爽爽爽视频| 亚洲三级网站| 国产主播精品| 欧美一区二区免费观在线| 日韩一区二区精品视频|