版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 目 錄</b></p><p><b> 1 引言1</b></p><p> 2設(shè)計方案及原理1</p><p> 2.1 LED廣告燈設(shè)計原理1</p><p> 2.2 LED廣告燈設(shè)計方案1</p><p><b
2、> 3 硬件設(shè)計2</b></p><p><b> 4 軟件設(shè)計3</b></p><p> 4.1程序流程圖3</p><p><b> 4.2源程序4</b></p><p><b> 總結(jié)5</b></p><p
3、><b> 參考文獻(xiàn)5</b></p><p><b> 附錄6</b></p><p><b> 1 引言</b></p><p> 在21世紀(jì),隨著人們生活水平的不斷提高,環(huán)境的不斷改善和美化,在許多場合我們可以看到很多彩色的霓虹燈。特別是現(xiàn)在是一個充滿競爭的時代,各地政府為了吸
4、引游客和投資者,在城市的沿街、沿道、沿河、沿線等地用霓虹燈造景,實施"亮化工程",以美化環(huán)境、樹立城市形象,由此可見,LED燈的利用為城市的美化做出了突出的貢獻(xiàn)。 但是目前市場上各種式樣的LED彩燈多半是采用全硬件電路實現(xiàn),電路結(jié)構(gòu)復(fù)雜、功能單一,這樣一旦制成成品只能按照固定的模式閃亮,不能根據(jù)不同場合、不同時間段的需要來調(diào)節(jié)亮燈時間、模式、閃爍頻率等動態(tài)參數(shù)。同時這種彩燈控制器結(jié)構(gòu)往往有芯片
5、過多、電路復(fù)雜、功率損耗大等缺點。此外從功能上來看,亮燈模式少而且樣式單調(diào),缺乏用戶可操作性,影響亮燈效果。因此有必要對現(xiàn)有的彩燈控制器進(jìn)行改進(jìn)。 本設(shè)計提出了一種基于89C51單片機(jī)的廣告燈控制方案,以實現(xiàn)對LED彩燈的控制。本方案以89C51單片機(jī)作為控制核心,配合20盞LED彩燈,可以以不同頻率顯示不同的圖案,實際應(yīng)用效果較好,亮燈模式多,用戶可以根據(jù)不同場合和時間來調(diào)節(jié)亮燈頻率和亮燈時間。與普通LED彩燈相比,具有體積小
6、,價格低,控</p><p><b> 2設(shè)計方案及原理</b></p><p> 2.1 LED廣告燈設(shè)計原理</p><p> LED燈也就是發(fā)光二極管,根據(jù)我們在模擬電子技術(shù)中所學(xué)到的知識可知,當(dāng)給二極管的陽極接正電源正極,陰極接電源負(fù)極,只要電壓足夠大,大約超過管壓降( 0.7V),就可以點亮發(fā)光二極管,不同顏色的發(fā)光二極管就可
7、以使發(fā)光二極管發(fā)出相應(yīng)顏色的光,組合多個LED燈并且控制其高低電平就可以顯示不同的圖案。當(dāng)供電的電壓較高,電流較大時,我們就需要串聯(lián)大電阻進(jìn)行分壓,以防燒毀二極管。本文中設(shè)計的是利用20個LED燈,以顯示倒計時數(shù)字3、2、1以及各種變化多端的圖案。</p><p> 2.2 LED廣告燈設(shè)計方案</p><p> 本文設(shè)計的是根據(jù)不同的模式選擇開關(guān)狀態(tài)來顯示不同的圖案,在P0,P1輸
8、入00時即模式1,顯示3、2、1的倒計時;在P0,P1輸入01時即模式2,LED外圍先亮起,內(nèi)核后亮起;在P0,P1輸入10時即模式3,LED內(nèi)核先亮起,外圍后亮起;在P0,P1輸入11時即模式4,LED燈所有全亮后全滅。</p><p> 圖1是20個LED燈排列成的矩陣,共連接20個I/O口,各個燈所連接的I/0口如圖中分配。</p><p> 圖1 LED燈I/O口分配</
9、p><p> 為了在確定的時間點亮可以輸出確定的圖案,就需要在確定的時間給相應(yīng)的I/O口輸出高電平,以點亮相應(yīng)的燈顯示圖案,如在顯示數(shù)字3的時候需要輸出高電平的I/O口分別是P3.1、P3.2、P3.6、P1.2、P1.1、P1.6、P2.2、P2.1,就可以顯示數(shù)字3,顯示數(shù)字2、1時同理。在顯示每一個數(shù)字后都加了相應(yīng)的延時程序,其中延時程序是采用了空循環(huán)來進(jìn)行延時。點亮LED燈我們可以采用2種方式,第一種:單片
10、機(jī)的I/O口分別接各個LED燈的陽極,另一端共陰極接地,在主程序開始的時候,把I/O口初始化為低電平,而后當(dāng)程序使單片機(jī)I/O口輸出高電平的時候就可以點亮LED燈,當(dāng)我們想要點亮某一盞LED燈時給連在該I/0口的燈輸出即可。第二種是單片機(jī)的I/O口接各個LED燈的陰極,而LED的共陽極接+5V電源,在主程序開始的時候把I/O初始化為高電平,當(dāng)需要點亮某一盞LED燈時,就可以給相應(yīng)的連在該燈的I/O口地址送低電平0,就可以點亮相應(yīng)的LED
11、燈。</p><p><b> 3 硬件設(shè)計</b></p><p> 圖2是在PROTEUS中進(jìn)行硬件連線仿真電路概略圖,設(shè)計中應(yīng)用了單片機(jī)AT89C51,LED燈采用共陰極連線方式。</p><p> 圖2 廣告燈設(shè)計概略圖</p><p> 圖3是在PROTEUS中進(jìn)行硬件連線仿真電路,圖中采用總線連線方式
12、,SW3是總開關(guān),SW4是手動和自動選擇開關(guān),SW1和SW2是亮燈模式選擇開關(guān)。</p><p> 圖3 廣告燈在PROTEUS中的硬件連線圖</p><p> 在該硬件連線圖中,SW3是用來開啟或者停止LED顯示的選擇開關(guān),它通過P0.2來輸入單片機(jī)。SW1和SW2是用來選擇廣告燈LED顯示模式的選擇開關(guān),他們分別是通過P0.0和P0.1來輸入單片機(jī)的。D1~D7是用P3口的輸出來控
13、制,D12~D16是利用P1口來控制,D17~D20是利用P2口的P2.0、P2.1、P2.2、以及P2、P3輸出來進(jìn)行控制。圖中選擇的狀態(tài)是所有燈顯示開啟,模式選擇開關(guān)SW1和SW2是00狀態(tài),即選擇的是模式1,運(yùn)行的該電路,顯示的是3、2、1的倒數(shù)計時。</p><p><b> 4 軟件設(shè)計</b></p><p><b> 4.1程序流程圖<
14、;/b></p><p> 圖4是LED廣告燈設(shè)計的程序流程圖,在該程序中,首先判斷的是LED燈的開關(guān)位P0.2的狀態(tài),如果程序檢測到P0.2的值為1,則開始按照模式選擇開關(guān)所選擇的模式運(yùn)行程序,如果程序檢測到P0.2的值為0,關(guān)閉所有LED燈,并不斷檢測開關(guān)位P0.2的狀態(tài)。</p><p><b> 圖4 程序流程圖</b></p><
15、;p> 在軟件設(shè)計中,通過首先通過檢測P0.2的狀態(tài),決定是否進(jìn)入運(yùn)行模式,當(dāng)P0.2輸入為高電平時,進(jìn)入運(yùn)行模式,然后根據(jù)不同的P0.0和P0.1的狀態(tài)來選擇運(yùn)行不同的模式。</p><p><b> 4.2源程序</b></p><p><b> 源程序見附錄。</b></p><p><b>
16、 總結(jié)</b></p><p> 本設(shè)計是采用AT89C51單片機(jī),通過程序控制單片機(jī)的I/O口進(jìn)行輸出來點亮LED燈,然后對LED等進(jìn)行組合,利用20盞LED燈來顯示數(shù)字和圖案,外部加了模式選擇開關(guān)和總的LED顯示開關(guān)。在程序運(yùn)行中可以檢測模式選擇位以及LED顯示開關(guān)的狀態(tài),并對系統(tǒng)的輸出顯示加以控制,適合于經(jīng)常需要對LED顯示</p><p> 輸出顯示進(jìn)行改變的場合。
17、</p><p> 在本設(shè)計的過程中,我認(rèn)識到了當(dāng)軟件和硬件相結(jié)合的時候,并不僅僅是只是考慮軟件設(shè)計那么簡單,而是需要把硬件的輸出情況也加以考慮,才能得到正確的結(jié)果。在以后的學(xué)習(xí)生活中,我要加強(qiáng)動手能力的鍛煉,以更好的適應(yīng)社會。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 李華,王思明,張金敏.單片機(jī)原理及應(yīng)用[
18、M].蘭州:蘭州大學(xué)出版社,2003.</p><p> [2] 何欽銘,顏輝.C語言程序設(shè)計[M].北京:高等教育出版社,2010.</p><p><b> 附錄</b></p><p> #include <AT89X51.h></p><p> void delay(int ms)
19、 //延時子程序</p><p><b> {</b></p><p> int i1,j1;</p><p> for(i1=0;i1<ms;i1++)</p><p><b> {</b></p><p> for(j1=0;j1<1141;j
20、1++);</p><p><b> }</b></p><p><b> }</b></p><p> void natural() //讀取P0.0以及P0.1錯誤時調(diào)用的子程序</p><p><b> {</b></p>&
21、lt;p><b> P1=0X00;</b></p><p><b> P2=0X00;</b></p><p><b> P3=0Xff;</b></p><p><b> }</b></p><p> void mode1()</
22、p><p><b> {</b></p><p> P3=0X46; //顯示3</p><p><b> P1=0X46;</b></p><p><b> P2=0X06;</b></p><p> delay(150);
23、</p><p> P3=0X46; //顯示2</p><p><b> P1=0X26;</b></p><p><b> P2=0X06;</b></p><p> delay(150);</p><p> P3=0X64;
24、 //顯示1</p><p><b> P1=0X44;</b></p><p><b> P2=0X0E;</b></p><p> delay(100);</p><p><b> }</b></p><p> void mode2
25、()</p><p><b> {</b></p><p> P3=0X9F; //外圍亮起</p><p><b> P2=0X0F;</b></p><p> P1=0X99; </p><p> delay(100);
26、 //暫停即延時</p><p> P3=0x60; //內(nèi)核亮起</p><p><b> P1=0x66;</b></p><p><b> P2=0X00;</b></p><p> delay(100); //暫停即延時</p&
27、gt;<p><b> }</b></p><p> void mode3()</p><p><b> {</b></p><p><b> int n=0;</b></p><p> for(n=0;n<=10;n++)</p>
28、<p><b> {</b></p><p> P3=0x60; //內(nèi)核亮起</p><p><b> P1=0x66;</b></p><p><b> P2=0X00;</b></p><p> delay(100);</p&
29、gt;<p> P3=0X9F; //外圍亮起</p><p><b> P2=0X0F;</b></p><p><b> P1=0X99;</b></p><p> delay(100);</p><p><b> }</b><
30、;/p><p><b> }</b></p><p> void mode4()</p><p><b> {</b></p><p><b> int k=0;</b></p><p> for(k=0;k<=10;k++)</p&g
31、t;<p><b> {</b></p><p> P3=0XFF; //燈全亮</p><p><b> P1=0XFF;</b></p><p><b> P2=0XFF;</b></p><p><b> delay(
32、5);</b></p><p> P3=0X00; //燈全滅</p><p><b> P1=0X00;</b></p><p><b> P2=0X00;</b></p><p><b> }</b></p><
33、p><b> }</b></p><p> void read() //讀取P0.0以及P0.1口的狀態(tài)</p><p><b> {</b></p><p> if((P0_0==0)&&(P0_1==0))</p><p><b&g
34、t; {</b></p><p><b> mode1();</b></p><p> delay(10);</p><p><b> }</b></p><p> else if((P0_0==0)&&(P0_1==1))</p><p&g
35、t;<b> {</b></p><p><b> mode2();</b></p><p> delay(10);</p><p><b> }</b></p><p> else if((P0_0==1)&&(P0_1==0))</p>
36、<p><b> {</b></p><p><b> mode3();</b></p><p> delay(10);</p><p><b> }</b></p><p> else if((P0_0==1)&&(P0_1==1))&
37、lt;/p><p><b> {</b></p><p><b> mode4();</b></p><p> delay(10);</p><p><b> }</b></p><p><b> else</b></p
38、><p> natural();</p><p><b> }</b></p><p> void main()</p><p><b> {</b></p><p> if(P0_2==1) //判斷P0.2的狀態(tài)</p><
39、p><b> {</b></p><p> if(P0_3==0)</p><p><b> {</b></p><p><b> IE=0;</b></p><p><b> P1=0X00;</b></p><p&g
40、t;<b> P2=0X00;</b></p><p><b> P3=0X00;</b></p><p> delay(200); //調(diào)用延時子程序</p><p><b> read();</b></p><p><b> }&
41、lt;/b></p><p><b> else</b></p><p><b> {</b></p><p><b> mode1();</b></p><p><b> mode2();</b></p><p>&
42、lt;b> mode3();</b></p><p><b> mode4();</b></p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p>
43、<p><b> {</b></p><p><b> P1=0X00;</b></p><p><b> P2=0X00;</b></p><p><b> P3=0X00;</b></p><p><b> }<
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- led燈課程設(shè)計
- 單片機(jī)課程設(shè)計-led燈點陣課程設(shè)計
- 課程設(shè)計——led閃光燈實驗
- 課程設(shè)計報告---led燈及蜂鳴器
- 旋轉(zhuǎn)亮燈課程設(shè)計---led旋轉(zhuǎn)亮燈的設(shè)計與制作
- 單片機(jī)課程設(shè)計--8個led燈來回點亮
- 單片機(jī)課程設(shè)計--8個led燈來回點亮
- 模擬電子技術(shù)課程設(shè)計---聲控led閃光燈
- 單片機(jī)課程設(shè)計---led交通燈控制系統(tǒng)設(shè)計
- 閃爍燈課程設(shè)計
- 模電課程設(shè)計---帶led閃光燈的音響電路
- 課程設(shè)計---4x4矩陣鍵盤與led燈輸出設(shè)計
- led調(diào)光燈亮度自動控制系統(tǒng)課程設(shè)計
- 課程設(shè)計---4x4矩陣鍵盤與led燈輸出設(shè)計
- led課程設(shè)計報告
- 日光燈、調(diào)光燈課程設(shè)計
- led點陣課程設(shè)計
- led燈循環(huán)顯示速度的遙控器控制設(shè)計-課程設(shè)計論文
- 課程設(shè)計---4x4矩陣鍵盤與LED燈輸出設(shè)計.doc
- 交通燈課程設(shè)計
評論
0/150
提交評論