版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 通信工程專業(yè)畢業(yè)設(shè)計</p><p> 課題題目: 彩燈控制設(shè)計 </p><p> 姓 名: </p><p> 學(xué) 號: </p><p> 年級專業(yè):
2、 2014級信息通信 </p><p> 學(xué) 期: </p><p><b> 一、方案論證1</b></p><p><b> ?。ㄒ唬┓桨副容^1</b></p><p> (二)總體設(shè)計方案2</p>
3、<p> 二、硬件電路設(shè)計2</p><p> ?。ㄒ唬﹩螜C(jī)片最小系統(tǒng)2</p><p> ?。ǘ┌存I控制電路3</p><p><b> ?。ㄈ┲袛嚯娐?</b></p><p> ?。ㄋ模?LED顯示電路4</p><p><b> ?。ㄎ澹┛傮w電路5
4、</b></p><p> ?。﹩螜C(jī)片的介紹6</p><p><b> 三、軟件設(shè)計8</b></p><p> ?。ㄒ唬┸浖O(shè)計思路8</p><p> ?。ǘ┸浖O(shè)計流程9</p><p><b> ?。ㄈ┸浖绦?</b></p&
5、gt;<p><b> 四、結(jié)論16</b></p><p><b> 參考文獻(xiàn):16</b></p><p><b> 摘要: </b></p><p> 本文介紹了一種由16個LED發(fā)光二極管組成多功能發(fā)光形式的簡易彩燈控制系統(tǒng)的軟硬件設(shè)計過程,方案以AT89C51單片
6、機(jī)作為主控核心, 且以復(fù)位電路、時鐘電路、按鍵電路、中斷電路以及彩燈顯示電路組成,利用軟件編程燒錄程序到單片機(jī)來實(shí)現(xiàn)對LED彩燈進(jìn)行多樣控制。該控制電路能完成多種閃燈模式以及隨意變換想要的閃爍方式和控制彩燈的閃爍頻率等功能。該系統(tǒng)具有電路結(jié)構(gòu)簡單、易操作、硬件少、體積少、成本低、能耗低等優(yōu)點(diǎn),有一定的實(shí)用價值。</p><p> 關(guān)鍵詞:8051單片機(jī);LED彩燈;控制系統(tǒng);閃爍方式</p>&l
7、t;p><b> 一、方案論證</b></p><p><b> ?。ㄒ唬┓桨副容^</b></p><p><b> 方案一:</b></p><p> 可用555產(chǎn)生脈沖加到計數(shù)器來完成,試驗(yàn)原理框圖如下:</p><p><b> 方案二:</
8、b></p><p> 也可用兩非門與電阻與電容構(gòu)成多諧振蕩器加到計數(shù)器來完成。框圖如下:</p><p><b> 方案三:</b></p><p> 通過單片機(jī)控制二極管的閃爍,通過中斷來改變模式同時串行輸出數(shù)碼管。P0,P1口接16個二極管,P3口接擴(kuò)展板的數(shù)碼顯示接口。</p><p> 該方案簡單
9、,易于設(shè)計和控制,所以選擇法案三。</p><p><b> ?。ǘ┛傮w設(shè)計方案</b></p><p> 設(shè)計思路: 本方案這要是通過對基于單片機(jī)的多控制、多閃爍方式的LED彩燈循環(huán)系統(tǒng)的設(shè)計,來達(dá)到本設(shè)計的要求。本課題設(shè)計的總體框圖如下圖1-2所示</p><p> 圖1-2 系統(tǒng)總體設(shè)計框圖</p><p>
10、<b> 系統(tǒng)設(shè)計如下:</b></p><p> 此設(shè)計方案中單片機(jī)的P1口接4路按鍵控制電路,實(shí)現(xiàn)彩燈閃爍方式的切換功能;單片機(jī)的P3.3引腳接上一個按鍵開關(guān)以實(shí)現(xiàn)對彩燈中斷的控制;單片機(jī)上的P0和P2口接16路LED發(fā)光二極管組成彩燈顯示電路,實(shí)現(xiàn)多種形式的閃爍功能。</p><p><b> 二、硬件電路設(shè)計</b></p&g
11、t;<p> ?。ㄒ唬﹩螜C(jī)片最小系統(tǒng)</p><p> 要使單片機(jī)工作起來,最基本的電路構(gòu)成由單片機(jī)、時鐘電路、復(fù)位電路等組成。單片機(jī)最小系統(tǒng)由復(fù)位電路和時鐘信號電路組成(如圖2-1)。</p><p> 復(fù)位電路:確定單片機(jī)工作的起始狀態(tài),完成單片機(jī)的啟動過程。單片機(jī)系統(tǒng)的復(fù)位方式有上電自動復(fù)位和手動按鍵復(fù)位。本設(shè)計采用上電自動復(fù)位。</p><p&
12、gt; 單片機(jī)最小系統(tǒng)還有一塊模塊叫時鐘電路。時鐘電路由一個晶振和兩個小電容組成,用來產(chǎn)生時鐘頻率。AT89C51單片機(jī)芯片內(nèi)部有一個反向放大器構(gòu)成的振蕩器,XTAL1和XTAL2分別為振蕩器電路的輸入端和輸出端,時鐘可由內(nèi)部和外部生成,在XTAL1和XTAL2引腳上外接定時元件,內(nèi)部振蕩電路就會產(chǎn)生自激振蕩。系統(tǒng)采用的定時元件為石英晶體和電容組成的并聯(lián)諧振回路。晶振頻率選擇12MHz,電容值取30PF,電容的大小頻率起微調(diào)的作用。&
13、lt;/p><p> 圖2-1 單片機(jī)最小系統(tǒng)圖</p><p><b> ?。ǘ┌存I控制電路</b></p><p> 按鍵控制電路(如圖2-2)是由4個按鍵開關(guān)構(gòu)成的。他們分別接在單片機(jī)AT89C51的P1.0~P1.3引腳上,為了一對一方式控制16個LED彩燈的不同閃爍形式。當(dāng)按下開關(guān)key1時,16個LED發(fā)光二極管閃爍第一種彩燈方式
14、;當(dāng)按下開關(guān)key2時,16個LED發(fā)光二極管閃爍第二種彩燈方式;同理,當(dāng)按下開關(guān)key3時,16個LED發(fā)光二極管閃爍第三種彩燈方式;當(dāng)按下開關(guān)key4時,16個LED發(fā)光二極管閃爍第四種彩燈方式。</p><p> 圖2-2 按鍵控制電路圖</p><p><b> ?。ㄈ┲袛嚯娐?lt;/b></p><p> 單片機(jī)的P3.3引腳街上一
15、個按鍵開關(guān)以實(shí)現(xiàn)對彩燈中斷的控制(如圖2-3)。當(dāng)彩燈系統(tǒng)正在實(shí)現(xiàn)無論哪一種控制方式時,按下中斷開關(guān)使過程終止,16個LED發(fā)光二極管同時會處于熄滅狀態(tài),停止當(dāng)前工作;當(dāng)再次按一下中斷開關(guān)時,彩燈系統(tǒng)會繼續(xù)進(jìn)行工作,閃光方式會與中斷之前的方式一樣。</p><p> 如圖2-3 中斷控制電路圖</p><p> ?。ㄋ模?LED顯示電路</p><p> 流水燈
16、采用的是發(fā)光二極管(Light-Emitting Diode),簡稱LED,是一種將電能轉(zhuǎn)換為光能的半導(dǎo)體器件,具有體積小、耗電低的優(yōu)點(diǎn),常被用作微型計算機(jī)與數(shù)字電路的輸出裝置。當(dāng)LED兩端加上一定的正向電壓,使之流過一定的工作電流就會發(fā)光,其亮度隨流過的電流增加而增加,但電流過大LED的壽命也將縮短。普通LED正向電流一般為5~20mA。由于51 的I/O 是弱上拉的方式,在輸出高電平時,只能輸出幾十微安的電流,而在輸出低電平時,I/
17、O最大可以輸入幾十毫安的電流。所以,通常采用灌電流的方式,即電流從電源經(jīng)LED流向I/O口。為了不讓流過LED的電流太大而把它燒壞,還得串上限流電阻R,當(dāng)P0和P2口輸出高電平(+5V)時,LED兩端沒有電壓降,所以熄滅;當(dāng)P0和P2口輸出低電平(即P0/P2=0)時, LED正向?qū)òl(fā)光。此時LED兩端電壓VD約為1.7V,則限流電阻R兩端將存在3.3V(即5-1.7=3.3V)。查閱AT89C51技術(shù)手冊后發(fā)現(xiàn),單個I/O口的輸入電
18、流不能超過10mA;P0口的輸入電流總和不能超過26mA;P1、P2、P3的輸入電流總和不能超過15mA;所有I/</p><p> 圖2-4 led顯示電路圖</p><p><b> ?。ㄎ澹┛傮w電路</b></p><p><b> ?。﹩螜C(jī)片的介紹</b></p><p> AT89
19、C51管腳圖如下圖2-5所示</p><p> 圖2-5 AT89C51引腳排列</p><p> VCC:供電電壓+5V。</p><p><b> GND:接地。</b></p><p> P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時,被定義為高阻輸入。P
20、0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時,P0輸出原碼,此時P0外部必須被拉高。本系統(tǒng)中P0口接LED數(shù)碼管的段選段。 </p><p> P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,
21、將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時,P1口作為第八位地址接收[7]。</p><p> P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2
22、口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時接收高八位地址信號和控制信號。本系統(tǒng)中語音芯片ISD1420的地址端接P2口。</p><p> P3口:P3口是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部
23、下拉為低電平,P3口將輸出電流,這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如表2.5所示。P3口同時為閃爍編程和編程校驗(yàn)接收一些控制信號。</p><p> 表2.5 P3口的第二功能</p><p> RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機(jī)器周期的高電平時間。</p><p> ALE/PROG:當(dāng)訪問外部存儲器時
24、,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。</p>
25、<p> PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機(jī)器周期兩次/PSEN有效。在訪問外部數(shù)據(jù)存儲器時,這兩次有效的PSEN信號將不出現(xiàn)。</p><p> EA/VPP:當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,EA將內(nèi)部鎖定為RESET;當(dāng)EA端保持高電平時,此間內(nèi)部程序存儲器。在本設(shè)計中,對R
26、OM的讀操作只在內(nèi)部程序存儲器中,所以EA置應(yīng)高電平。</p><p> XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。</p><p> XTAL2:來自反向振蕩器的輸出[8]。</p><p><b> 三、軟件設(shè)計</b></p><p><b> ?。ㄒ唬┸浖O(shè)計思路</b>
27、;</p><p> 單片機(jī)的應(yīng)用系統(tǒng)由硬件和軟件組成,上述硬件各電路搭建完成后,我們還不能看到多控制、多閃爍方式的LED燈系統(tǒng)循環(huán)點(diǎn)亮的現(xiàn)象,我們還需要告訴單片機(jī)怎么樣進(jìn)行控制,即編寫程序控制單片機(jī)管腳電平的高低變化,來實(shí)現(xiàn)發(fā)光二極管的閃爍。軟件編程是多控制、多閃爍方式的LED燈系統(tǒng)中的一個重要的組成部分,是本設(shè)計的重點(diǎn)和難點(diǎn)。所以我來闡述多控制、多閃爍方式的LED燈系統(tǒng)是如何實(shí)現(xiàn)16個LED燈的循環(huán)點(diǎn)亮,來
28、介紹實(shí)現(xiàn)流水燈控制的軟件編程方法。</p><p> 本設(shè)計是以單片機(jī)AT89C51為核心控制16個發(fā)光二極管4種閃爍方式的變換。硬件電路如圖附錄A所示,16個發(fā)光二極管分別接在單片機(jī)的P0和P2接口上。例如,當(dāng)給P0.0口輸出“0”時,發(fā)光二極管點(diǎn)亮,當(dāng)輸出“1”時,發(fā)光二極管熄滅。同理,接在P0和P2口的其他15個LED的點(diǎn)亮和熄滅的方法同P0.0引腳上的燈管。因此,要實(shí)現(xiàn)流水燈功能,我們只要將發(fā)光二極管按
29、照不同方式依次點(diǎn)亮、熄滅,16只LED燈便會一亮一暗的成流水燈了。程序設(shè)計流程如圖3-2。</p><p><b> ?。ǘ┸浖O(shè)計流程</b></p><p> 圖3-2 程序設(shè)計流程圖</p><p><b> ?。ㄈ┸浖绦?lt;/b></p><p> #include<reg51
30、.h></p><p> #define uint unsigned int</p><p> #define uchar unsigned char</p><p> const tab1[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};</p><p> const tab2[]={
31、0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00};</p><p> const tab3[]={0xFF,0x7F,0x3F,0x1F,0x0F,0x07,0x03,0x01,0x00};</p><p> const tab4[]={0xFF,0xFE,0xFA,0xEA,0xAA,0x2A,0x0A,0x02,0x00};
32、 //1,3,5,7</p><p> const tab5[]={0xFF,0x7F,0x5F,0x57,0x55,0x54,0x50,0x40,0x00}; //2,4,6,8</p><p> uchar key=0;</p><p> uchar state=0;</p><p> uchar stateTem
33、p=0;</p><p> uchar flag=0;</p><p> void delay(uint n)//延時</p><p><b> {</b></p><p><b> uint i;</b></p><p> for(i=0;i<n;i++)
34、;</p><p><b> }</b></p><p> void fun1(void)</p><p><b> {</b></p><p><b> P0=0x00;</b></p><p><b> P2=0x00;</
35、b></p><p> delay(30000);</p><p><b> P0=0xff;</b></p><p><b> P2=0xff;</b></p><p> delay(30000);</p><p><b> } </b>
36、;</p><p> void fun2(void)</p><p><b> {</b></p><p><b> uchar i;</b></p><p> for(i=0;i<8;i++)//向上逐次單個點(diǎn)亮</p><p><b>
37、{</b></p><p> P2=tab1[7-i];</p><p> delay(10000);</p><p> if(state!=2)</p><p><b> {</b></p><p><b> P0=0xFF;</b></p>
38、;<p><b> P2=0xFF;</b></p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> P2=0xFF;<
39、/b></p><p> for(i=0;i<8;i++)</p><p><b> {</b></p><p> P0=tab1[7-i];</p><p> delay(10000);</p><p> if(state!=2)</p><p>&
40、lt;b> {</b></p><p><b> P0=0xFF;</b></p><p><b> P2=0xFF;</b></p><p><b> return;</b></p><p><b> }</b></p&
41、gt;<p><b> }</b></p><p><b> P0=0xFF;</b></p><p> for(i=0;i<8;i++) //向下逐次單個點(diǎn)亮</p><p><b> {</b></p><p> P0=tab1[i]
42、;</p><p> delay(10000);</p><p> if(state!=2)</p><p><b> {</b></p><p><b> P0=0xFF;</b></p><p><b> P2=0xFF;</b></
43、p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> P0=0xFF;</b></p><p> for(i=0;i<8;i+
44、+)</p><p><b> {</b></p><p> P2=tab1[i];</p><p> delay(10000);</p><p> if(state!=2)</p><p><b> {</b></p><p><b&
45、gt; P0=0xFF;</b></p><p><b> P2=0xFF;</b></p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p>
46、<p><b> P2=0xFF;</b></p><p><b> }</b></p><p> void fun3(void)</p><p><b> {</b></p><p><b> uchar i;</b></p&g
47、t;<p> for(i=0;i<9;i++)</p><p><b> {</b></p><p> P0=tab4[i];</p><p> P2=tab5[i];</p><p> delay(25000);</p><p> if(state!=3)&
48、lt;/p><p><b> {</b></p><p><b> P0=0xFF;</b></p><p><b> P2=0xFF;</b></p><p><b> return;</b></p><p><b>
49、; }</b></p><p><b> }</b></p><p> for(i=0;i<3;i++)</p><p><b> {</b></p><p><b> P0=0xAA;</b></p><p><b&g
50、t; P2=0xAA;</b></p><p> delay(20000);</p><p><b> P0=0x55;</b></p><p><b> P2=0x55;</b></p><p> delay(20000);</p><p> if(
51、state!=3)</p><p><b> {</b></p><p><b> P0=0xFF;</b></p><p><b> P2=0xFF;</b></p><p><b> return;</b></p><p&g
52、t;<b> }</b></p><p><b> }</b></p><p> for(i=0;i<9;i++)</p><p><b> {</b></p><p> P0=tab4[8-i];</p><p> P2=tab
53、5[8-i];</p><p> delay(25000);</p><p> if(state!=3)</p><p><b> {</b></p><p><b> P0=0xFF;</b></p><p><b> P2=0xFF;</b>
54、;</p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> } </b></p><p> void fun4(void)&l
55、t;/p><p><b> {</b></p><p><b> uchar i;</b></p><p> for(i=0;i<9;i++) //向上逐個點(diǎn)亮</p><p><b> {</b></p><p> P2=tab3[i];&
56、lt;/p><p> delay(10000);</p><p> if(state!=4)</p><p><b> {</b></p><p><b> P0=0xFF;</b></p><p><b> P2=0xFF;</b></p&
57、gt;<p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p> for(i=0;i<9;i++)</p><p><b> {</b></p&
58、gt;<p> P0=tab3[i];</p><p> delay(10000);</p><p> if(state!=4)</p><p><b> {</b></p><p><b> P0=0xFF;</b></p><p><b>
59、; P2=0xFF;</b></p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p> for(i=0;i<9;i++)//向下逐個熄滅</p>
60、<p><b> {</b></p><p> P0=tab3[8-i];</p><p> delay(10000);</p><p> if(state!=4)</p><p><b> {</b></p><p><b> P0=0xFF
61、;</b></p><p><b> P2=0xFF;</b></p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p><
62、;b> P0=0xFF;</b></p><p> for(i=0;i<9;i++)</p><p><b> {</b></p><p> P2=tab3[8-i];</p><p> delay(10000);</p><p> if(state!=4)&l
63、t;/p><p><b> {</b></p><p><b> P0=0xFF;</b></p><p><b> P2=0xFF;</b></p><p><b> return;</b></p><p><b>
64、 }</b></p><p><b> }</b></p><p><b> P2=0xFF;</b></p><p> for(i=0;i<9;i++) //向下逐個點(diǎn)亮</p><p><b> {</b></p><p&
65、gt; P0=tab2[i];</p><p> delay(10000);</p><p> if(state!=4)</p><p><b> {</b></p><p><b> P0=0xFF;</b></p><p><b> P2=0xFF;
66、</b></p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p> for(i=0;i<9;i++)</p><p><b> {
67、</b></p><p> P2=tab2[i];</p><p> delay(10000);</p><p> if(state!=4)</p><p><b> {</b></p><p><b> P0=0xFF;</b></p>
68、<p><b> P2=0xFF;</b></p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p> for(i=0;i<9;i++) //
69、向上逐個熄滅</p><p><b> {</b></p><p> P2=tab2[8-i];</p><p> delay(10000);</p><p> if(state!=4)</p><p><b> {</b></p><p>
70、<b> P0=0xFF;</b></p><p><b> P2=0xFF;</b></p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p
71、><p><b> P2=0xFF;</b></p><p> for(i=0;i<9;i++)</p><p><b> {</b></p><p> P0=tab2[8-i];</p><p> delay(10000);</p><p&g
72、t; if(state!=4)</p><p><b> {</b></p><p><b> P0=0xFF;</b></p><p><b> P2=0xFF;</b></p><p><b> return;</b></p>
73、<p><b> }</b></p><p><b> }</b></p><p><b> P0=0xFF;</b></p><p><b> } </b></p><p> void timer0(void)interrupt 1
74、using 1</p><p><b> {</b></p><p> TL0= 0x00;//重置初值</p><p> TH0 = 0xBE;</p><p> TL0 = 0xE5;</p><p><b> key=P1;</b></p>
75、;<p> switch(key)</p><p><b> {</b></p><p> case 0xFE:state=1;stateTemp=1;break;</p><p> case 0xFD:state=2;stateTemp=2;break;</p><p> case 0xFB:s
76、tate=3;stateTemp=3;break;</p><p> case 0xF7:state=4;stateTemp=4;break;</p><p> default:break;</p><p><b> }</b></p><p><b> }</b></p>
77、<p> void _int()interrupt 2 using 2</p><p><b> {</b></p><p> if(flag==0)</p><p><b> {</b></p><p><b> state=5;</b></p>
78、;<p><b> flag|=1;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> state=stateTemp;</p&g
79、t;<p><b> flag&=0;</b></p><p><b> }</b></p><p><b> }</b></p><p> void main()</p><p><b> {</b></p>
80、<p><b> IT1=1;</b></p><p><b> IE|=0x86;</b></p><p> TMOD= 0x21;</p><p> TH0 = 0xBE;</p><p> TL0 = 0xE5;</p><p> ES = 0
81、;//禁止串口中斷</p><p> TR0 = 1;//開啟定時器0,開始定時</p><p><b> while(1)</b></p><p><b> {</b></p><p> switch(state)</p><p><
82、;b> {</b></p><p> case 1:fun1();break;</p><p> case 2:fun2();break;</p><p> case 3:fun3();break;</p><p> case 4:fun4();break;</p><p> case 5
83、:P0=0xFF;P2=0xFF;break;</p><p> default:break;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b>
84、 四、結(jié)論</b></p><p> 該設(shè)計是以AT-89C51單片機(jī)為主控芯片,與發(fā)光二極管、晶振電路、復(fù)位電路和電源電路組成,通過程序控制彩燈流水花樣。本文所給程序?qū)崿F(xiàn)的功能比較簡單,旨在拋磚引玉,可以在此基礎(chǔ)上擴(kuò)展成更復(fù)雜的彩燈控制,比如鍵盤控制流水花樣、控制流水燈顯示數(shù)字或圖案等等。</p><p> 通過花樣彩燈的制作,給我最大的體會是對一個程序整體的把握和控制,
85、只有將子程序有效的結(jié)合起來,才能完成設(shè)計的目的。另外,在程序的調(diào)試過程中,我也遇到了很多意想不到的困難,在老師的幫助和自己的不懈努力下,我對偉福這款仿真軟件有了更深的認(rèn)識,將困難一一克服,使程序編譯成功,仿真實(shí)現(xiàn)。</p><p><b> 參考文獻(xiàn):</b></p><p> [1]王幸之 鐘愛琴. AT89系列單片機(jī)原理與接口技術(shù)[M].北京:北京航空航天大學(xué)
86、出版社,2004.[2]譚浩強(qiáng).C程序設(shè)計(第二版)[M].北京:清華大學(xué)出版社,1999.[3]趙亮.單片機(jī)C語音編程與實(shí)例[M].北京:人民郵出版社,2004.[4]房小翠、王金鳳.單片機(jī)實(shí)用系統(tǒng)設(shè)計技術(shù)[M].北京:國防工業(yè)出版社,1999.[5]康華光.電子技術(shù)基礎(chǔ)數(shù)字部分(第四版)[M].北京:高等教育出版社,1998.[6]張毅剛.單片機(jī)原理及應(yīng)用[M].北京:高等教育出版社,2003.[7]李廣第,朱月秀,王秀
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 16led彩燈控制電路的設(shè)計
- 畢業(yè)論文--彩燈顯示控制電路的設(shè)計
- led循環(huán)顯示控制電路的研制畢業(yè)論文
- 畢業(yè)設(shè)計---循環(huán)彩燈控制電路設(shè)計
- 基于at89s52的16led搖搖棒畢業(yè)論文
- 畢業(yè)設(shè)計--彩燈循環(huán)控制電路系統(tǒng)設(shè)計
- 課程設(shè)計---簡易彩燈控制電路
- 基于at89s52的16led搖搖棒0畢業(yè)論文
- 單片機(jī)led彩燈循環(huán)控制畢業(yè)論文
- 控制電路原理分析畢業(yè)論文
- 課程設(shè)計---彩燈控制電路設(shè)計
- 數(shù)字電路課程設(shè)計--彩燈控制電路
- 畢業(yè)論文多變流水燈控制電路的設(shè)計
- 畢業(yè)論文——微型打印機(jī)控制電路的設(shè)計
- 彩燈循環(huán)顯示控制電路課程設(shè)計
- 電氣課程設(shè)計--簡易彩燈控制電路
- 畢業(yè)論文-----水位檢測系統(tǒng)的控制電路
- 16×16led點(diǎn)陣屏顯示設(shè)計-課設(shè)論文
- 交通燈控制電路設(shè)計畢業(yè)論文
- 變頻器控制電路設(shè)計 畢業(yè)論文
評論
0/150
提交評論