單片機紅外遙控系統設計 摘要:本文設計了一種基于AT89S52單片機的紅外遙控系統,可用于控制多種電器的開關,交流電機的轉速及啟停等方面。闡述了發射部分和接收部分的設計原理和工作過程,介紹了一種紅外遙控解碼程序的實現方法,并用流程圖表示了程序的設計過程。 1 引言 紅外線波長遠小于無線電波的波長,所以紅外遙控不會干擾其他無線設備的工作;其次其無法穿透墻壁,故不同房間的家用電器可使用通用的遙控器而不會產生相互干擾;再次紅外線電路調試簡單,只要按給定電路連接無誤,一般不需任何調試即可投入工作,并且編解碼容易,可進行多路遙控;另外紅外遙控器作為控制系統的輸入設備,具有成本低、靈活方便的特點。紅外遙控的這些優點可為用戶提供方便的操控手段,因此該技術被廣泛應用于各種家電產品、娛樂設施、現代化儀器儀表和工業控制中,為現代家居和生產生活增添了一絲亮色。 單片機集CPU,RAM,ROM,I/O口、中斷和定時器于一體,具有體積小,重量輕,控制靈活方便,價格低廉等優點,廣泛應用于工業自動化、儀器儀表、家用電器、信息和通信產品以及軍事裝備等方面。采用單片機進行紅外遙控系統設計,具有編程靈活多樣,操作碼數可隨意設定等優點。單片機經過不斷地更新換代,其性能也在不斷的提升,其中ATMEL公司生產的閃速存儲器單片機芯片AT89S52是一種低功耗,高性能的CMOS8位微控制器,本設計以AT89S52單片機為核心,附以相應的外圍電路,構成基于單片機控制的紅外遙控系統。 2 系統硬件設計 本文所設計的紅外遙控系統分為兩個部分:即遙控發射部分和接收控制部分(整個系統原理框圖如圖1,圖2所示)。整個系統需要解決的關鍵問題是實現紅外信號的有效發射與接收,本設計將采用脈沖個數編碼,和單片機軟件解碼的方式來實現紅外遙控器對繼電器的開和關,從而控制電器設備。 file:///C:/Users/chang/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif 圖1: 遙控發射部分框圖 file:///C:/Users/chang/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif file:///C:/Users/chang/AppData/Local/Temp/msohtmlclip1/01/clip_image003.gif 圖2:接收控制部分電路 2.1遙控發射部分(其電路原理圖如圖3): 主要由AT89S52單片機、矩陣式操作鍵盤、紅外發射電路和電源部分組成。實現一旦有鍵按下,單片機進行鍵盤查詢,并由查詢的鍵號控制紅外發射管發射相應的脈沖。 2.1.1AT89S52單片機 遙控電路的核心控制芯片采用AT89S52單片機,它具備8KB可重編程Flash存儲器,1000次擦寫周期,32個可編程I/O口線,3個16位定時器/計數器,8個中斷源,看門狗定時器,2個數據指針,另外,AT89S52 可降至0Hz 靜態邏輯操作,支持2種軟件可選擇節電模式。空閑模式下,CPU停止工作,允許RAM、定時器/計數器、串口、中斷繼續工作。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。 2.1.2矩陣式鍵盤 file:///C:/Users/chang/AppData/Local/Temp/msohtmlclip1/01/clip_image005.jpg
矩陣式鍵盤即行列式鍵盤,用I/O線組成行、列結構,按鍵設置在行列的交電上,行列線分別連接到按鍵開關的兩圖3: 遙控發射部分的電路原理圖 端,按鍵中有無按鍵按下是由列線送入掃描字,行線讀入行線狀態來判斷的。本設計中的4*4矩陣鍵盤掃描時先 經4位輸出口向4位列線輸出低電平,然后再輸入4位行線的狀態,若行線狀態皆為高電平則表明無鍵按下,若行線狀態有低電平則表明有鍵被按下。 2.1.3紅外發射電路 遙控信息碼由單片機的定時器0調制成38KHZ的紅外線載波信號,由P3.4口輸出,經三極管9013放大后由紅外發射管發射出去。 2.2接收控制部分(電路原理圖如圖4): 主要由AT89S52單片機、紅外接收電路、數碼顯示電路、繼電器控制電路和電源電路組成。遙控器發射的信號經紅外接收處理傳遞給單片機,單片機根據不同的信息碼進行相應的繼電器的控制,并完成相應的現實功能。 2.2.1AT89S52單片機 AT89S52(2)單片機為控制核心,外加12MHZ的晶振。 2.2.2紅外接收電路 紅外光波不可見,峰值波長940nm左右,屬紅外波段。紅外接收管將接收到的紅外線光波轉換成電信號,黑色的樹脂封裝將700nm以下波長的光線濾除。紅外一體化接收頭是由紅外接收管和放大電路組成的,能夠接收脈沖編碼調制的紅外光信號,具有體積小,密封性好,靈敏度高,價格低廉等優點。本設計采用SM0038一體化接收頭,其解調頻率為38KHZ,當接收到38KHZ的紅外脈沖信號時輸出為低電平,反之輸出高電平。經其解調后的信號輸入單片機的中斷和串行接收口。通過單片機的中斷查詢可進行下一步操作。 2.2.3數碼顯示電路 為方便識別發射的按鍵號碼,以及顯示受控制的電路,在接收部分設置數碼顯示電路。顯示電路主要由顯示驅動器4511和數碼管LED組成。CD4511是7段譯碼器,與其它驅動器不同的是,它顯示數碼‘6’和‘9’時沒有拖尾現象,它所驅動對象是共陰極LED數碼管。CD4511的四個信號輸入端用單片機P1端口中的四位來實現。 2.2.4繼電器控制電路 繼電器控制電路可由單片機的P0和P2口輸出,一共可以有16個支路,即可以控制16個電器,而這16個支路的電路形式完全相同,在本次設計模型中,可選擇其中的一個或幾個支路來演示。以P2.1口為例,將其連接到繼電控制電路中三極管9012的基極,三極管的射極接繼電器,使整個控制部分接到交流電器中。當P2.1輸出低電平時,三極管導通,繼電器吸合,對應的電器設備電源接通,設備開啟工作;否則P0或P2口相應引腳輸出為高電平,三極管截止,繼電器斷開,對應的電器設備因斷電而不能工作。 file:///C:/Users/chang/AppData/Local/Temp/msohtmlclip1/01/clip_image007.jpg 圖4: 接收控制部分的電路原理圖 3 系統軟件設計 本設計的軟件分為發射部分和接收部分。 發射部分的工作原理為:系統上電初始化,進入主程序循環狀態。調用鍵盤掃描處理子程序,當無按鍵按下時,系統處于等待狀態;當有按鍵按下時,系統通過按鍵檢查子程序,檢查按鍵號并轉入相應的發射子程序。(鍵掃描程序流程圖如圖5) 在發射子程序中,利用定時器0將待發射信號調制成38KHZ的載波信號,經三極管放大后驅動紅外發射管,發射調制脈沖信號。發射信號采用脈沖個數編碼,不同的脈沖個數代表不同的編碼,最小為2個脈沖,其它信息碼的脈沖個數逐個遞增。為了使接收可靠,第一位碼寬為3ms,其余為1ms,碼間距為1ms,遙控碼數據幀間隔大于10ms。遙控器上每一個按鍵都有唯一的一個鍵號,CPU通過查詢得到的鍵值發射事先設定個數的脈沖。(紅外發射程序流程圖如圖6)
| | | | | | file:///C:/Users/chang/AppData/Local/Temp/msohtmlclip1/01/clip_image008.gif | | file:///C:/Users/chang/AppData/Local/Temp/msohtmlclip1/01/clip_image009.gif | |
圖5:鍵掃描程序流程圖
| | file:///C:/Users/chang/AppData/Local/Temp/msohtmlclip1/01/clip_image010.gif |
圖6:發射程序流程圖 接收部分工作原理為 :系統上電初始化后,對單片機的INT1口進行檢測,當其為高電平時,系統處于等待狀態;當其為低電平時,將啟動中斷服務程序。紅外接收器輸出脈沖幀數據時,第一位碼的下降沿觸發中斷程序,實時接收數據幀,并對第一位碼的碼寬進行驗證。若第一位的低電平碼的脈寬小于2ms,將作為錯誤幀處理。當間隔位的高電平脈沖寬大于3ms時,結束接收,然后根據累加器A中的脈沖數,在單片機P1.O—P1.3口輸出相應的二進制數據,經譯碼器的譯碼后驅動數碼顯示管顯示相應按鍵,同時P0或P2口的某一對應引腳輸出控制信號,使繼電器原有狀態發生改變,此時即完成一次數據的接收處理。 4 結束語 本設計采用紅外發射和接收的方式,保證了信號傳輸的可靠性,并且控制簡單、實施方便,成本低廉。通過接收發射端的控制信號,在接收部分實現了相應的控制。但是,由于受紅外線定向性和傳輸距離的限制,該系統只適應于短距離的遙控控制(10 m以內),而且操作時遙控器要有一定的角度,如果中間有墻、門窗等障礙物時,紅外線將無法穿透。如果采用調頻或調幅等發射接收編碼,可提高遙控距離,并且不受角度的影響。 注釋: 紅外編碼的格式多種多樣,本設計只是選取了其中的一種。 參考文獻: (1)李廣弟《單片機基礎》北京航空航天大學出版社 2001年第2版,2003年9月第6次印刷, P11-37,P200-203 (2)劉東漢《基于微處理器解碼多功能遙控系統的設計》<現代電子技術>2006年第8期,P27-29 (3)朱光忠《基于單片機的紅外遙控開關控制器》<計算機工程與設計>2006年第11期,P2097-2099
|