基于單片機(jī)系統(tǒng)的紅外遙控器應(yīng)用
這里需要合理設(shè)置定時(shí)器的預(yù)分頻值,筆者多次實(shí)驗(yàn),得出較為合理的預(yù)分頻值為1∶8,定時(shí)器時(shí)間分辨率為8μs,最大定時(shí)時(shí)間為 (4×256+252)×8×1μs=10.2 ms,測(cè)量精度達(dá)到最高,誤差為32μs。通過對(duì)所得數(shù)據(jù)分析,得出遙控器的信號(hào)碼格式如圖4所示。
圖中“頭”(即引導(dǎo)脈沖):低8.84 ms,高4.40 ms。 “1”:低0.60 ms,高1.62 ms;“0”:0.60 ms低,0.50ms高;16 b識(shí)別碼:19D6H采用PIC16C72單片機(jī),最多可以檢測(cè)54 b的信號(hào)碼,足以滿足一般情況下的需求。
4 軟件解碼應(yīng)用程序
在已知遙控器信號(hào)碼格式的條件下,可以通過單片機(jī)軟件程序?qū)崿F(xiàn)解碼。以筆者手中的遙控器為例,根據(jù)上面已測(cè)得的信號(hào)碼,采用PIC16C54單片機(jī),4 MHz晶振,提供一種軟件解碼的應(yīng)用程序。
PIC16C54單片機(jī)是一款有著較高性能價(jià)格比的低檔單片機(jī),最適合低價(jià)格、低功耗、小體積的設(shè)備。PIC16C54沒有中斷系統(tǒng),程序采用軟件查詢法,查詢輸入引腳的電平變化,采用定時(shí)器定時(shí),根據(jù)定時(shí)器的記錄值和已知的信號(hào)格式比較,判斷各部分接收是否正確以及分辨鍵碼并執(zhí)行相應(yīng)的命令。
由于遙控器脈寬時(shí)間值是在一個(gè)小范圍內(nèi)波動(dòng),而且檢測(cè)過程中定時(shí)器也存在誤差。因此,對(duì)信號(hào)的識(shí)別不能采取精確比較法,本程序采用了區(qū)間比較法,即判斷定時(shí)器的記錄值是否在預(yù)先計(jì)算的區(qū)間內(nèi)。由88于引導(dǎo)脈沖和數(shù)據(jù)脈沖的時(shí)間相差很大,解碼時(shí)對(duì)定時(shí)器采用不同的預(yù)分頻,以盡量提高解碼的準(zhǔn)確度?! ?p>①引導(dǎo)脈沖判斷:低8.84 ms,高4.40 ms,預(yù)分頻1∶64,理論計(jì)算得定時(shí)器值應(yīng)為:低8AH,高44H。如實(shí)際所得低部分在85H和90H之間、高部分在40H和4AH之間,則認(rèn)為引導(dǎo)脈沖接收正確。
②“0”,“1”判斷:數(shù)據(jù)脈沖流的低電平脈寬相同,忽略不判斷;高電平脈寬是判斷數(shù)據(jù)流每位是“0”還是“1”的依據(jù)。“0”對(duì)應(yīng)高0.50 ms,“1”對(duì)應(yīng)高1.62 ms,預(yù)分頻1∶8,理論計(jì)算得定時(shí)器值應(yīng)為:“0”對(duì)應(yīng)高3EH,“1”對(duì)應(yīng)高0CAH。如所得“0”對(duì)應(yīng)高在39H和42H之間、“1”對(duì)應(yīng)高在 0C5H和0D0H之間則認(rèn)為接收正確。
③判斷16 b識(shí)別碼是否和已知的識(shí)別碼(19D6H)相同。
④判斷8 b鍵碼是否與8 b鍵碼的反碼相對(duì)應(yīng)。⑤根據(jù)鍵碼,選擇所應(yīng)執(zhí)行的命令。
由于篇幅所限,僅給出判斷“0”部分程序:
注意,在程序容易發(fā)生死循環(huán)或者出錯(cuò)的地方,要檢驗(yàn)定時(shí)器是否溢出。一旦發(fā)生溢出,要立即使程序復(fù)位,以便程序能夠在出錯(cuò)之后返回到程序開始部分,增強(qiáng)系統(tǒng)的可靠性。基于以上設(shè)計(jì)思想可以在多種單片機(jī)上實(shí)現(xiàn)遙控器的解碼。讀者可自行嘗試應(yīng)用中斷方法實(shí)現(xiàn)遙控器的信號(hào)解碼。
本文所介紹的紅外遙控器接收發(fā)送原理及信號(hào)碼識(shí)別和解碼程序,可以方便地移植到其他系統(tǒng),其方法簡(jiǎn)潔靈活。此方法具有一般性,對(duì)于具體的應(yīng)用,可自行變通。
參考文獻(xiàn)
[1]竇振中.PIC系列單片機(jī)原理和程序設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,1998.
萬能遙控器相關(guān)文章:萬能遙控器代碼
晶振相關(guān)文章:晶振原理 脈沖點(diǎn)火器相關(guān)文章:脈沖點(diǎn)火器原理
評(píng)論