<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 紅外遙控器軟件解碼及其應用

紅外遙控器軟件解碼及其應用

作者: 時(shí)間:2004-12-07 來(lái)源:網(wǎng)絡(luò ) 收藏
摘要:通過(guò)對各按鍵發(fā)送沖波形的分析可以識別碼型,從而為提供依據。本文以實(shí)例介紹與單片機的硬件接口,并從原理出發(fā)給出的方法。這是一個(gè)可以直接引用的成功例子,同時(shí)也為各類(lèi)在單片機控制產(chǎn)品中的開(kāi)發(fā)提供了一個(gè)非常實(shí)用的參考。

關(guān)鍵詞:遙控器 單片機

在單片機控制產(chǎn)品的開(kāi)發(fā)中,為了向控制系統軟件控制命令,鍵盤(pán)往往是不可缺少的。傳統方法是利用并行輸入/輸出接口芯片擴展一個(gè)鍵盤(pán)接口,或者直接利用單片機的并行端口進(jìn)行擴展。在某些環(huán)境下,這種方式2個(gè)弊端:①鍵盤(pán)和控制系統連在一起,不靈活,環(huán)境適應性差;②浪費單片機的端口,且硬件成本較高。

使用紅外遙控器作為控制系統的輸入設備,具有成本低、靈活方便的特點(diǎn)。本文目的就在于介紹軟件解碼研究的一般方法和紅外遙控器進(jìn)行二次開(kāi)發(fā)的應用技術(shù)。該方法已在多個(gè)應用系統設計中成功地實(shí)現,效果良好。

紅外遙控器是一種非常容易買(mǎi)到,且價(jià)格便宜的產(chǎn)品,種類(lèi)很多,但它們都是配合某種特定電子產(chǎn)品的(如各種電視機、VCD、空調器等),由專(zhuān)用CPU解碼,作為一般的單片機控制系統能直接使用。使用現成遙控器作為控制系統的輸入,需要解決如下幾個(gè)問(wèn)題:如何接收紅外遙控信號;如何識別紅外遙控信號;解碼軟件的設計。其它的問(wèn)題都是非本質(zhì)的,例如遙控器面板功能鍵標注的問(wèn)題,可自行設計、重印即可。

1 紅外遙控信號的接收

接收電路可以使用集成紅外接收器成品。接收器包括紅外接收管和信號處理IC。接收器對外只有3個(gè)引腳:Vcc、GND和1個(gè)脈沖信號輸出PO。與單片機接口非常方便,如圖1所示。

①Vcc接系統的電源正極(+5V);

②GND接系統的地線(xiàn)(0V);

③脈沖信號輸出接CPU的中斷輸入引腳(例如8031的13腳INT1)。采取這種連接方法,軟件解既可工作于查詢(xún)方式,也可工作于中斷方式。

2 脈沖流分析

要了解一個(gè)未知的遙控器,首先要分析其脈沖流,從而了解其脈沖波形特征(以何種方式攜帶“0”、“1”信息),進(jìn)而了解其編碼規律。脈沖流的分析應從分析脈沖的高、低電平寬度入手。筆者用軟件的方法實(shí)現了對脈沖流的分析。以圖1所示的接口為例,如果沒(méi)有紅外遙控信號到來(lái),接收器的輸出端口PO保持高電平;當接收到紅外遙控信號時(shí),接收器件信號轉換成脈沖序列加到CPU的中斷輸入引腳。用軟件測試引腳的邏輯電平,同時(shí)啟動(dòng)TC計時(shí)器,測量該引腳分別為邏輯“0”和邏輯“1”情況下的時(shí)間值,存儲起來(lái),然后打印、分析。下面用8051匯編語(yǔ)言給出對脈沖流進(jìn)行采集、存儲的程序段:

MOV R0,#00H

MOV R1,#28H

MOV TMOD,#01H

TK:JB P3.3,TK ;等待低電平到來(lái)

;測低電平寬度

TK1:MOV TH0,#00H

MOV TL0,#00H

SETB TR0

TK0:JB TF0,TKE ;超時(shí)無(wú)效返回

JNB P3.3,TK2

CLR TR0

MOV A,TH0

MOVX @R0,A

INC R0

MOV A,TL0

MOVX @R0,A

INC R0

;測高電平寬度

MOV TH0,#00H

MOV TL0,#00H

SETB TR0

