1 引言
紅外遙控是目前常用的一種通信和遙控方法,紅外遙控裝置具有體積小,、功耗低,、功能強,、成本低等特點,因而其廣泛應用于各種家電產(chǎn)品,、金融和商用設施,,以及工業(yè)設備中。但是各種產(chǎn)品的遙控并不能互相兼容,,本文介紹一種利用單片機設計通用自學習型紅外遙控的方法,,可以實現(xiàn)對多種產(chǎn)品紅外線遙控。本裝置采用了最小化模式設計,,電路簡單,,可靠性高,此技術應用于我們開發(fā)的多媒體中央控制器產(chǎn)品中,,獲得了令人滿意的效果,。該方案可以還可應用于自學習萬能遙控器和智能家庭集中控制器等設備。
2 紅外遙控原理
一般的紅外遙控系統(tǒng)由紅外遙控信號發(fā)射器,、紅外遙控信號接收器,、微處理器和外圍電路構成的。當遙控器的某個按鍵按下,,其內(nèi)部的信號發(fā)射器產(chǎn)生遙控編碼脈沖,,由紅外發(fā)射管串行輸出,遙控接收模塊型號1838 完成對遙控信號的接收,、放大,、檢波、整形,、解調(diào)出遙控編碼脈沖,,遙控編碼脈沖是一組串行二進制編碼,對于一般的紅外遙控系統(tǒng),,此串行輸入到微控制器,,由其內(nèi)部完成遙控指令解碼,并執(zhí)行相應的遙控功能,。
3 一般紅外遙控信號編碼脈沖的波形
紅外遙控器發(fā)射的遙控編碼脈沖,,由前導碼、系統(tǒng)碼,、功能碼,、功能碼的反碼組成
如圖1 所示
前導碼是一個遙控碼的起始部分,由一個高電平和一個低電平組成,。作為接受數(shù)據(jù)的準備脈沖,,這些編碼是經(jīng)38 kHz 的載波脈寬調(diào)制后發(fā)射出去。
通過分析大量不同類型的紅外遙控碼波形,,遙控碼的數(shù)據(jù)幀間歇寬度均為10ms以上,,前導碼的高電平均為5ms以上,通常為9ms左右,,編碼位在10us和5ms之間,,在本設計中只考慮遙控器發(fā)射信號的高低電平寬度,不考慮其編碼方式,,以簡化設計,。
4 系統(tǒng)硬件電路的設計
圖2 單鍵通用學習型遙控器原理圖
考慮到有的遙控器的編碼比較長,需要比較多的內(nèi)部RAM,,單片機采用了 AT89C52 P2.5 口接學習按鍵,,P2.7口接發(fā)射按鍵,P1.7 口用于作為遙控碼的輸出口,,輸出38 kHz 的遙控碼,,INT0口用于紅外線接收頭的輸出信號的輸入。
5 系統(tǒng)主要程序的設計
5.1 主程序如圖3
上電復位后,,主程序掃描按鍵,,當確認有按鍵按下時,若是學習鍵,,則進入學習狀態(tài),;若是發(fā)射鍵,則將已學習的遙控編碼脈沖發(fā)射出去,。
5.2 遙控編碼學習子程序
該程序?qū)崿F(xiàn)遙控前導碼的識別,,遙控編碼高低電平寬度計時和結(jié)束位識別功能,程序流程如圖4 所示,。
在設計中,,采用了計數(shù)器對信號高低電平計時的方法來采集數(shù)據(jù)并保存。前導碼由一個9ms左右的高電平和一個低電平組成的,,判斷是否是前導碼的方法是:判斷開始的高電平是否大于5ms,。如果大于5ms的話,就認為是前導碼,,并保存前導碼的低電平,。然后依次保存采集到的編碼信號,如果采集到編碼信號的高電平大于5ms的話,,就認為是編碼已經(jīng)結(jié)束,,置0 作為標志學習子程序結(jié)束。
5.3 遙控編碼發(fā)射子程序
由軟件實現(xiàn)遙控信號的載波合成,,用定時中斷1產(chǎn)生38kHz的載波信號用,,定時中斷0控制定時中斷1的開關,定時器0定時長短由相應的遙控信號電平寬度計數(shù)值確定,。如果需發(fā)射的遙控信號為高電平時,,關定時中斷1,;如果為低電平,則開定時中斷1,,輸出38kHz載波信號到紅外發(fā)射控制腳P1.7,,從而實現(xiàn)遙控信號的脈寬調(diào)制發(fā)射。
6 結(jié)語
在本設計中,,采用了不考慮紅外信號的編碼方式,,只采集其高低電平寬度的方法,使得可采集各種編碼方式的信號發(fā)射時,,不是用硬件,,而是采用以軟件方式產(chǎn)生載波的方法。節(jié)約了硬件設備,,并使電路簡化,。本設計非常簡單地實現(xiàn)了紅外遙控信號的接收和轉(zhuǎn)發(fā),本設計的裝置已用于多媒體中央控制器產(chǎn)品中對多媒體電子產(chǎn)品進行紅外控制操作,,在實際應用過程中獲得了滿意的效果,,該裝置還可應用智能家居產(chǎn)品中對空調(diào)電動窗簾燈光音響等電器設備進行控制。