引言
紅外遙控技術因其性能穩(wěn)定,、結構簡單,、技術成熟等優(yōu)點而在工業(yè)控制,、儀器儀表,、家電等領域中得到了廣泛的應用,。一般通常使用專用的配對編,、解碼芯片,,組成紅外發(fā)射和接收電路,完成對設備或電器的遠動控制,。圖1所示為按此方法進行紅外遙控的一般工作過程,。
使用專用的配對編、解碼芯片來組成紅外發(fā)射電路和紅外接收電路,,在控制路數較少時矛盾并不突出,。但是當控制路數較多時,其接口的設計和實現就顯得比較繁瑣,;此外因為編,、解碼芯片通常是專用配對使用的,即某種解碼芯片只能識別某種編碼芯片的編碼,,對其他型號的編碼芯片的編碼則不能識別,。因此,不同的編,、解碼芯片幾乎沒有互換性,。
本文提出了一種利用單片機實現紅外遙控的方法,即用某種編碼芯片組成的發(fā)射電路發(fā)射編碼,,而將紅外預接收電路預處理后的編碼信號直接送入單片機中進行解碼處理,。
1 工作原理
通常,紅外編碼芯片可發(fā)出不同脈寬的脈沖組成的脈沖序列,,最為常見的脈沖載波頻率有38和36kHz,其脈沖序列組成如圖2所示,。圖中,引導段和同步段對于相同的編碼芯片是相同的,,即9ms低電平和4.5ms高電平,;地址段為兩個字節(jié)數據,第二個字節(jié)是第一個字節(jié)的反碼,,針對不同的遙控器,,其編碼也不相同;數據段也是兩個字節(jié)組成,,第二個字節(jié)是第一個字節(jié)的反碼,,對于不同的按鍵,數據段會不相同,,按鍵的識別也正是根據數據段來判定,。
在對脈沖序列的解碼中,,最主要的就是對0和1的判定,以38kHz的載波頻率為例,,其0為0.56ms的低電平和0.56ms的高電平組成,,1為1.68ms的高電平和0.56ms的低電平組成。因而,,準確地定時在解碼中至關重要,,利用單片機的中斷系統(tǒng)和定時器可方便準確地實現這一功能。
2 實施方案
本設計采用由HOLTEK公司生產的212位編碼芯片HT12C和MCS51系列的8051單片機,。
提出了一種實現紅外遙控技術的方案,,即:
(1)由編碼電路根據按鍵發(fā)出不同的編碼,,由紅外接收電路接收,,經放大、整形,、反相后送入外部中斷0(INT0)引腳,。
(2)每輸入一個數位引起一次中斷,,在中斷處理程序中測量該數位的脈寬,。
(3)記錄代表該數位的TH0值,,存入數位暫存表中,。
(4)當存入一個完整的編碼以后,,用查表的方法找出代表0的TH0值,。
(5)用該數位的位置值作為特征值,,在散轉處理程序中找出相應的處理功能,。
2.1 硬件實施方案
根據編碼芯片HT12C的信號形式和8051單片機的中斷系統(tǒng)和定時器的工作原理,設計了利用8051單片機實現紅外遙控技術的硬件線路示意圖如圖3所示,。
2.2 編碼及解碼軟件設計
在MCS51系列單片機中,,其內置計數器T0,T1可以受門控位GAte的控制而進行定時計數。
當門控位GATE=1時,,T0或T1的計數受INT0(對T0)和INT1(對T1)控制,,即當TR0或TR1被置1,T0或T1被允許計數時,在INT0或INT1=0時T0或T1并不馬上開始工作,,僅當INT0或INT1狀態(tài)由低變高時T0或T1才開始計數[2],。利用T0和T1的這一特性即可實現對脈寬的計量,,本設計中正是通過將定時器0設置為受門控位控制的方法來測量脈寬,,采用了匯編語言來編制相應的實現接收編,、解碼程序,設計流程如圖4和圖5所示,。
3 結語
本文提出了一種用單片機直接對紅外遙控信號進行解碼的方案,,一方面,簡化了單片機系統(tǒng)的輸入接口電路,,只使用了P3口的一根位線,,因而節(jié)省了硬件的開銷;另一方面,,由于采用軟件解碼,,只要知道編碼的格式,就可作相應的處理,,很大程度上改善了編碼器和解碼器的互換性,,在使用和設計上增加了更大的靈活性。此外,,由于充分利用了單片機的內部資源,,使整個應用系統(tǒng)結構更為緊湊,從而降低了系統(tǒng)的設計和實施的成本,。