單片機(jī)課程設(shè)計(jì) 藝術(shù)彩燈控制系統(tǒng)設(shè)計(jì)
單片機(jī)系統(tǒng)綜合設(shè)計(jì)報(bào)告 課題名稱:藝術(shù)彩燈控制系統(tǒng)設(shè)計(jì)指導(dǎo)教師:學(xué)生班級(jí):應(yīng)電08301班學(xué)生姓名:學(xué)號(hào): 同組人: 學(xué)生院系:法商學(xué)院電子工程系2010年6月10日 目 錄.一 概述1 1.1 藝術(shù)彩燈的設(shè)計(jì)背景及意義1 1.2 系統(tǒng)設(shè)計(jì)功能概述1 .二 彩燈設(shè)計(jì)內(nèi)容簡(jiǎn)要1 2.1 彩燈設(shè)計(jì)內(nèi)容1 2.2 彩燈設(shè)計(jì)要求1 2.3 彩燈設(shè)計(jì)原理1 2.4 彩燈總體控制框圖2.三 硬件電路設(shè)計(jì)2 3.1 硬件組成2 3.2 AT89C51單片機(jī)硬件結(jié)構(gòu)3 3.3 系統(tǒng)的硬件構(gòu)成及功能4.四 系統(tǒng)的軟件設(shè)計(jì)54.1 程序流程圖64.2 軟件程序7.五 設(shè)計(jì)體會(huì)8.六 參考文獻(xiàn)9 藝術(shù)彩燈控制系統(tǒng)設(shè)計(jì)一 概述11 藝術(shù)彩燈的設(shè)計(jì)背景及意義彩燈是人們?nèi)粘I钪械囊环N裝飾用品,它美觀大方,尤其在節(jié)日期間,倍增節(jié)日氣氛。它蘊(yùn)涵著豐富的文化底蘊(yùn),被廣泛地應(yīng)用于各種店面的裝飾。變換無(wú)窮的彩燈樣式,給城市增添活力,吸引著人們的注意力,深受人民的喜愛。在日常生活中,人們還將彩燈擺放成各種圖案,增添美感。隨著電子技術(shù)的發(fā)展,應(yīng)用系統(tǒng)向著小型化、快速化、大容量、重量輕的方向發(fā)展。科學(xué)技術(shù)更加貼近人們的生活,向著滿足人們需求的方向發(fā)展。節(jié)日彩燈的設(shè)計(jì)與制作工藝也一步一步的走向成熟。1.2 系統(tǒng)設(shè)計(jì)功能概述本設(shè)計(jì)是以AT89C51單片機(jī)為基礎(chǔ)的彩燈控制方案,來(lái)實(shí)現(xiàn)對(duì)LED彩燈的控制。以AT89C51單片機(jī)作為主控核心,與鍵盤、顯示、驅(qū)動(dòng)等模塊組成核心主控制模塊。在主控模塊上設(shè)有5個(gè)按鍵和8位LED狀態(tài)顯示器,根據(jù)實(shí)驗(yàn)要求編寫若干種亮燈模式,利用其內(nèi)部定時(shí)器T0實(shí)現(xiàn)一個(gè)基本單位時(shí)間為5ms的定時(shí)中斷,根據(jù)各種亮燈時(shí)間的不同需要,在不同時(shí)刻輸出燈亮或燈滅的控制信號(hào),然后驅(qū)動(dòng)各種顏色的燈亮或滅。二彩燈設(shè)計(jì)內(nèi)容簡(jiǎn)要:2.1彩燈設(shè)計(jì)內(nèi)容:1設(shè)計(jì)并實(shí)現(xiàn)具有復(fù)位功能的單片機(jī)小系統(tǒng);2利用單片機(jī)進(jìn)行燈光的場(chǎng)景開關(guān)控制;3利用單片機(jī)進(jìn)行燈光的循環(huán)點(diǎn)亮控制及速度變化控制;4利用單片機(jī)進(jìn)行燈光的色彩連續(xù)變化效果控制。5利用單片機(jī)進(jìn)行燈光的三色聯(lián)動(dòng)定時(shí)控制。2.2彩燈設(shè)計(jì)要求:1能啟動(dòng)、停止;2能通過(guò)開關(guān)進(jìn)行功能選擇;3要體現(xiàn)循環(huán)、組合和色彩變化的控制功能和效果,實(shí)現(xiàn)三色聯(lián)動(dòng)定時(shí)控制,控制變化規(guī)律的類型或功能不少于5種;2.3彩燈設(shè)計(jì)原理: 主控模塊主要設(shè)計(jì)器件有89C51,8個(gè)LED狀態(tài)顯示器,6個(gè)按鍵,3個(gè)穩(wěn)壓器(提供5 V電壓)。通過(guò)軟件設(shè)計(jì),使單片機(jī)P1口作為三色LED驅(qū)動(dòng)信號(hào)輸出口及移位時(shí)鐘CLOCK信號(hào),P0口為按鍵輸入口,P2口、P1口與8位七段碼LED相接作為顯示器的輸出口。2.4彩燈總體控制框圖:LED顯示電路時(shí)鐘電路復(fù)位電路按鍵電路AT89C51單片機(jī)三硬件電路設(shè)計(jì):3.1硬件組成按照單片機(jī)系統(tǒng)擴(kuò)展與系統(tǒng)配置狀況,單片機(jī)應(yīng)用系統(tǒng)可分為最小系統(tǒng)、最小功耗系統(tǒng)及典型系統(tǒng)等。AT89C51單片機(jī)是美國(guó)ATMEL公司生產(chǎn)的低電壓、高性能CMOS 8位單片機(jī),具有豐富的內(nèi)部資源:4kB閃存、128BRAM、32根I/O口線、2個(gè)16位定時(shí)/計(jì)數(shù)器、5個(gè)向量?jī)杉?jí)中斷結(jié)構(gòu)、2個(gè)全雙工的串行口,具有4.255.50V的電壓工作范圍和024MHz工作頻率,使用AT89C51單片機(jī)時(shí)無(wú)須外擴(kuò)存儲(chǔ)器。因此,本流水燈實(shí)際上就是一個(gè)帶有八個(gè)發(fā)光二極管的單片機(jī)最小應(yīng)用系統(tǒng),即為由發(fā)光二極管、晶振、復(fù)位、電源等電路和必要的軟件組成的單個(gè)單片機(jī)3.2 AT89C51單片機(jī)硬件結(jié)構(gòu):AT89C51是一種帶4K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器(FPEROMFlash Programmable and Erasable Read Only Memory)的單片機(jī)芯片,它采用靜態(tài)CMOS 工藝制造8位微處理器,最高工作頻率位24MHZ。AT89C5外形及引腳排列如圖所示: 管腳說(shuō)明: RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。 P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。 P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。 P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。 ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。 PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次PSEN有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的PSEN信號(hào)將不出現(xiàn)。 EA/VPP:當(dāng)EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),EA將內(nèi)部鎖定為RESET;當(dāng)EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。 XTAL1和XTAL2:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 33系統(tǒng)的硬件構(gòu)成及功能描述:控制系統(tǒng)硬件設(shè)計(jì)電路圖如圖所示: 系統(tǒng)硬件設(shè)計(jì)電路圖功能描述:系統(tǒng)硬件設(shè)計(jì)電路主要由四部分組成:按鍵復(fù)位電路、時(shí)鐘振蕩電路、按鍵電路、LED顯示電路。按鍵復(fù)位電路:復(fù)位是單片機(jī)的初始化操作,其作用是使CPU中的各個(gè)部件都處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作。在接電瞬間RST端的電位與Vcc相同,隨著電容充電電流的減小,+5V立即加到了RST/VPD端,RST的電位逐漸下降。 時(shí)鐘振蕩電路:在AT89C51的外部,XTAL1和XTAL2之間跨越晶體振蕩器和微調(diào)電容,從而構(gòu)成一個(gè)自激振蕩器,形成時(shí)鐘振蕩電路。時(shí)鐘電路產(chǎn)生的振蕩脈沖經(jīng)過(guò)觸發(fā)器二分頻后,形成單片機(jī)的時(shí)鐘脈沖信號(hào)。按鍵電路:用P0.0P0.5五個(gè)I/O口作為輸入口,按鍵輸入均采用低電平有效。獨(dú)立式按鍵的軟件可采用中斷方式和查詢方式,本設(shè)計(jì)中按鍵程序的就是采用中斷方式。圖中P0.0的按鍵是場(chǎng)景開關(guān),即控制整個(gè)系統(tǒng)。LED顯示電路:發(fā)光二極管與單片機(jī)的P1口相連接,其電路圖如圖所示。發(fā)光二極管接+5V電源,其他管腳分別接P1口的8個(gè)端口.此次設(shè)計(jì)發(fā)光二極管可顯示兩種狀態(tài),適合用于顯示系統(tǒng)狀態(tài)。此處用到8個(gè),紅、綠、黃三種LED彩燈控制器(89C51主控模塊)和LED彩燈管(管內(nèi)LED板模塊)。 四系統(tǒng)的軟件設(shè)計(jì) 4.1程序流程圖: 程序如下:ORG 0000H AJMP START ;指向主程序 ORG 0010HMAIN:MOV P1,#0FFH ;設(shè)置P1口為輸入口START: MOV P0,#0FFH ;初始狀態(tài),選擇場(chǎng)景控制開關(guān) JNB P0.0,KEY0 SJMP STARTKEY0: JNB P0.1, KEY1 JNB P0.2, KEY2 JNB P0.3, KEY3 JNB P0.4, KEY4 SJMP STARTSTART1: MOV P0, #0FFH ACALL DELAY MOV A, P1 ;送顯示初值 JNB ACC.1, KEY1 ;ACC.1=0?若為0則P1.1對(duì)應(yīng)的鍵按下,轉(zhuǎn)KEY1 JNB ACC.2, KEY2 ;ACC.2=0?若為0則P1.2對(duì)應(yīng)的鍵按下,轉(zhuǎn)KEY2 JNB ACC.3, KEY3 ;ACC.3=0?若為0則P1.3對(duì)應(yīng)的鍵按下,轉(zhuǎn)KEY3 JNB ACC.4, KEY4 ;ACC.1=0?若為0則P1.4對(duì)應(yīng)的鍵按下,轉(zhuǎn)KEY4 SJMP START1 KEY1:MOVR2,#08H MOVR5,#0FEHNEXT0:MOVA,P0 JNB ACC.3,KEY4 JNB ACC.4,KEY3 JB ACC.0,MAIN MOVA,R5 MOVP1,A ;點(diǎn)亮燈 ACALLDELAY MOVA,R5 RL A ;左移,下一個(gè)燈亮 MOVR5,A DJNZR2,NEXT0 SJMPKEY1KEY2: MOV A,P0 ;按鍵2,三色聯(lián)動(dòng),JB ACC.0,MAIN ;檢測(cè)開關(guān)是否按下 JNB ACC.4, KEY3 JNB ACC.3, KEY4 MOV P1,#0DAH ACALL DELAY2 MOV P1,#0C7H ACALL DELAY2 MOV P1,#06EH ACALL DELAY2 AJMP KEY2LP1: JBC TF1, LP2 SJMP LP1LP2: MOV TH1, #0B1H MOV TL1, #0E0H DJNZ R3, LP1 RETKEY3: ACALL DELAY MOV A,R6 ;循環(huán)點(diǎn)亮加速 ADD A,#3H MOV R6,A SJMP NEXT0KEY4 : ACALL DELAY ;循環(huán)點(diǎn)亮減速 MOV A,R6 MOV A,#3H MOV R6,A SJMP NEXT0DELAY: MOV R3, #14H ;加速減速,延時(shí)程序 MOV TMOD, #10H MOV TH1, #0B1H MOV TL1, #0E0H SETB TR1DELAY2:CALLDELAY CALL DELAY RET END五設(shè)計(jì)體會(huì):歷時(shí)五個(gè)星期的單片機(jī)課程設(shè)計(jì),我從中受益匪淺。因?yàn)閷?duì)我而言學(xué)到的不僅是專業(yè)知識(shí),而且是團(tuán)隊(duì)的合作精神。在本次課程設(shè)計(jì)中,我主要感觸最深的當(dāng)屬查閱大量的設(shè)計(jì)資料了。為了讓自己的設(shè)計(jì)更加完善,查閱這方面的設(shè)計(jì)資料是十分必要的,同時(shí)也是必不可少的。作為一個(gè)團(tuán)隊(duì),分工就顯得尤為重要,我主要負(fù)責(zé)系統(tǒng)硬件電路設(shè)計(jì)和最終調(diào)試的任務(wù),我和搭檔互相幫助,彼此勉勵(lì),有問(wèn)題一起尋求解決之道。雖然一開始我們就對(duì)方案的選擇發(fā)生分歧,但這絲毫不影響我們的交流、探討。因?yàn)榇蠹页踔允且粯拥?。開始設(shè)計(jì)的功能不能全部實(shí)現(xiàn)出來(lái),于是拿著程序反復(fù)分析和修改,在老師和同學(xué)的幫助指導(dǎo)下最終找出錯(cuò)誤所在。經(jīng)過(guò)總結(jié)和分析,我和組員一致認(rèn)為要做好一個(gè)課程設(shè)計(jì),就必須做到:在設(shè)計(jì)程序之前,對(duì)所用單片機(jī)的內(nèi)部結(jié)構(gòu)有一個(gè)系統(tǒng)的了解,知道該單片機(jī)內(nèi)有哪些資源;要有一個(gè)清晰的思路和一個(gè)完整的的軟件流程圖;在設(shè)計(jì)程序時(shí),不能妄想一次就將整個(gè)程序設(shè)計(jì)好,反復(fù)修改、不斷改進(jìn)是程序設(shè)計(jì)的必經(jīng)之路;要養(yǎng)成注釋程序的好習(xí)慣,一個(gè)程序的完美與否不僅僅是實(shí)現(xiàn)功能,而應(yīng)該讓人一看就能明白你的思路,這樣也為資料的保存和交流提供了方便;在設(shè)計(jì)課程過(guò)程中遇到問(wèn)題是很正常,但我們應(yīng)該將每次遇到的問(wèn)題記錄下來(lái),并分析清楚,以免下次再碰到同樣的問(wèn)題。 這次課程設(shè)計(jì)使我明白理論與實(shí)際相結(jié)合的重要,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固。在接下來(lái)的復(fù)習(xí)中我會(huì)再接再厲,加深對(duì)單片機(jī)相關(guān)知識(shí)的理解。六參考文獻(xiàn):?jiǎn)纹瑱C(jī)應(yīng)用技術(shù)張曄王玉民出版社:高等教育出版社 出版日期:2006.6跟我學(xué)用單片機(jī). 肖洪兵 北京航空航天大學(xué)出版社 出版日期:2002.8 單片機(jī)實(shí)踐應(yīng)用與技術(shù)馬長(zhǎng)林、陳怡 北京大學(xué)出版社 出版日期:2008單片機(jī)高級(jí)教程第1版 何立民 北京航空航天大學(xué)出版社 出版日期:2001單片機(jī)課程設(shè)計(jì)指導(dǎo) 程成 出版社 清華大學(xué)出版社 出版日期:2009單片機(jī)原理及接口技術(shù) 李朝清 北京航空航天大學(xué)出版社出 版日期:1999