摘要:在生活中,大家都見過晚上五彩繽紛的彩燈,它們會變換著不同的花樣,發(fā)出不同顏色的光,特別是在晚上,不只美觀并且還具有照明的功能。本次設(shè)計介紹的是由單片機控制的簡易彩燈,它可以實現(xiàn)四種不同的彩燈變換模式,此設(shè)計也可以利用按鍵改變彩燈亮的模式和閃爍的頻率,并且由數(shù)碼管來顯示出與彩燈相對應(yīng)的模式,這樣的設(shè)計可以使彩燈以多種多樣的方式來變換。
本設(shè)計的核心內(nèi)容包括硬件電路的設(shè)計及對應(yīng)的程序代碼分析和流程框圖。硬件電路的設(shè)計需要利用到專業(yè)的繪圖軟件,其主要的組成電路有5種,分別是電源電路和最小單片機系統(tǒng)、按鍵電路以及LED彩燈和數(shù)碼管顯示電路,其中,數(shù)碼管和LED彩燈以及按鍵控制電路需要和單片機的引腳連接在一起,然后彩燈就可以呈現(xiàn)出不同的樣式,而且彩燈的亮滅方式和頻率也可以由按鍵來控制。軟件程序設(shè)計是用C語言來編寫,程序編寫完后須通過程序編譯軟件來檢查是否有錯誤出現(xiàn),最后通過軟硬件的綜合調(diào)試,檢測本次設(shè)計是否已經(jīng)達到了預期的要求。
關(guān)鍵詞:LED彩燈;STC89C52;數(shù)碼管;排阻;獨立按鍵
1緒論
1.1 課題的發(fā)展趨勢
目前,特別是在一個城市的中心,一般為了打造更好的氣氛,夜晚會一直有彩燈照射在城市的許多黑暗的角落,于是彩燈便順其而然跟隨著城市和科技的發(fā)展而不斷取得進步。簡而言之,彩燈是一種不僅具有觀賞效果的裝飾物,同時也具有點亮夜空的功能,讓整個城市彌漫在五彩繽紛的燈光中。由于本次設(shè)計需要利用到單片機,結(jié)合自己所學的知識和掌握的情況以及單片機的發(fā)展趨勢,于是我決定采用的單片機是STC89C52,并由此展開具體的設(shè)計。
1.2 STC89C52芯片介紹
單片機由硅半導體制成的一個較小的芯片,它把計算機系統(tǒng)集成在了上面,因此可將它看作一臺小型的計算機[2-3]。雖然外表不強大,但是卻具有許多的功能,最初它是被應(yīng)用于工業(yè)領(lǐng)域,現(xiàn)如今測控領(lǐng)域也正在運用了。因此,只要學習并掌握了計算機的原理與結(jié)構(gòu),一般就能較好地掌握單片機的功能了。
STC89C52的內(nèi)部結(jié)構(gòu)
(1)時鐘電路
通常來說,時鐘信號是STC89C52單片機能正常運作的基礎(chǔ),而由于硬件電路不同,通常分為外部和內(nèi)部兩種時鐘方式。
(2)復位電路
單片機要想初始化,就必須得進行復位,而復位引腳要接高電平才有效。一般的復位電路方式有兩種,即按鍵復位和上電復位
1.3 數(shù)碼管工作原理
在單片機中,數(shù)碼管是經(jīng)常被使用的模塊,它與LED燈一樣,一般也是由發(fā)光二極管構(gòu)成的,本次設(shè)計所用數(shù)碼管的結(jié)構(gòu)是常用“8”字型的,總共有8段,是由7段發(fā)光二極管和一個小數(shù)點構(gòu)成的。
本設(shè)計的簡易彩燈控制電路是由幾個小模塊所構(gòu)成的,硬件電路主要是圍繞STC89C52芯片來進行設(shè)計,通過將單片機芯片與時鐘電路和復位電路、LED彩燈和數(shù)碼管顯示電路以及按鍵電路組合在一起,就實現(xiàn)整體的電路設(shè)計,然后在直流穩(wěn)壓電源的作用下,實現(xiàn)彩燈循環(huán)亮滅的控制模式
1.4 LED彩燈顯示電路
發(fā)光二極管能夠?qū)崿F(xiàn)單向?qū)ǎ涔ぷ麟娏骱苄?。在這次設(shè)計中,由于提供的穩(wěn)壓電源為5V,因此選用的排阻為330歐姆是比較合適的。
1.5 數(shù)碼管顯示電路
本次選用的數(shù)碼管顯示模塊采用的“8”字型共陽極的,此模塊連接的是單片機P1端口,由于它是共陽極的,兩個公共端接的是正電壓,所以只有當P1口的某個引腳輸出為低電平時,對應(yīng)的某段二極管才會被驅(qū)動。由于此次只需要顯示數(shù)字,所以小數(shù)點DP(引腳6)是懸空的。
2 軟件設(shè)計
本次設(shè)計的簡易彩燈控制系統(tǒng)不僅需要硬件電路原理圖,因為若只利用電路圖并不能看到所設(shè)計的彩燈亮滅的情況,因此還需要用到軟件進行程序編譯,這次程序代碼的編寫運用的是比較基礎(chǔ)的C語言,通過編程來控制芯片引腳的電平變化,從而讓LED彩燈以不同的亮滅形式呈現(xiàn)。
2.1 LED彩燈顯示程序
花樣程序:上電時默認顯示彩燈模式一,數(shù)碼管同時顯示數(shù)字“1”,可以實現(xiàn)彩燈全亮全滅交替變化,LED彩燈是共陽極的,所以與使用的數(shù)碼管一樣,也是接低電平有效。當16個彩燈全亮,其LED彩燈對應(yīng)的P0口、P2口的電平狀態(tài)都為“00000000”,即0X00;當16個彩燈全滅,對應(yīng)P0口、P2口的電平都在剛才的基礎(chǔ)上取反就行了,即把低電平“0”都改為高電平“1”,即0XFF。具體程序如下所示。
P0=0XFF;P2=0XFF;
for(i = 0; i < z; i++);//延時
P0=0X00;P2=0X00;
for(i = 0; i < z; i++);//延時
2.2 按鍵掃描程序
按鍵S1用key1表示,是連接在單片機的P3.6/WR上,按鍵S2用key2表示,是接在單片機的P3.7/RD上,這兩個按鍵也是低電平驅(qū)動,此外還需要通過編寫延時程序來進行按鍵的抖動消除,具體程序如下所示。
if(key1==0).//條件成立時,表示按鍵S1按下
{ for(i = 0; i < 300; i++);//通過此延時程序來進行按鍵消抖處理
if(key1==0)//再次檢測,若條件成立,則表示S1按下
{ flag1=flag1+1;
if(flag1>=5) {flag1=1;}
//按一次按鍵S1,flag1加一,超過四次flag1變?yōu)?
while(!key1);//一直循環(huán)執(zhí)行
}
}
if(key2==0)//條件成立,表示按鍵S2被按下
{ for(i = 0; i < 300; i++);//通過此延時程序來進行按鍵消抖處理
if(key2==0)//若消抖后條件仍然成立,則按鍵S2的確已被按下
{ flag2=flag2+1;
if(flag2>=4) {flag2=1;}
//按一次按鍵S2,flag2加一 ,超過三次變1
while(!key2);
}
}
3 結(jié)論
本系統(tǒng)由于是燒錄程序進單片機中,所以我們完全可以根據(jù)自己的意愿修改程序,讓LED燈能夠?qū)崿F(xiàn)更多的亮滅模式以及多種閃爍樣式,讓人一看到就對它產(chǎn)生一種驚奇感。雖然本次設(shè)計所用的器件非常少,占用空間不大,電路原理圖比較容易繪制,并且操作相當簡單,達到了實驗目的。
參考文獻:
[1]劉青. 中國民間彩燈藝術(shù)資源的保護與傳承[J]. 美與時代(上), 2009(6):113-115.
[2]徐梅.幾種單片機簡介[J]. 高校實驗室工作研究,2005(2):63-64.
[3]李森, 趙繼聰, 侯攀峰. 單片機簡單介紹及應(yīng)用淺析[J]. 中國科技縱橫,2010(15):67-67.
[4]佚名. 關(guān)于STC89C52[J]. 電子質(zhì)量, 2016(2):34-34.
作者簡介:程帥(1994-)男,河南省濮陽市,成都理工大學信息科學與技術(shù)學院在讀研究生,電子與通信工程專業(yè)