摘要:以單片機(jī)作為核心控制器的電子產(chǎn)品日益廣泛使用,它們的操作方式主要還是由外接的鍵盤來完成。若在此類產(chǎn)品中增加紅外遙控功能,將使它們的操作更加人性化。用單片機(jī)進(jìn)行軟件解碼最普遍的方法有查詢法和外部中斷法,在此詳細(xì)介紹一種用AT89S52單片機(jī)定時(shí)器T2捕獲功能實(shí)現(xiàn)接收解碼的新方法,給出了解碼的程序流程圖和相應(yīng)的子程序。實(shí)踐證明,該解碼方法占用單片機(jī)資源少,程序代碼運(yùn)行穩(wěn)定可靠,效率高。該解碼方法可為單片機(jī)產(chǎn)品開發(fā)者提供一個(gè)非常實(shí)用的參考,也可為學(xué)習(xí)者提供一個(gè)典型的應(yīng)用范例。
關(guān)鍵詞:AT89S52;紅外遙控;編碼;解碼
中圖分類號(hào):TN91134文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1004373X(2012)18001103
引言
紅外遙控器技術(shù)早已廣泛應(yīng)用于各類家用電器中,目前許多以單片機(jī)作為核心控制器的電氣設(shè)備和電子產(chǎn)品也逐漸采用該技術(shù),使用戶的操作更加靈活方便。用單片機(jī)進(jìn)行解碼最常用的方法有查詢法和外部中斷法。查詢法占用單片機(jī)CPU太多的運(yùn)行時(shí)間,效率低。外部中斷法則要占用單片機(jī)的一個(gè)外部中斷源和內(nèi)部的一個(gè)定時(shí)器,增加單片機(jī)的硬件資源開銷。在此介紹一種用AT89S52單片機(jī)定時(shí)器T2的捕獲功能進(jìn)行接收解碼的新方法,該方法僅使用單片機(jī)內(nèi)部的一個(gè)定時(shí)器便能可靠地解出遙控器的代碼。
1紅外遙控發(fā)射器的編碼格式
紅外遙控發(fā)射器使用的芯片種類繁多,其編碼的格式也不盡相同?,F(xiàn)以TC9012芯片組成的彩色電視機(jī)遙控發(fā)射器為例,說明其輸出編碼格式。當(dāng)該遙控發(fā)射器的某個(gè)按鍵按下時(shí),按鍵的編碼信息便以脈沖串的形式從遙控發(fā)射器送出,送出的編碼脈沖串組成如圖1所示。由圖可見,它由1位引導(dǎo)碼、2個(gè)字節(jié)都相同的系統(tǒng)碼、1個(gè)字節(jié)的數(shù)據(jù)碼和1個(gè)字節(jié)的數(shù)據(jù)反碼組成。引導(dǎo)碼由4.5ms的高電平和4.5ms的低電平組成,系統(tǒng)碼和數(shù)據(jù)碼及數(shù)據(jù)反碼采用脈沖寬度調(diào)制方式,數(shù)據(jù)碼“0”的編碼用0.56ms的高電平和0.56ms的低電平表示,數(shù)據(jù)碼“1”的編碼用0.56ms的高電平和1.68ms低電平表示,其波形如圖2所示。
2紅外遙控器的接收解碼電路
以單片機(jī)構(gòu)成的紅外遙控器接收解碼電路如圖3所示,一體化紅外接收頭PC838的數(shù)據(jù)輸出端連接至單片機(jī)AT89S52芯片的P1.1/T2EX端,當(dāng)PC838沒有接收到紅外遙控信號(hào)時(shí),輸出端OUT保持高電平。當(dāng)它接收到紅外遙控信號(hào)時(shí),輸出端OUT從高電平變低電平。8位共陽數(shù)碼管和一片74HC595構(gòu)成顯示電路。