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