紅外遙控器軟件解碼及其應(yīng)用
摘要:通過(guò)對(duì)紅外遙控器各按鍵發(fā)送沖波形的分析可以識(shí)別碼型,從而為軟件解碼提供依據(jù)。本文以實(shí)例介紹紅外遙控器與單片機(jī)的硬件接口,并從原理出發(fā)給出軟件解碼的方法。這是一個(gè)可以直接引用的成功例子,同時(shí)也為各類紅外遙控器在單片機(jī)控制產(chǎn)品中的開(kāi)發(fā)應(yīng)用提供了一個(gè)非常實(shí)用的參考。關(guān)鍵詞:遙控器 軟件解碼 單片機(jī)
在單片機(jī)控制產(chǎn)品的開(kāi)發(fā)應(yīng)用中,為了向控制系統(tǒng)軟件控制命令,鍵盤往往是不可缺少的。傳統(tǒng)方法是利用并行輸入/輸出接口芯片擴(kuò)展一個(gè)鍵盤接口,或者直接利用單片機(jī)的并行端口進(jìn)行擴(kuò)展。在某些應(yīng)用環(huán)境下,這種方式2個(gè)弊端:①鍵盤和控制系統(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),效果良好。
紅外遙控器是一種非常容易買到,且價(jià)格便宜的產(chǎn)品,種類很多,但它們都是配合某種特定電子產(chǎn)品的(如各種電視機(jī)、VCD、空調(diào)器等),由專用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)。采取這種連接方法,軟件解既可工作于查詢方式,也可工作于中斷方式。
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ǔ)的程序段:
MOV R0,#00H
MOV R1,#28H
MOV TMOD,#01H
TK:JB P3.3,TK ;等待
[1] [2] [3] [4]