于明軍
(赤峰學院 物理與電子信息工程學院,內蒙古 赤峰 024000)
基于單片機的紅外遙控編碼器的設計
于明軍
(赤峰學院 物理與電子信息工程學院,內蒙古 赤峰 024000)
本文設計并實現了一種基于STC89C58RD+單片機的紅外遙控編碼器,運用模塊化的設計方法來設計遙控器的硬件系統和軟件系統.通過Keil軟件和仿真軟件Proteus進行了聯合仿真調試,最后焊接出紅外遙控編碼器實物,并給出了仿真和實驗結果.
紅外遙控;單片機;proteus仿真
紅外線遙控技術的應用不僅極大的方便了人們的日常生活,使人們的生活更容易更舒適,而且在工業設備中像高壓、輻射、有毒氣體、粉塵等環境下,采用紅外線遙控不僅完全可以完成過去所能完成的操作而且還能有效地隔離電氣干擾.遙控器的實現手段有很多種,目前市面上的遙控器絕大多數都是采用專用遙控芯片.例如:6121/2、9012、3010、50462.但有些遙控器碼型比較特殊,專用遙控芯片無法實現,而遙控器的用量又不大,做掩膜費用又太高,因此在這個領域利用單片機來實現具有很大的優勢.另外采用單片機進行紅外遙控系統的應用設計具有硬件接口簡單方便,編程靈活多樣,操作碼隨意設定等優點.
本紅外遙控編碼器是以STC89C58RD+單片機作為主控芯片,協同外加紅外發射電路來模擬電視遙控器的發射信號,來控制兩種不同品牌電視機的上、下換臺、音量增大和減小.
紅外遙控器的發射原理如圖1所示:

圖1 紅外遙控器的發射原理
目前常見的紅外編碼協議有RC5編碼、SONY編碼、NEC編碼和RECS80編碼,本紅外遙控編碼器就采用日常運用比較廣泛和編解碼比較容易的NEC編碼來加以說明.當遙控編碼器按下不同的鍵時即有遙控碼發出,所按的鍵不同,其編碼也不同.這種編碼方式為:
采用脈寬調制的串行碼,以脈寬為0.56ms、間隔0.565ms、周期為1.125ms的組合表示二進制的“0”;以脈寬為0.56ms、間隔1.69ms、周期為2.25ms的組合表示二進制的“1”,其圖示如圖2所示:

圖2 位0和位1圖
NEC編碼是連續的32位二進制碼組,其中前16位為用戶識別碼,能區別不同的電器設備,防止不同機種遙控碼互相干擾.后16位為8位操作碼(功能碼)及其反碼.其原理圖如圖3所示:

圖3 紅外遙控器的發射碼圖
把上述“0”和“1”組成的32位二進制碼調制到38kHz的高頻載波上的原理是將32位碼中0和1的高電平調制到以1/38KHz為周期的矩形脈沖上,低電平保持不變.經過調制的發射碼然后再通過紅外發射二極管產生紅外線向空間發射.其原理如圖4所示:

圖4 數字0和1的38KHz調制波形原理圖
系統硬件電路如圖5所示:

圖5 系統硬件電路組成原理圖
本紅外遙控編碼器由單片機、12Mz晶振模塊、按鍵電平復位電路、獨立按鍵、LED燈、按鍵和紅外發射電路組成.其中單片機是本遙控器的處理核心部件,通過單片機來實現它們的功能.12Mz晶振模塊使單片機內部的時鐘接在單片機的XTAL1和XTAL2口上.按鍵電平復位模塊是單片機在開機和運行編碼程序出現錯誤的時候用以復位操作.獨立按鍵是本遙控器的用戶接口,通過按下不同的鍵,單片機讀取其相應的鍵值,然后完成相應的處理操作.LED用于指示兩種不同編碼的工作狀態.
軟件設計包括4個部分:主函數、鍵掃描子程序、發射子程序和中斷程序;主程序通過調用鍵掃描和發射子程序來實現不同紅外編碼發射.鍵掃描程序用于正確檢測和掃描鍵值,發射子程序通過獲得的鍵值執行不同的編碼發射,中斷程序用于發送碼型的38KHz調制.

圖6 主程序流程圖

圖7 發射電路流程圖

圖8 按鍵掃描流程圖

圖9 T0中斷流程圖

圖10 Proteus仿真圖
圖10 是紅外遙控器通過Proteus進行功能仿真的仿真圖,圖形顯示的是一個完整的32位波形編碼,從左往右依次是9ms的起始碼(圖中較寬的高電平)、4.5ms的結束碼(圖中較寬的低電平)、16位機器碼1C61H、數據碼ACH和數據反碼53H.由于發射是從低位到高位依次單字節發射,故 1CH (00011100D)的發送 形式 是 00111000D,61H(01100001D)的發送形式是10000110D,ACH(10101100D)的發送形式是00110101D,53H(01010011D)的發送形式是11001010D.

圖11 實驗波形圖
依照設計制作了實際電路,并通過數字示波器觀察了發射波形,圖11所示.該圖形顯示的碼型、數據與Proteus仿真結果的碼型、數據完全一致,表明實驗電路正確.
通過仿真和實際測量,表明該編碼器能夠正常運行,準確控制,滿足設計要求.通過單片機設計紅外遙控系統發揮了軟件的優點,簡化了電路,降低了成本,提高了可靠性,且易于維護,功能可擴展性好,尤其適用于編碼器碼型比較特殊,保密性要求較高的場合.
〔1〕羅冬,趙海剛,張源,盧超.基于單片機的紅外遙控定時開關裝置的設計[J].機電工程技術,2010(3).
〔2〕李楠,鄭建立.基于單片機的紅外遙控自學習系統的設計[J].自動化與儀器儀表,2008(6).
〔3〕李寶營,趙永生,祁建廣.基于單片機的紅外遙控系統設計[J].機電工程技術,2008(12).
〔4〕李芳,高煥芝,賀秀玲,劉慶杰.紅外遙控密碼鎖的設計與實現[J].微計算機信息,2008(5).
〔5〕張仁儉.基于89C2051單片機的紅外遙控裝置及應用[J].航天制造技術,2005(3).
TP872
A
1673-260X(2011)11-0028-02