新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于單片機系統(tǒng)的紅外遙控器應用

基于單片機系統(tǒng)的紅外遙控器應用

作者: 時間:2012-03-30 來源:網(wǎng)絡 收藏

這里需要合理設置定時器的預分頻值,筆者多次實驗,得出較為合理的預分頻值為1∶8,定時器時間分辨率為8μs,最大定時時間為 (4×256+252)×8×1μs=10.2 ms,測量精度達到最高,誤差為32μs。通過對所得數(shù)據(jù)分析,得出的信號碼格式如圖4所示。

18.jpg

圖中“頭”(即引導脈沖):低8.84 ms,高4.40 ms。 “1”:低0.60 ms,高1.62 ms;“0”:0.60 ms低,0.50ms高;16 b識別碼:19D6H采用PIC16C72,最多可以檢測54 b的信號碼,足以滿足一般情況下的需求。

4 軟件解碼程序

在已知信號碼格式的條件下,可以通過軟件程序實現(xiàn)解碼。以筆者手中的為例,根據(jù)上面已測得的信號碼,采用PIC16C54,4 MHz晶振,提供一種軟件解碼的程序。

PIC16C54單片機是一款有著較高性能價格比的低檔單片機,最適合低價格、低功耗、小體積的設備。PIC16C54沒有中斷,程序采用軟件查詢法,查詢輸入引腳的電平變化,采用定時器定時,根據(jù)定時器的記錄值和已知的信號格式比較,判斷各部分接收是否正確以及分辨鍵碼并執(zhí)行相應的命令。

由于遙控器脈寬時間值是在一個小范圍內(nèi)波動,而且檢測過程中定時器也存在誤差。因此,對信號的識別不能采取精確比較法,本程序采用了區(qū)間比較法,即判斷定時器的記錄值是否在預先計算的區(qū)間內(nèi)。由88于引導脈沖和數(shù)據(jù)脈沖的時間相差很大,解碼時對定時器采用不同的預分頻,以盡量提高解碼的準確度?! ?p>①引導脈沖判斷:低8.84 ms,高4.40 ms,預分頻1∶64,理論計算得定時器值應為:低8AH,高44H。如實際所得低部分在85H和90H之間、高部分在40H和4AH之間,則認為引導脈沖接收正確。

②“0”,“1”判斷:數(shù)據(jù)脈沖流的低電平脈寬相同,忽略不判斷;高電平脈寬是判斷數(shù)據(jù)流每位是“0”還是“1”的依據(jù)。“0”對應高0.50 ms,“1”對應高1.62 ms,預分頻1∶8,理論計算得定時器值應為:“0”對應高3EH,“1”對應高0CAH。如所得“0”對應高在39H和42H之間、“1”對應高在 0C5H和0D0H之間則認為接收正確。

③判斷16 b識別碼是否和已知的識別碼(19D6H)相同。

④判斷8 b鍵碼是否與8 b鍵碼的反碼相對應。⑤根據(jù)鍵碼,選擇所應執(zhí)行的命令。

由于篇幅所限,僅給出判斷“0”部分程序:  

19.jpg

注意,在程序容易發(fā)生死循環(huán)或者出錯的地方,要檢驗定時器是否溢出。一旦發(fā)生溢出,要立即使程序復位,以便程序能夠在出錯之后返回到程序開始部分,增強的可靠性。以上設計思想可以在多種單片機上實現(xiàn)遙控器的解碼。讀者可自行嘗試中斷方法實現(xiàn)遙控器的信號解碼。

本文所介紹的遙控器接收發(fā)送原理及信號碼識別和解碼程序,可以方便地移植到其他,其方法簡潔靈活。此方法具有一般性,對于具體的應用,可自行變通。

參考文獻
[1]竇振中.PIC系列單片機原理和程序設計[M].北京:北京航空航天大學出版社,1998.

紅外遙控器相關文章:紅外遙控器原理

萬能遙控器相關文章:萬能遙控器代碼


晶振相關文章:晶振原理
脈沖點火器相關文章:脈沖點火器原理

上一頁 1 2 下一頁

評論


相關推薦

技術專區(qū)

關閉