紅外遙控器信號的接收和轉發(fā)
紅外遙控在家電產(chǎn)品中有廣泛應用,但各產(chǎn)生的遙控器不能相互兼容。目前市場上常見的萬能遙控器只能對某幾種產(chǎn)品進行控制,不是真正的“萬能”,而且不能對新上市的產(chǎn)品進行控制。本文介紹一種用單片機對紅外遙控器信號接收和轉發(fā)的方法,由于只關心發(fā)射信號波形中的高低電平的寬度,不管其如何編碼,因此可以用來實現(xiàn)自學習萬能遙控器。
一、紅外信號的接收和波形測量
所有紅外遙控器的輸出都是用編碼后串行數(shù)據(jù)對38~40kHz的方波進行脈沖幅度調制而產(chǎn)生的。如果直接對已調波進行測量,由于單片機的指令周期是微秒(μs)級,而已調波的脈寬只有20多μs,會產(chǎn)生很大的誤差。因此先要對已調波進行解調,對解調后的波形進行測量。
紅外遙控接收芯片CX20106可以完成對遙控信號的前置放大、限幅放大、帶通濾波、峰值檢波和波形整形,只需加上簡單的外圍電路即可完成對已調波的解調,原理如圖1所示。
將CX20106解調出的遙控編碼脈沖直接連入8751單片機的INT0和T0腳,定時器T)和T1都初始化為定時器工作方式1,T0的GATE位置位。每次外部中斷首先停止定時,記錄T0、T1的計數(shù)值,然后將T0、T1的計數(shù)值清零,并重新啟動定時。T0的值即為高電平脈寬,T1-T0的值為低電平脈寬,如圖2所示。
測量波形的外部中斷服務程序的流程如圖3所示。
測量波形的外部中斷服務程序如下:
interup0:clr tr0
clr tr1
push psw
push acc
inc test
jb first,RE
mov a,tl0
mov temp1,a
mov a,th0
mov temp2,a
mov a,tl1
clr c
subb a,temp1
movx @dptr,a
inc dptr
mov a,th1
subb a,temp2
movx @dptr,a
inc dptr
mov a,temp1
movx @dptr,a
inc dptr
mov a,temp2
movx @dptr,a
inc dptr
RE:clr first
mov tl0,#0
mov th0,#0
mov tl1,#0
mov th1,#0
setb tr0
setb tr1
二、測量數(shù)據(jù)的轉發(fā)
只須用的數(shù)據(jù)周期性地改變P1.0就可以得到原來的遙控編碼脈沖,流程如圖4所示。
三、產(chǎn)生遙控發(fā)射信號
用遙控脈沖信號調制38kHz方波,然后將已調波放大,驅動紅外發(fā)光二極管,就可以得到遙發(fā)射信號。調制可用一個或門實現(xiàn),38kHz方波可用8751的定時器T1產(chǎn)生,如圖5所示。
有些遙控器的載頻可能是40kHz,只須稍微加大發(fā)射功率仍然可用38kHz載頻使其接收電路動作。
四、應用領域
只須加上鍵盤和液晶或數(shù)碼顯示電路,并擴展一定數(shù)量的RAM,就可以用此方法實現(xiàn)自學習萬能遙控器。筆者已對目前市面上的彩電、影蝶機、錄像機、投影儀、空調器等產(chǎn)品的常見品牌進行過實驗,均實現(xiàn)了準確的接收和轉發(fā)。此外,只要在圖5所示電路前加一級編碼模塊(可用軟件實現(xiàn))作為發(fā)射單元;圖1所示電路加上波形測量軟件作接收單元,再加上相應的解碼控制軟件就可組成一個通用紅外收發(fā)控制系統(tǒng)或數(shù)據(jù)傳輸系統(tǒng),不需要再增加額外的硬件。
評論