TK3:JB TF0,TKE ;超時(shí)無(wú)效返回

JB P3.3,TK3

CLR TR0

MOV A,TH0

MOVX @R0,A

INC R0

MOV A,TL0

MOVX @R0,A

INC R0

DJNZ R1,TK1 ;循環(huán)

TKE:RET

這段程序首先將TC0設置成16位定時(shí)器方式,初始化RAM地址指針R0和循環(huán)計數指針R1,每當引腳的邏輯電平發(fā)生跳變時(shí),停止計時(shí),將計時(shí)值保存到連續的RAM中。這段程序可以連續測量40個(gè)脈沖的時(shí)間值(包括40個(gè)低電平脈寬)。筆者以TC9012芯片的遙控器為對象,采集了所有按鍵的編程脈沖波形,并且對同一按鍵進(jìn)行了重復實(shí)驗。限于篇幅,采樣數據不能給出,僅給出脈沖流的規律(仿真機CPU晶振為6MHz):

①引導脈沖是一個(gè)時(shí)間值為0937H~0957H的低電平和時(shí)間值為084FH~086FH的高電平;

②數據脈沖的低電平時(shí)間值約為0.127H~0177H;

③高電平時(shí)間值有2種情況:00BBH~00FFH(窄)、02EFH~0333H(寬)。

由大量數據總結分析,按鍵編碼有如下規律:

①除引導脈沖外的脈沖是數據編碼脈沖,數據“位”信息由高電平脈寬決定:窄脈寬表示“0”、寬脈寬表示“1”;

②每個(gè)按鍵的脈沖流譯碼后,包含4個(gè)字節的信息:

*所有按鍵的前2個(gè)字節編碼都一樣,都是2個(gè)字節的“0EH”;

*第3字節是鍵碼;

*第4字節是鍵碼的反碼。

經(jīng)過(guò)對相同按鍵脈沖進(jìn)行多次采樣發(fā)現,相同按鍵脈沖序列的對應位置脈寬時(shí)間值是在一個(gè)小范圍內波動(dòng)的(不是一個(gè)確定值),因此,對模式的識別不能采取精確比較法。對此,本人采取模糊的辦法進(jìn)行了抽象處理。根據上述實(shí)驗規律,將軟件譯碼時(shí)對脈沖的分析判斷依據及算法設計思想總結如下:

①引導脈沖的低電平和高電平寬度的判斷依據是時(shí)間值的“高字節大于08H”,低字節忽略;

②數據脈沖流的低電平脈寬相同,忽略不判斷;

③高電平脈寬是判斷數據流每位是“0”還是“1”的依據。本人抽取的判斷是脈寬的高字節若小于2表示“0”,否則表示“1”,脈寬的低字節忽略。

實(shí)踐證明,上述判據是有效可行的。這樣處理不僅使解碼軟件的設計簡(jiǎn)單化,而且大大提高了解碼的速度。使用上述判據編寫(xiě)軟件解碼程序時(shí),要注意脈沖流采樣數據存儲地址與脈沖的對應關(guān)系。軟件主要有如下幾部分:

①判斷遙控信號的到來(lái)(在解碼前調用1個(gè)獨立的子程序);

②采樣并存儲脈沖流;

③判斷引導脈沖是否有效;

④解碼前2個(gè)字節并判斷是否為“0EH”;

⑤解碼第3個(gè)字節,該字節即為有效鍵碼;

⑥鍵碼的查表映射(如果使用原鍵碼,可省略這一步)。

3 解碼軟件的設計

基于上述思路設計的軟件解碼系統成功地應用于多個(gè)控制系統。下面給出一個(gè)實(shí)例(用MCS-51系列MC交通規則TC9012紅外遙控器進(jìn)行軟件解碼)的匯編語(yǔ)言程序。程序中使用的參數是針對MCU使用6MHz晶振的情況,使用其它頻率的晶振,只需修改脈寬判據即可。為便于理解,盡量保持與原理敘述中的致性,程序中給出了較詳細的注翻譯,詳見(jiàn)網(wǎng)絡(luò )補充版(http://www.dpj.com.cn)。

本文雖然是用MCS-51系列MCU對TC9012紅外遙控器軟件解碼的研究,但其方法具有一般性。具體的應用,可自行變通。



關(guān)鍵詞: 及其 應用 解碼 軟件 遙控器 紅外

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>