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