1. <code id="ya7qu"><span id="ya7qu"><label id="ya7qu"></label></span></code>

    <b id="ya7qu"><bdo id="ya7qu"></bdo></b>
    <wbr id="ya7qu"><optgroup id="ya7qu"><strike id="ya7qu"></strike></optgroup></wbr>
  2. <u id="ya7qu"><bdo id="ya7qu"></bdo></u>
    現(xiàn)在位置:范文先生網(wǎng)>理工論文>電子通信論文>紅外遙控器軟件解碼及其應(yīng)用

    紅外遙控器軟件解碼及其應(yīng)用

    時(shí)間:2023-02-21 00:19:06 電子通信論文 我要投稿
    • 相關(guān)推薦

    紅外遙控器軟件解碼及其應(yīng)用

      摘要:通過(guò)對(duì)紅外遙控器各按鍵發(fā)送沖波形的分析可以識(shí)別碼型,從而為軟件解碼提供依據(jù)。本文以實(shí)例介紹紅外遙控器與單片機(jī)的硬件接口,并從原理出發(fā)給出軟件解碼的方法。這是一個(gè)可以直接引用的成功例子,同時(shí)也為各類(lèi)紅外遙控器在單片機(jī)控制產(chǎn)品中的開(kāi)發(fā)應(yīng)用提供了一個(gè)非常實(shí)用的參考。
      
      關(guān)鍵詞:遙控器軟件解碼單片機(jī)
      
      在單片機(jī)控制產(chǎn)品的開(kāi)發(fā)應(yīng)用中,為了向控制系統(tǒng)軟件控制命令,鍵盤(pán)往往是不可缺少的。傳統(tǒng)方法是利用并行輸入/輸出接口芯片擴(kuò)展一個(gè)鍵盤(pán)接口,或者直接利用單片機(jī)的并行端口進(jìn)行擴(kuò)展。在某些應(yīng)用環(huán)境下,這種方式2個(gè)弊端:①鍵盤(pán)和控制系統(tǒng)連在一起,不靈活,環(huán)境適應(yīng)性差;②浪費(fèi)單片機(jī)的端口,且硬件成本較高。
      
      使用紅外遙控器作為控制系統(tǒng)的輸入設(shè)備,具有成本低、靈活方便的特點(diǎn)。本文目的就在于介紹軟件解碼研究的一般方法和紅外遙控器進(jìn)行二次開(kāi)發(fā)的應(yīng)用技術(shù)。該方法已在多個(gè)應(yīng)用系統(tǒng)設(shè)計(jì)中成功地實(shí)現(xiàn),效果良好。
      
      紅外遙控器是一種非常容易買(mǎi)到,且價(jià)格便宜的產(chǎn)品,種類(lèi)很多,但它們都是配合某種特定電子產(chǎn)品的(如各種電視機(jī)、VCD、空調(diào)器等),由專(zhuān)用CPU解碼,作為一般的單片機(jī)控制系統(tǒng)能直接使用。使用現(xiàn)成遙控器作為控制系統(tǒng)的輸入,需要解決如下幾個(gè)問(wèn)題:如何接收紅外遙控信號(hào);如何識(shí)別紅外遙控信號(hào);解碼軟件的設(shè)計(jì)。其它的問(wèn)題都是非本質(zhì)的,例如遙控器面板功能鍵標(biāo)注的問(wèn)題,可自行設(shè)計(jì)、重印即可。
      
      1紅外遙控信號(hào)的接收
      
      接收電路可以使用集成紅外接收器成品。接收器包括紅外接收管和信號(hào)處理IC.接收器對(duì)外只有3個(gè)引腳:Vcc、GND和1個(gè)脈沖信號(hào)輸出PO.與單片機(jī)接口非常方便,如圖1所示。
      
      ①Vcc接系統(tǒng)的電源正極(+5V);
      
      ②GND接系統(tǒng)的地線(0V);
      
      ③脈沖信號(hào)輸出接CPU的中斷輸入引腳(例如8031的13腳INT1)。采取這種連接方法,軟件解既可工作于查詢(xún)方式,也可工作于中斷方式。
      
      2脈沖流分析
      
      要了解一個(gè)未知的遙控器,首先要分析其脈沖流,從而了解其脈沖波形特征(以何種方式攜帶“0”、“1”信息),進(jìn)而了解其編碼規(guī)律。脈沖流的分析應(yīng)從分析脈沖的高、低電平寬度入手。筆者用軟件的方法實(shí)現(xiàn)了對(duì)脈沖流的分析。以圖1所示的接口為例,如果沒(méi)有紅外遙控信號(hào)到來(lái),接收器的輸出端口PO保持高電平;當(dāng)接收到紅外遙控信號(hào)時(shí),接收器件信號(hào)轉(zhuǎn)換成脈沖序列加到CPU的中斷輸入引腳。用軟件測(cè)試引腳的邏輯電平,同時(shí)啟動(dòng)TC計(jì)時(shí)器,測(cè)量該引腳分別為邏輯“0”和邏輯“1”情況下的時(shí)間值,存儲(chǔ)起來(lái),然后打印、分析。下面用8051匯編語(yǔ)言給出對(duì)脈沖流進(jìn)行采集、存儲(chǔ)的程序段:
      
      MOVR0,#00H
      
      MOVR1,#28H
      
      MOVTMOD,#01H
      
      TK:JBP3.3,TK;等待低電平到來(lái)
      
      ;測(cè)低電平寬度
      
      TK1:MOVTH0,#00H
      
      MOVTL0,#00H
      
      SETBTR0
      
      TK0:JBTF0,TKE;超時(shí)無(wú)效返回
      
      JNBP3.3,TK2
      
      CLRTR0
      
      MOVA,TH0
      
      MOVX@R0,A
      
      INCR0
      
      MOVA,TL0
      
      MOVX@R0,A
      
      INCR0
      
      ;測(cè)高電平寬度
      
      MOVTH0,#00H
      
      MOVTL0,#00H
      
      SETBTR0
      
      TK3:JBTF0,TKE;超時(shí)無(wú)效返回
      
      JBP3.3,TK3
      
      CLRTR0
      
      MOVA,TH0
      
      MOVX@R0,A
      
      INCR0
      
      MOVA,TL0
      
      MOVX@R0,A
      
      INCR0
      
      DJNZR1,TK1;循環(huán)
      
      TKE:RET
      
      這段程序首先將TC0設(shè)置成16位定時(shí)器方式,初始化RAM地址指針R0和循環(huán)計(jì)數(shù)指針R1,每當(dāng)引腳的邏輯電平發(fā)生跳變時(shí),停止計(jì)時(shí),將計(jì)時(shí)值保存到連續(xù)的RAM中。這段程序可以連續(xù)測(cè)量40個(gè)脈沖的時(shí)間值(包括40個(gè)低電平脈寬)。筆者以TC9012芯片的遙控器為對(duì)象,采集了所有按鍵的編程脈沖波形,并且對(duì)同一按鍵進(jìn)行了重復(fù)實(shí)驗(yàn)。限于篇幅,采樣數(shù)據(jù)不能給出,僅給出脈沖流的規(guī)律(仿真機(jī)CPU晶振為6MHz):
      
      ①引導(dǎo)脈沖是一個(gè)時(shí)間值為0937H——0957H的低電平和時(shí)間值為084FH——086FH的高電平;
      
      ②數(shù)據(jù)脈沖的低電平時(shí)間值約為0.127H——0177H;
      
      ③高電平時(shí)間值有2種情況:00BBH——00FFH(窄)、02EFH——0333H(寬)。
      
      由大量數(shù)據(jù)總結(jié)分析,按鍵編碼有如下規(guī)律:
      
      ①除引導(dǎo)脈沖外的脈沖是數(shù)據(jù)編碼脈沖,數(shù)據(jù)“位”信息由高電平脈寬決定:窄脈寬表示“0”、寬脈寬表示“1”;
      
      ②每個(gè)按鍵的脈沖流譯碼后,包含4個(gè)字節(jié)的信息:
      
      *所有按鍵的前2個(gè)字節(jié)編碼都一樣,都是2個(gè)字節(jié)的“0EH”;
      
      *第3字節(jié)是鍵碼;
      
      *第4字節(jié)是鍵碼的反碼。
      
      經(jīng)過(guò)對(duì)相同按鍵脈沖進(jìn)行多次采樣發(fā)現(xiàn),相同按鍵脈沖序列的對(duì)應(yīng)位置脈寬時(shí)間值是在一個(gè)小范圍內(nèi)波動(dòng)的(不是一個(gè)確定值),因此,對(duì)模式的識(shí)別不能采取精確比較法。對(duì)此,本人采取模糊的辦法進(jìn)行了抽象處理。根據(jù)上述實(shí)驗(yàn)規(guī)律,將軟件譯碼時(shí)對(duì)脈沖的分析判斷依據(jù)及算法設(shè)計(jì)思想總結(jié)如下:
      
      ①引導(dǎo)脈沖的低電平和高電平寬度的判斷依據(jù)是時(shí)間值的“高字節(jié)大于08H”,低字節(jié)忽略;
      
      ②數(shù)據(jù)脈沖流的低電平脈寬相同,忽略不判斷;
      
      ③高電平脈寬是判斷數(shù)據(jù)流每位是“0”還是“1”的依據(jù)。本人抽取的判斷是脈寬的高字節(jié)若小于2表示“0”,否則表示“1”,脈寬的低字節(jié)忽略。
      
      實(shí)踐證明,上述判據(jù)是有效可行的。這樣處理不僅使解碼軟件的設(shè)計(jì)簡(jiǎn)單化,而且大大提高了解碼的速度。使用上述判據(jù)編寫(xiě)軟件解碼程序時(shí),要注意脈沖流采樣數(shù)據(jù)存儲(chǔ)地址與脈沖的對(duì)應(yīng)關(guān)系。軟件主要有如下幾部分:
      
      ①判斷遙控信號(hào)的到來(lái)(在解碼前調(diào)用1個(gè)獨(dú)立的子程序);
      
      ②采樣并存儲(chǔ)脈沖流;
      
      ③判斷引導(dǎo)脈沖是否有效;
      
      ④解碼前2個(gè)字節(jié)并判斷是否為“0EH”;
      
      ⑤解碼第3個(gè)字節(jié),該字節(jié)即為有效鍵碼;
      
      ⑥鍵碼的查表映射(如果使用原鍵碼,可省略這一步)。
      
      3解碼軟件的設(shè)計(jì)
      
      基于上述思路設(shè)計(jì)的軟件解碼系統(tǒng)成功地應(yīng)用于多個(gè)控制系統(tǒng)。下面給出一個(gè)實(shí)例(用MCS-51系列MC交通規(guī)則TC9012紅外遙控器進(jìn)行軟件解碼)的匯編語(yǔ)言程序。程序中使用的參數(shù)是針對(duì)MCU使用6MHz晶振的情況,使用其它頻率的晶振,只需修改脈寬判據(jù)即可。為便于理解,盡量保持與原理敘述中的致性,程序中給出了較詳細(xì)的注翻譯,詳見(jiàn)網(wǎng)絡(luò)補(bǔ)充版。
      
      本文雖然是用MCS-51系列MCU對(duì)TC9012紅外遙控器軟件解碼的研究,但其方法具有一般性。具體的應(yīng)用,可自行變通。

    【紅外遙控器軟件解碼及其應(yīng)用】相關(guān)文章:

    紅外遙控器信號(hào)的接收和轉(zhuǎn)發(fā)08-06

    新型MP3解碼芯片VS1001K及其應(yīng)用08-06

    紅外遙控在汽車(chē)中的應(yīng)用08-06

    紅外感應(yīng)式燈控芯片PT8A2621及其應(yīng)用08-06

    透鏡及其應(yīng)用08-17

    集成有10位ADC的增強(qiáng)型視頻解碼器ADV7183及其應(yīng)用08-06

    時(shí)間-數(shù)字轉(zhuǎn)換器測(cè)量結(jié)果的軟件修正及其應(yīng)用08-06

    離心現(xiàn)象及其應(yīng)用08-17

    膠體的性質(zhì)及其應(yīng)用08-17

    国产福利萌白酱精品tv一区_日韩亚洲中字无码一区二区三区_亚洲欧洲高清无码在线_全黄无码免费一级毛片
    1. <code id="ya7qu"><span id="ya7qu"><label id="ya7qu"></label></span></code>

      <b id="ya7qu"><bdo id="ya7qu"></bdo></b>
      <wbr id="ya7qu"><optgroup id="ya7qu"><strike id="ya7qu"></strike></optgroup></wbr>
    2. <u id="ya7qu"><bdo id="ya7qu"></bdo></u>
      揄拍成人国产精品视频 | 日本人妖资源站在线观看 | 日本一区二区三区在线播放不卡 | 亚洲大片在线观看完整版 | 亚洲最新国产91 | 日韩OL精品视频在线观看 |