學習型紅外遙控裝置的研究與設計
4 系統(tǒng)軟件設計
4.1 初始化程序
初始化程序的任務是清除存儲脈寬數(shù)據(jù)單元、關閉學習及發(fā)射指示燈,關閉遙控輸出口,設置相應定時器模式,設置中斷等。
4.2 遙控碼讀入程序
遙控碼的學習處理程序主要是:將原控制器發(fā)送的脈沖依次存人存儲單元。其偶數(shù)地址單元存儲高電平脈寬數(shù)據(jù),奇數(shù)地址單元存儲低電平脈寬數(shù)據(jù)。數(shù)據(jù)均存入外存儲器24LC16中。
讀遙控碼讀人程序,通過大量、不同類型的遙控碼波形實驗測試分析,遙控碼的幀間歇位寬均大于10 ms,起始位碼寬為100μs~20 ms,編碼位為100μs~3.5 ms。為確保大部分遙控器學習成功,采用方法:
(1)讀起始位法 由于起始位的碼寬范圍較大,因此技術單元采用單獨的2字節(jié),計數(shù)周期約15μs,按65 535×15μs計算,最大存儲起始位脈寬為983 ms。當輸入為高電平時,停止起始位計數(shù),進入高電平計數(shù)。
(2)讀遙控碼法 采用1字節(jié)計數(shù)單元計數(shù)碼寬(高電平或低電平),當電平跳變時計數(shù)結束,將數(shù)據(jù)存儲到規(guī)定地址。在高電平碼汁數(shù)時,當計數(shù)器值大于255(碼寬大于3.825ms),則為結束幀間隔位,在相應存儲單元寫入數(shù)據(jù)0x00作為結束標志。其程序流程如圖4所示。
4.3 遙控碼發(fā)射程序
遙控碼發(fā)射程序是將原存于存儲單元的脈沖數(shù)據(jù)通過38 kHz方波調(diào)制,將存儲的原始控制碼和載波相與,即可發(fā)送遙控脈沖碼。其程序流程如圖5所示。
4.4 主程序
系統(tǒng)主程序在完成上電初始化后,端口按鍵查詢。當確認有按鍵按下時,從外部存儲器中調(diào)用相應的遙控編碼將其發(fā)出。主程序流程如圖6所示。
5 結語
實驗證明,該學習型紅外系統(tǒng)完全滿足實驗需要。在學習遙控信號時,綜合分析了大量紅外遙控碼,具有一定的通用性。遙控碼發(fā)射時不是采用硬件設計而是以軟件方式產(chǎn)生載波,這樣節(jié)約了硬件設備,簡化了電路,有效實現(xiàn)紅外遙控信號的接收和發(fā)射。此學習型紅外遙控器已成功應用于多媒體教室、智能家居、家庭集中控制器等遙控設備,獲得了滿意效果。當然,由于目前遙控器信號尚未完全統(tǒng)一標準,利用紅外學習技術并不能保證學習到所有電器設備的遙控器信號,這也是學習型紅外今后的需要改進的方向。
紅外遙控器相關文章:紅外遙控器原理
評論