《單片機(jī)課程設(shè)計(jì)-- 彩燈控制器的設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《單片機(jī)課程設(shè)計(jì)-- 彩燈控制器的設(shè)計(jì)(11頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、單片機(jī)課程設(shè)計(jì)報(bào)告
題 目: 彩燈控制器的設(shè)計(jì)
專 業(yè): 電氣工程及其自動(dòng)化
班 級(jí): 電氣081
學(xué) 號(hào): 3080421034
學(xué)生姓名: 廖詩宇
指導(dǎo)老師: 王水魚
2010年秋季學(xué)期
起止時(shí)間:2011年1月10日至2011年1月14日
平時(shí)(10%)
任務(wù)完成(30%)
答辯(30%)
課設(shè)報(bào)告(30%)
總評(píng)成績
彩燈控制器設(shè)計(jì)
一.
2、 系統(tǒng)功能及要求分析
1) 用8盞LED燈實(shí)現(xiàn)至四種以上的彩燈燈光效果。
2) 通過輸入按鈕實(shí)現(xiàn)彩燈燈光效果的切換。
3) 通過輸入按鈕實(shí)現(xiàn)暫停彩燈效果。在暫停期間小燈全亮。
4) 使用定時(shí)器實(shí)現(xiàn)
通過89C51芯片控制LED。使其顯示出四種彩燈效果:自動(dòng)先從上到下再從下到上。自動(dòng)分為從上到下和從上到下。閃爍,先亮一.三.五.七,再亮二.四.六.八。交替亮.,暫停時(shí),小燈全亮。
二. 方案設(shè)計(jì)及其說明
以AT-89C51單片機(jī)作為主要控制器,與按鍵.顯示器等硬件相結(jié)合.利用軟件實(shí)現(xiàn)對(duì)LED彩燈進(jìn)行控制.該系統(tǒng)特點(diǎn)有極小,硬件少,電路結(jié)構(gòu)簡單及容易操作等優(yōu)點(diǎn)。
我們?cè)?/p>
3、實(shí)驗(yàn)中采用了一種基于AT-89C51單片機(jī)的彩燈控制方案。本方案以AT-89C51單片機(jī)作為控制核心,與顯示.驅(qū)動(dòng)等模塊組成主要控制模塊,在主控模塊上沒有五個(gè)按鍵和8位LED顯示器,根據(jù)用戶需要可以編寫若干種亮燈模式。利用其內(nèi)部定時(shí)器TD實(shí)現(xiàn)一個(gè)基本時(shí)間的定時(shí)中斷,根據(jù)各種亮燈時(shí)間的不同需要,在不同的時(shí)刻輸出燈亮或者燈滅的控制信號(hào),然后驅(qū)動(dòng)各種顏色的燈亮或者燈滅,整個(gè)系統(tǒng)龔做由軟件控制運(yùn)行,根據(jù)需要,用戶可以在LED彩燈工作時(shí)通過主控模塊上的按鍵來設(shè)定亮燈的時(shí)間和亮燈閃動(dòng)的頻率。同時(shí)通過按鍵,可以實(shí)現(xiàn)工作模式切換的功能。
三. 原理線路設(shè)計(jì)
1.)原理線路(見打印圖)
2)工作原理說
4、明
通電后,接通開關(guān)1,系統(tǒng)經(jīng)過初始化,會(huì)直接自動(dòng)進(jìn)入自動(dòng)模式,即LED彩燈會(huì)自動(dòng)順序亮燈,而在自動(dòng)模式下,用戶根據(jù)自己需要選擇其他手動(dòng)模式,并且可以改變每種模式下的時(shí)間和頻率的參數(shù),本實(shí)驗(yàn)設(shè)定的默認(rèn)延遲200MS,當(dāng)開關(guān)2接通后會(huì)進(jìn)入手動(dòng)模式,手動(dòng)模式下,有兩種工作模式,當(dāng)開關(guān)3斷開斷開時(shí),LED燈會(huì)按照從上往下的順序亮燈,最下方的燈亮后又會(huì)回到最上方的燈亮,當(dāng)開關(guān)3接通時(shí),LED燈則會(huì)按照從下到上的順序亮燈。當(dāng)開關(guān)4接通時(shí),系統(tǒng)會(huì)進(jìn)入暫停狀態(tài),此時(shí)所有的燈都會(huì)亮.斷開開關(guān)4,系統(tǒng)又會(huì)回到暫停前的狀態(tài)繼續(xù)亮燈。當(dāng)開關(guān)5閉合時(shí)。系統(tǒng)會(huì)竟如閃爍狀態(tài),即1,3,5,7和2,4,6,8輪流點(diǎn)亮。因
5、此在LED彩燈上電工作后,用戶可以根據(jù)實(shí)際情況來通過開關(guān)選擇適合的模式來完成功能。
主要控制模塊設(shè)計(jì)器件有89C51-LED顯示器,5個(gè)開關(guān),通過軟件程序設(shè)計(jì),使單片機(jī)和P0口作為LED驅(qū)動(dòng)信號(hào)輸出口及移位時(shí)鐘CLOCK信號(hào),P1口作為按鍵輸入口。
3)特點(diǎn)分析
在系統(tǒng)開機(jī)后默認(rèn)進(jìn)入自動(dòng)工作狀態(tài),LED彩燈控制器按照程序設(shè)定好的亮燈模式進(jìn)行,從模塊一順序往下走,一直到最后一個(gè)模塊為一個(gè)亮燈周期,然后再回到模塊一循環(huán)工作,整個(gè)工作周期看作一個(gè)大周期,其中每一個(gè)花樣工作模式時(shí)間為200MS,對(duì)于沒一個(gè)工作模式編寫一個(gè)獨(dú)立工作的子程序,若燈亮則對(duì)應(yīng)顯示位“1“,熄燈則不顯示,對(duì)系統(tǒng)工
6、作狀態(tài)起到了很好的監(jiān)控作業(yè)。
LED彩燈系統(tǒng)包括2大部分,即LED彩燈控制器(89C51主控模塊),主要是用來控制按鍵功能,LED彩燈管(管內(nèi)LED板膜塊),主要是受控制的模塊。
四. 程序設(shè)計(jì)
1)程序結(jié)構(gòu)及流程圖(見打印頁)
時(shí),P1.4由高電平進(jìn)入低電平時(shí),主程序就跳到自動(dòng)的子函數(shù)執(zhí)行,這樣就實(shí)現(xiàn)了閃亮。
時(shí),主程序自動(dòng)跳到手動(dòng)自上到下的子函數(shù)。
由高電平進(jìn)入低電平時(shí),主程序就跳到手動(dòng)由下到上的子函數(shù)上。
4.當(dāng)開關(guān)4接通時(shí),P1.7由高電平進(jìn)入低電平時(shí),主程序就跳到暫停狀態(tài),此時(shí)燈全亮。
5.當(dāng)按鍵5接通時(shí),P1.3由高電平進(jìn)入低電平時(shí),主程序就
7、跳到閃爍的狀態(tài)。
2)程序算法分析
系統(tǒng)中的軟件可以分為主程序和中斷服務(wù)子程序,整個(gè)系統(tǒng)軟件由主程序,各個(gè)模塊子程序,終端服務(wù)子程序,除了中斷會(huì)定時(shí)進(jìn)行以外,程序其他的時(shí)間都在進(jìn)行查詢和LED顯示延時(shí),在每次定時(shí)終斷服務(wù)子程序里,需要對(duì)各個(gè)時(shí)間寄存器和模式進(jìn)行加減。為主程序查詢作準(zhǔn)備,同時(shí)查詢是否已到時(shí)間,并進(jìn)行相應(yīng)的子程序處理。
主程序除了調(diào)用各種模式的子程序和延時(shí)子程序外。還一直保持查詢是否有功能鍵按下。
3)關(guān)鍵程序段說明
ORG 00H
START : MOV A, #0FFH
CLR C
MOV R
8、1,#8
SB1: MOV P0, #OOFH
JB P1.4, SB1
JNB P1.3, FLASH
SB2: JB P1.5, AUTO
JB P1.6 . LEFT\
JMP RIGHT
該模塊是主控模塊。主要用來調(diào)用模塊的處理數(shù)據(jù),根據(jù)各功能模塊對(duì)應(yīng)的程序決定。
5) 源程序(見附頁)
五 .調(diào)試結(jié)果及分析
首先通過仿真軟件來調(diào)試讓系統(tǒng)工作最穩(wěn)定的各個(gè)硬件參數(shù),然后在KEIL下進(jìn)行編譯導(dǎo)入PROTECUS進(jìn)行調(diào)試。
1實(shí)驗(yàn)剛開始程序試時(shí),有一個(gè)錯(cuò)誤
9、,顯示錯(cuò)誤是RIGHT沒有被定義,檢查程序之后發(fā)現(xiàn)子程序中的RIGHT上面的重復(fù)導(dǎo)致程序出錯(cuò),再將子程序中的RIGHT改為RIGHT2之后重新導(dǎo)入程序,運(yùn)行,程序無錯(cuò)誤。
2.在運(yùn)行程序之后,發(fā)現(xiàn)彩燈無法進(jìn)行模式之間的轉(zhuǎn)換在中斷中執(zhí)行彩燈模式的死循環(huán)模式,再后來中斷響應(yīng)臺(tái)哦出循環(huán)執(zhí)行下一個(gè)模式,這樣不斷的通過中斷進(jìn)入死循環(huán),不停的中斷套中斷,觀察程序發(fā)現(xiàn)一個(gè)中斷不能不停的嵌套一個(gè)中斷,員的討論及對(duì)老師的咨詢時(shí)候我們對(duì)程序進(jìn)行了修改,再次運(yùn)行程序時(shí),可以實(shí)現(xiàn)各種模式之間的轉(zhuǎn)換,問題得到解決。
4在程序基本完成之后我們找老師初步驗(yàn)收,老師發(fā)現(xiàn)我們的功能太簡單,不夠?qū)嵱?,于是我們加入了閃爍功能,
10、可以打到更好的視覺效果,當(dāng)進(jìn)入閃爍模式的時(shí)候,一.三.五.七和二.四.六.八燈交替以達(dá)到閃爍功能。程序添加如下
MOV P0, #55H;
MOV PO,#AAH
六.運(yùn)行結(jié)果及分析
結(jié)果:當(dāng)開關(guān)一即總開關(guān)閉合時(shí),系統(tǒng)進(jìn)入默認(rèn)的自動(dòng)模式,彩燈按照從上往下的順序點(diǎn)亮,當(dāng)閉合開關(guān)2則會(huì)進(jìn)入手動(dòng)模式,進(jìn)入上到下點(diǎn)亮的循環(huán)模式,此時(shí)如果再閉合開關(guān)3,則是進(jìn)入手動(dòng)模式的從下往上點(diǎn)亮的循環(huán)模式,再閉合開關(guān)4,則會(huì)進(jìn)入暫停模式,此刻所有的燈全亮,當(dāng)再斷開開關(guān)4,則退出暫停模式,回到暫停之前的模式繼續(xù)工作,最后檢測(cè)開關(guān)5時(shí)候閉合,當(dāng)開關(guān)5閉合的時(shí)候。會(huì)進(jìn)入閃爍模式,一.三.五.七和二.四
11、.六.八燈交替點(diǎn)亮。
結(jié)論:本實(shí)驗(yàn)是根據(jù)AT—89C51單片機(jī)的彩燈控制,實(shí)現(xiàn)對(duì)LED彩燈的控制,實(shí)現(xiàn)了多種彩燈燈光效果,即自動(dòng)和手動(dòng)模式下的LED彩燈從下到上和從上到下的流動(dòng),還有小燈的閃爍和暫停時(shí)的全亮狀態(tài),可以通過按鍵實(shí)現(xiàn)彩燈工作模式的轉(zhuǎn)換,也可以通過按鍵進(jìn)入暫停模式,每種狀態(tài)的工作時(shí)間由定時(shí)器決定,可以確定每種工作模式的工作時(shí)間,實(shí)驗(yàn)結(jié)果與實(shí)驗(yàn)要求基本相符合還有一定的創(chuàng)新功能,所以實(shí)驗(yàn)基本成功。
七.設(shè)計(jì)體會(huì)
課程設(shè)計(jì)剛開始,拿著選定的題目不知如何入手。畢竟課程設(shè)計(jì)不同于實(shí)驗(yàn)課,電路圖都要自己設(shè)計(jì)。靜下心來,仔細(xì)分析題目,再加上指導(dǎo)老師的說明與提示,心中才有了譜。將
12、整個(gè)系統(tǒng)根據(jù)不同的功能化分成模塊,再分別進(jìn)行設(shè)計(jì),逐個(gè)攻破,最后再將其整合即可。??????????????? 本次課程實(shí)習(xí)我雖然用了一個(gè)星期的時(shí)間就全部做完,但整個(gè)過程我都認(rèn)真的完成了,而且從中收獲很多。可以總結(jié)為以下的幾點(diǎn):
單片機(jī)作為我們的主要專業(yè)課之一,雖然在大三開學(xué)初我對(duì)這門課并沒有什么興趣,覺得那些程序枯燥乏味,但在這次課程設(shè)計(jì)后我發(fā)現(xiàn)自己在一點(diǎn)一滴的努力中對(duì)單片機(jī)的興趣也在逐漸增加。
這次單片機(jī)課程設(shè)計(jì)我們歷時(shí)一個(gè)星期,我們班里算是倒數(shù)幾組完成的吧,但經(jīng)過這個(gè)星期的實(shí)踐和體驗(yàn)下來,我們又怎么會(huì)去在乎那個(gè)先后問題呢,因?yàn)閷?duì)我來說學(xué)到的不僅是那些知識(shí),更多的是團(tuán)隊(duì)和合作。
13、現(xiàn)在想來,也許學(xué)校安排的課程設(shè)計(jì)有著它更深層的意義吧,它不僅僅讓我們綜合那些理論知識(shí)來運(yùn)用到設(shè)計(jì)和創(chuàng)新,還讓我們知道了一個(gè)團(tuán)隊(duì)凝聚在一起時(shí)所能發(fā)揮出的巨大潛能!
一星期前我們4人還在為到底選哪個(gè)思路產(chǎn)生分歧,最后在老師的耐心分析和指導(dǎo)下完成了思路的選定,但是隨之而來的問題比我們想想的要困難的多。作為一個(gè)團(tuán)隊(duì),分工就顯得尤為重要,在我們的討論下我得到了連接硬件電路的任務(wù),不過沒想到這項(xiàng)看起來不需要多少技術(shù)的工作卻是非常需要耐心和精力,最后在我們組員的幫助下也算是很好的完成了這項(xiàng)任務(wù),在其他組員紛紛完成了初步的工作后,我們自信滿滿的來到了實(shí)驗(yàn)室準(zhǔn)備調(diào)試,但第一次就給了我們致命的打擊,設(shè)計(jì)的功
14、能不能全部實(shí)現(xiàn)出來,彩燈無法完成模式之間的轉(zhuǎn)換,我們就拿著程序反復(fù)分析和修改,然后我們就針對(duì)這部分程序進(jìn)行了深入思索,并在老師和其他同學(xué)的幫助下完成了程序的修改...此時(shí)我忽然發(fā)現(xiàn)我們幾個(gè)在開始時(shí)的分歧已全然化解,留給我們的是互相信任和幫助!當(dāng)然在這我們也要謝謝幫助過我們的人,其中要感謝老師的鼓勵(lì)和耐心的指導(dǎo),這給了我們很大的動(dòng)力,最后我還要謝的就是一直在我身邊的四個(gè)組員,只有大家的共同努力和互相信任我們才能完成這次的課程設(shè)計(jì)!
在一星期后的今天我已明白課程設(shè)計(jì)對(duì)我來說的意義,它不僅僅是讓我們把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來,提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力,更重要的是同學(xué)間的團(tuán)結(jié)
15、,雖然我們這次花去的時(shí)間比別人多,但我相信我們得到的也會(huì)更多!
最后這次課程設(shè)計(jì),使我受益頗多。了解到課程實(shí)習(xí)設(shè)計(jì)是開端,連接是關(guān)鍵,測(cè)試是必須。既鞏固了課堂上學(xué)到的理論知識(shí),又掌握了常用集成電路芯片的使用。在此基礎(chǔ)上學(xué)習(xí)了數(shù)字系統(tǒng)設(shè)計(jì)的基本思想和方法,學(xué)會(huì)了科學(xué)地分析實(shí)際問題,通過查資料、分析資料及請(qǐng)教老師和同學(xué)等多種途徑,獨(dú)立解決問題。同時(shí),也培養(yǎng)了我認(rèn)真嚴(yán)謹(jǐn)?shù)膽B(tài)度。
八.參考文獻(xiàn)
1.流程圖
(1) 主程序:
(2) 閃爍子程序:
(3) 由上到下循環(huán)閃爍子程序:
(4) 由下到上循環(huán)閃爍子程序:
(5) 定時(shí)中斷延時(shí)子程序:
(6)暫停子程序:
硬件連接圖