吳慮 李建中 吳璇 萬川 鄧艷翔





摘要:為了解決某些特定場合復雜的燈光需求,設計了一個模擬燈光系統,用以模擬燈光的控制。本應用由STC89C52單片機,HS0038紅外接收模塊和紅外發射遙控器組成。通過NEC協議,可以使用紅外發射遙控器控制LED燈組的亮度及單個或整體LED燈的亮滅,此外還可以控制其流水燈顯示,用以模擬實際情況下復雜燈光的需求。經測試,結果滿足設計需求。
關鍵詞:STC89C52單片機,HS2238,NEC協議,模擬燈光控制,紅外控制
前 言
隨著科技的發展,人們對生活水平的要求也逐漸提高。在某些特定場合,包括家庭中的一些燈光的手動控制改為遙控控制;及某些娛樂場所,包括演唱會,演播廳燈對一些燈光要求較高的場合,目前仍然是由多人協作手動控制,這將大大增加不必要的人力消耗。因此,針對這些問題,提出了一個紅外控制的解決方案。將以模擬復雜燈光的方式對其進行分析解決,最后可由單人控制遙控器的方式對整個燈光進行控制。經測試,結果滿足最初的設想。
第1章 總體設計
硬件總體由STC80C52單片機作為主控芯片,由紅外發射遙控器發送控制信息,在由HS0038紅外接收模塊接收其信息脈沖之后,將其發送至單片機,單片機對其進行解碼后,通過解析其控制信息,從而對應的向LED燈組做出相應的操作。其總體設計圖如下圖1所示。
第2章 硬件設計
2.1最小電路設計
目前市面上可以完成目標需求的芯片大致有三類,分別是51單片機類、stm32單片機和樹莓派。其中51單片機的優點是實現簡單和價格便宜,但內置資源不足,適合于實現簡單且功能不算復雜的需求;Stm32單片機的優點是功能強大,性價比高。樹莓派的優點是功能及其強大,甚至可以跑LINUX系統,但價格過于昂貴。考慮到此次項目只是模擬實際的燈光控制,并不需要過高的配置。因此采用51單片機系列中的STC80C52單片機作為主要控制芯片。
2.2電源、串口、燒錄三合一模塊設計
考慮到如果將所有需要的接口功能都單獨提供一個實際接口,這對硬件來說是一個負擔,通過USB轉串口的方式,便能同時解決供電、通信及燒錄功能。市面上流行的USB轉串口芯片是CH340。其硬件圖如下圖2-1所示:
2.3紅外接收模塊
紅外接收設備可由紅外接收電路、 紅外解碼芯片、電源和應用電路組成。此次項目中,無需添加額外的解碼芯片,解碼功能由單片機完成,這樣將會減少成本。紅外接收功能則由HS0038完成。他將接收到的紅外脈沖發送單片機,然后由單片機進行解碼。其電路圖如下圖2-8所示。
第3章 軟件設計
3.1主程序設計
軟件開始時,首先對單片機進行初始化,包括有對定時器的初始化和設定中斷方式,開中斷等操作;當準備工作完成之后,就開始通過外部中斷的方式接收紅外信號,并將接收到的脈沖寬度信息保存至一個緩沖數組,然后通過解碼函數對脈沖信號進行解碼,然后通過解碼后的信號,判斷需要做出開關燈、調亮度等操作。
3.2NEC通信協議
在同一個遙控電路中通常要使用實現不同的遙控功能或區分不同的機器類型,這樣就要求信號按一定的編碼傳送,編碼則會由編碼芯片或電路完成。編碼后的數據格式包括了引導碼、用戶碼、數據碼和數據碼反碼,編碼總占 32 位。當使445KHZ的晶振時,其編碼脈沖如下圖3-4:
3.3中斷處理函數
程序接收紅外信號是采用中斷接收的方式,通過下降沿觸發。當遙控器按鍵按下后,單片機就會從外部中斷接收到其紅外脈沖,然后通過定時器判斷脈沖的時間,再將這個時間記錄下來。然后將33位數據脈沖保存至一個緩沖數組。后續可對這緩沖數組進行解碼操作。
3.4解碼函數
當紅外脈沖接收完成后,就可對其進行解碼。按照NEC格式,判斷各脈沖的時間長度,便可判斷其各位的0、1組成。其解碼函數流程圖如下圖3-7所示:
如上圖所示,外循環主要對四個字節的數據,包括用戶段和數據段進行操作,內環是對每個字節的八個位進行解碼操作。每位時間大于1390us的視為1,相反視為0.至此紅外解碼便能完成。
參考文獻
[1]李松嶺,楊昌福,李宇彤.基于80C52的水平測量儀系統的設計[J].科技傳播,2015,7(11):158+151
[2]謝琪林.淺談STC89S51單片機時序[J].電子測試,2020(24):139-140
[3]韓燕楚,余宏.基于51單片機的電子密碼鎖設計與應用研究[J].漯河職業技術學院學報,2020,19(06):21-23
河南科技大學 471000