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