基于AT89C51單片機(jī)的LED彩燈控制器設(shè)計(jì)
關(guān)鍵詞:LED彩燈;AT89C51單片機(jī);彩燈控制器;模塊設(shè)計(jì)
1引言
隨著人們生活環(huán)境的不斷改善和美化,在許多場(chǎng)合可以看到彩色霓虹燈。LED彩燈由于其豐 富的燈光色彩,低廉的造價(jià)以及控制簡(jiǎn)單等特點(diǎn)而得到了廣泛的應(yīng)用,用 彩燈來(lái)裝飾街道和城市建筑物已經(jīng)成為一種時(shí)尚。但目前市場(chǎng)上各式樣的LED彩燈控制器大多數(shù)用全硬件電路實(shí)現(xiàn),電路結(jié)構(gòu)復(fù)雜、功能單一,這樣一旦制作成品只能按照固定的模式閃亮,不能根據(jù)不同場(chǎng)合、不同時(shí)間段的需要來(lái)調(diào)節(jié)亮燈時(shí)間、模式、閃爍頻率等動(dòng)態(tài) 參數(shù)。這種彩燈控制器結(jié)構(gòu)往往有芯片過(guò)多、電路復(fù)雜、功率損耗大等缺點(diǎn)。此外從功能效果上看,亮燈模式少而且樣式單調(diào),缺乏用戶(hù)可操作性,影響亮燈效果。因此有必要對(duì)現(xiàn)有的彩燈控制器進(jìn)行改進(jìn)。
本文提出了一種基于AT89C51單片機(jī)的彩燈控制方案,實(shí)現(xiàn)對(duì)LED彩燈的控制。本方案以AT89C51單片機(jī)作為主控核心,與鍵盤(pán)、顯示、驅(qū)動(dòng)等模塊組成核心主控制模塊。在主控模塊上設(shè)有8個(gè)按鍵和5位七段碼LED顯示器,根據(jù)用戶(hù)需要可以編寫(xiě)若干種亮燈模式,利用其內(nèi)部定時(shí)器T0實(shí)現(xiàn)一個(gè)基本單位時(shí)間為5 ms的定時(shí)中斷,根據(jù)各種亮燈時(shí)間的不同需要,在不同時(shí)刻輸出燈亮或燈滅的控制信號(hào),然后驅(qū)動(dòng)各種顏色的燈亮或滅。該新型LED彩燈及其控制器是上海某公司委托開(kāi)發(fā)產(chǎn)品,產(chǎn)品實(shí)際應(yīng)用效果較好,亮燈模式多,用戶(hù)可以根據(jù)不同場(chǎng)合和時(shí)間來(lái)調(diào)節(jié)亮燈頻率和亮燈時(shí)間。與普通LED彩燈相比,具有體積小、價(jià)格低、低能耗等優(yōu)點(diǎn)。?
2系統(tǒng)功能
新型LED彩燈分為2部分,即彩燈控制器(主控模塊)和管內(nèi)LED板模塊(受控模塊)。彩燈控制器可直接與220 V交流市電相連接,經(jīng)過(guò)開(kāi)關(guān)電源變換,輸出直流工作電壓,一方面為管內(nèi)LED模塊提供12 V工作電源,另一方面為主控模塊單片機(jī)系統(tǒng)(彩燈控制器)提供5 V工作電源。整個(gè)系統(tǒng)工作由軟件程序控制運(yùn)行,根據(jù)需要,用戶(hù)可以在LED彩燈工作時(shí)通過(guò)主控模塊上的按鍵來(lái)設(shè)定亮燈時(shí)間和燈光閃動(dòng)頻率。
上電后系統(tǒng)經(jīng)過(guò)初始化,查詢(xún)是否有功能切換鍵按下:有,則進(jìn)入用戶(hù)設(shè)定模式狀態(tài);無(wú),則進(jìn)入默認(rèn)缺省工作狀態(tài)。在用戶(hù)設(shè)定模式狀態(tài)下,用戶(hù)可以根據(jù)個(gè)人愛(ài)好及不同場(chǎng)合的需要來(lái)指定調(diào)用哪些模式,并且可以改變每種模式的時(shí)間Ti、頻率Fi參數(shù),如果用戶(hù)想進(jìn)入缺省狀態(tài)模式,只需按一下功能切換鍵即可跳入缺省模式,程序會(huì)自動(dòng)順序調(diào)用亮燈模式;在缺省工作狀態(tài)下,LED彩燈控制器按照程序設(shè)定好的若干亮燈花樣模式程序Model_i順序調(diào)用往下走,從第Model_1模式開(kāi)始工作,自Model_1到Model_2……到Mod el_n為一個(gè)亮燈周期,然后再回到Model_1循環(huán)繼續(xù)工作,同樣如果想進(jìn)入用戶(hù)設(shè)定模式狀態(tài),只需按下功能切換鍵即可。整個(gè)n種亮燈模式時(shí)間可以看作一個(gè)大周期T,其中的每一種花樣工作模式Model_i(i=1,2,…,n)時(shí)間為小周期Ti,對(duì)于每一個(gè)模式編寫(xiě)一個(gè)獨(dú)立工作子程序Model_i,其中設(shè)定了LED三色燈(紅、綠、藍(lán))的點(diǎn)亮?xí)r刻(RED_on,GREEN_on,BLUE_on)和熄滅時(shí)刻(RED_off,GREEN_off,BLU E_off),以及模式工作時(shí)間Ti以及該模式LED閃爍頻率Fi。5位七段碼顯示器的前2位(L1,L2)顯示當(dāng)前工作模式的序號(hào)Model_i;后3位(L3,L4,L5)七段碼 顯示三色LED的工作狀態(tài),若該顏色燈點(diǎn)亮則對(duì)應(yīng)七段碼顯示位為“1”,反之熄滅時(shí)則顯示位為“滅”即不顯示,對(duì)系統(tǒng)工作狀態(tài)起到了很好的實(shí)時(shí)監(jiān)控作用。
因此在LED彩燈上電工作后,用戶(hù)可以方便地通過(guò)主控模塊上的顯示器知道LED彩燈當(dāng)前工作模式Model_i,工作時(shí)間Ti,頻率Fi等實(shí)時(shí)參數(shù)。若實(shí)際應(yīng)用需要根據(jù)不同場(chǎng)合和時(shí)間來(lái)改變彩燈閃亮效果,用戶(hù)可以通過(guò)主控模塊上的按鍵來(lái)設(shè)定LED不同的閃爍頻率Fi和亮燈時(shí)間Ti,以便符合實(shí)際需要。此外如果用戶(hù)對(duì)某一種模式感興趣需要仔細(xì)觀(guān)看該種亮燈模式,可以通過(guò)鍵盤(pán)選定任意第Model_i模式使系統(tǒng)循環(huán)重復(fù)工作在該花樣模式下。?
3硬件設(shè)計(jì)
新型LED彩燈系統(tǒng)包括2大部分,即LED彩燈控制器(89C51主控模塊)和LED彩燈管(管內(nèi)LED板模塊)。前者是主控模塊,具有按鍵、顯示等功能,并利用89C51的P口輸出控制信號(hào);后者是受控模塊,上面焊有三色LED彩燈和信號(hào)驅(qū)動(dòng)芯片,模塊置于LED的透明燈管內(nèi)。
3.1主控模塊電路設(shè)計(jì)
主控模塊電路如圖1所示。主控模塊主要設(shè)計(jì)器件有89C51,5個(gè)七段碼LED顯示器,8個(gè)按鍵,2個(gè)穩(wěn)壓器(提供12 V,5 V電壓),1個(gè)信號(hào)輸出驅(qū)動(dòng)模塊芯片(MC4049)等。通過(guò)軟件設(shè)計(jì),使單片機(jī)P0口作為三色LED驅(qū)動(dòng)信號(hào)輸出口及移位時(shí)鐘CLOCK信號(hào),P3口為按鍵輸入口,P2口、P1口與5位七段碼LED相接作為顯示器的輸出口。
3.2管內(nèi)LED板模塊設(shè)計(jì)
管內(nèi)LED板模塊電路見(jiàn)圖2。管內(nèi)LED板模塊設(shè)計(jì)主要器件有LED彩燈(紅、綠、藍(lán))、移位觸發(fā)模塊芯片CD4076等。根據(jù)實(shí)際應(yīng)用彩燈長(zhǎng)度需要,可將不同數(shù)量的該管內(nèi)LED模塊實(shí)現(xiàn)級(jí)連,組成一個(gè)完整的LED彩燈??紤]到功率損耗,LED板模塊之間接口處用信號(hào)正向驅(qū)動(dòng)模塊芯片MC4049連接。每個(gè)LED板模塊上均勻分布3種顏色 LED燈,在實(shí)際制作PCB時(shí)采用紅、綠、藍(lán)3色互隔焊接方式,在電路板上把LED發(fā)光管按順序L1(紅)、L2(綠)、L3(藍(lán))、L4(紅)、L5(綠)、L6(藍(lán))……依次均勻焊在板上成一條直線(xiàn)。為了得到更多的花樣模式效果,可以使紅綠2種燈從前往后驅(qū)動(dòng)點(diǎn)亮閃爍,藍(lán)燈從后往前驅(qū)動(dòng)點(diǎn)亮閃爍,這樣具有很好的動(dòng)感視覺(jué)效果。
4軟件設(shè)計(jì)
新型LED彩燈控制器最大特點(diǎn)在于所有亮燈模式均由軟件控制完成。系統(tǒng)中軟件可以分為主程序和中斷服務(wù)子程序。上電后在缺省狀態(tài)以順序調(diào)用Model_i花樣亮燈模式流程為主程序,以一個(gè)單位時(shí)間5 ms的T0定時(shí)為中斷服務(wù)子程序。在這個(gè)5 ms的T0定時(shí)基礎(chǔ)上,可以根據(jù)需要來(lái)確定各種模式工作時(shí)間Ti,以及確定在各種亮燈模式Mode l_i內(nèi)點(diǎn)亮和熄滅各種顏色LED燈的時(shí)刻:Red_on,Red_off,Green_on,Green_off,Blue_on,blue_off以及Clock(移位翻轉(zhuǎn)脈沖)等。整個(gè)系統(tǒng)軟件由主程序( Main)、各個(gè)模式子程序(Model_i)、5 ms中斷服務(wù)子程序(T0 Interrupt)、鍵盤(pán)掃描處理子程序(Key Board)、顯示子程序(Display)等程序組成。利用T0定時(shí)器作為定時(shí)基本單位,根據(jù)模式需要計(jì)算好各控制信號(hào)的發(fā)生時(shí)刻,根據(jù)不同的模式Mo del_i可以設(shè)定不同的工作時(shí)間Ti和脈沖翻轉(zhuǎn)頻率Fi通過(guò)P0口輸出,使各色L ED燈的驅(qū)動(dòng)時(shí)刻與移位觸發(fā)的翻轉(zhuǎn)時(shí)刻步調(diào)一致,使LED彩燈按照設(shè)計(jì)的模式工作。
除了T0定時(shí)中斷之外,程序的大部份時(shí)間是在處理按鍵的查詢(xún)和LED顯示的延時(shí)。8個(gè)按鍵分別為:4個(gè)參數(shù)按鍵(Fi增、減按鍵,Ti增、減按鍵),3個(gè)模式改變按鍵(模式上翻UP、模式下翻DOWN、模式保持KEEP),1個(gè)功能切換按鍵。在每次的T0定時(shí)中斷服務(wù)子程序里,需要對(duì)各個(gè)時(shí)間寄存器和模式寄存器進(jìn)行加1或者清,為主程序查詢(xún)作準(zhǔn)備,同時(shí)查詢(xún)是否已中斷6次(30 ms),若30 ms到了,則對(duì)參數(shù)按鍵查詢(xún)一次,是否有時(shí)間Ti頻率Fi增減鍵按下并進(jìn)行相應(yīng)子程序處理。
主程序除了調(diào)用各種子模式子程序(Model_i),調(diào)用LED顯示子程序(Display)和延時(shí)子程序(Delay)之外,還一直保持查詢(xún)是否有功能切鍵按下以及是否有模式改變按鍵按下,一旦有功能切換鍵和模式改變鍵按下,就會(huì)進(jìn)入相應(yīng)的按鍵處理。? 主程序流程如圖3所示。亮燈模式子程序Model_i可以編寫(xiě)若干(n種),只要控制好各色燈觸發(fā)和熄滅時(shí)刻就可以組合成各種亮燈效果。Model_i程序流程如圖4所示。
下面以第一種模式工作為例。
5結(jié)語(yǔ)
與市面上大多數(shù)的LED彩燈相比,該種彩燈具有更好的燈光裝飾效果,性?xún)r(jià)比更高,與普通的全硬件LED彩燈相比具有更好的經(jīng)濟(jì)效益。應(yīng)用主控模塊輸出的控制信號(hào)去控制燈管內(nèi)的L ED板模塊工作,使得產(chǎn)品性能穩(wěn)定,便以安裝容易操作。由于控制程序存儲(chǔ)在89C51單片機(jī) 的電可擦除Flash閃存EPROM中,如果用戶(hù)需要更改系統(tǒng)的亮燈模式Model_i,無(wú)須改變系統(tǒng)硬件電路,只需修改其中程序即可,是一種很有發(fā)展前途的彩燈控制器。
參考文獻(xiàn)
[1]蔡美琴,張為民,沈新群等.MCS51系列單片機(jī)系統(tǒng)及其應(yīng)用[M].北京:高等教育出版社,1992.
[2]何立民.單片機(jī)應(yīng)用技術(shù)選篇(5)[M].北京:北京航空航天大學(xué)出版社,1997.
[3]楊光友.單片機(jī)微型計(jì)算機(jī)原理及接口技術(shù)[M].北京:中國(guó)水利水電出版社,2002
評(píng)論