可以調(diào)控的走馬燈_第1頁
可以調(diào)控的走馬燈_第2頁
可以調(diào)控的走馬燈_第3頁
可以調(diào)控的走馬燈_第4頁
可以調(diào)控的走馬燈_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、鹽城工學院課程設(shè)計說明書(2011)單片機課程設(shè)計說明書可以調(diào)控的走馬燈目錄1概述11.1可控走馬燈的意義112可控走馬燈的發(fā)展和現(xiàn)狀12課題方案設(shè)計22.1系統(tǒng)總體設(shè)計要求22.2 設(shè)計方案論證23.系統(tǒng)硬件設(shè)計33.1 總體設(shè)計33.2 單片機運行的最小系統(tǒng)43.3 按鍵電路53.4LED顯示模塊54.系統(tǒng)軟件的設(shè)計95軟硬件聯(lián)調(diào)及調(diào)試結(jié)果105.1軟硬件調(diào)試中出現(xiàn)的問題及解決措施105.2 實物圖115.3 調(diào)試結(jié)果12結(jié)束語12參考文獻13附錄14附錄1 : 可以調(diào)控的走馬燈原理圖14附錄2 :可以調(diào)控的走馬燈PCB圖14附錄3:Ptoteuse 仿真圖15附錄4:C語言程序清單16附

2、錄5:可控走馬燈元件清單表19鹽城工學院課程設(shè)計說明書(2011)1概述1.1可控走馬燈的意義 眾所周知,走馬燈以其絢麗的色彩贏得人們喜愛,在人們的日常生活中很常見,并在一些特定的節(jié)日里,重要場合中起著絢爛節(jié)日氣氛,帶給人們歡樂的作用??梢哉{(diào)控的走馬燈打破常規(guī)走馬燈閃爍固定變化的現(xiàn)狀,可根據(jù)人們不同的意愿進行編程設(shè)計出想要的變換的色彩效果。12可控走馬燈的發(fā)展和現(xiàn)狀當前,可以調(diào)控的走馬燈廣泛應(yīng)用于各種商業(yè)場所,娛樂場所,以及建筑物的裝飾等多種場合??梢哉f,可控走馬燈技術(shù)的應(yīng)用已滲透大到世界博覽會,奧林匹克開幕式,小到節(jié)日彩燈裝飾。深入研究可控走馬燈是產(chǎn)品提高檔次和推陳出新的有效途徑??v觀單片機

3、的發(fā)展過程,可以預示走馬燈的發(fā)展趨勢,單片機的發(fā)展趨勢如下:低功耗CMOS化MCS-51系列的80C51推出時的功耗達120mW,而現(xiàn)在的單片機普遍都在100mW左右,隨著對單片機功耗要求越來越低,現(xiàn)在的各個單片機制造商基本都采用了CMOS(互補金屬氧化物半導體工藝)。CMOS雖然功耗較低,但由于其物理特征決定其工作速度不夠高,而CHMOS則具備了高速和低功耗的特點,更適合于在要求低功耗像電池供電的應(yīng)用場合。所以這種工藝將是今后一段時期單片機發(fā)展的主要途徑。微型單片化常規(guī)的單片機普遍都是將中央處理器(CPU)、隨機存取數(shù)據(jù)存儲(RAM)、只讀程序存儲器(ROM)、并行和串行通信接口,中斷系統(tǒng)、

4、定時電路、時鐘電路集成在一塊單一的芯片上,增強型的單片機集成了如A/D轉(zhuǎn)換器、PMW(脈寬調(diào)制電路)、WDT(看門狗)、有些單片機將LCD(液晶)驅(qū)動電路都集成在單一的芯片上,這樣單片機包含的單元電路就更多,功能就越強大。主流與多品種共存現(xiàn)在雖然單片機的品種繁多,各具特色,但仍以MCS-51為核心的單片機占主流,兼容其結(jié)構(gòu)和指令系統(tǒng)的有PHILIPS公司的產(chǎn)品,ATMEL公司的產(chǎn)品和中國臺灣的WinBond系列單片機。以8031為核心的單片機占據(jù)了半壁江山,在一定的時期內(nèi),這種情形將得以延續(xù),將不存在某個單片機一統(tǒng)天下的壟斷局面,走的是依存互補,相輔相成、共同發(fā)展的道路。2課題方案設(shè)計 2.1

5、系統(tǒng)總體設(shè)計要求 顯示效果使用16個LED;設(shè)置三個按鍵,K1-模式鍵,通過按鍵調(diào)整顯示結(jié)果,要求有8種模式;K2-加速鍵,提高走馬燈顯示效果的速度;K3-減速鍵,放慢走馬燈的顯示效果速度;8種模式通過一個共陽型數(shù)碼管顯示出來,比如,走馬燈的顯示效果為模式一時,數(shù)碼管顯示數(shù)字“1”。圖2-1 可控走馬燈系統(tǒng)結(jié)構(gòu)框圖 2.2 設(shè)計方案論證 根據(jù)設(shè)計內(nèi)容要求,提出了如下方案:本電路直接采用單片機配合數(shù)碼管,按鈕LED小燈,直接實現(xiàn)功能,主要取決于軟件程序的設(shè)計。采用的40腳、片內(nèi)帶8kB Flash ROM的STC89C52單片機作為控制核心,采用兩組高亮黃色二極管作為指示燈,采用四組一組一位LE

6、D數(shù)碼管作為模式轉(zhuǎn)化顯示器,LED顯示采用動態(tài)掃描方式,以節(jié)省端口數(shù)。按照這種結(jié)構(gòu)設(shè)計,單片機端口不需要外部擴展,資源剛好滿足要求。3.系統(tǒng)硬件設(shè)計 3.1 總體設(shè)計通過模式鍵改變單片機的工作模式,進行程序控制,一共八個模式。LED燈工作在不同的模式下有不同的現(xiàn)象。加速減速按鈕來控制燈泡的閃亮快慢。復位電路用來初始化芯片的狀態(tài)。對基于單片機的走馬燈控制系統(tǒng)進行設(shè)計。所設(shè)計的系統(tǒng)為:以MCS-51系列單片機作為控制核心。單片機執(zhí)行指令是在時鐘脈沖控制下進行的。因此單片機必須外接振蕩器構(gòu)成時鐘電路才能正常工作,另外,還應(yīng)在單片機的RES端外接電阻電容構(gòu)成復位電路,當單片機運行錯誤時可以給一個復位信

7、號使其復位。單片機對接口電路的控制是由軟件向單片機的I/O口來實現(xiàn)的。STC89C52單片機內(nèi)部有兩個定時/計數(shù)器,可以用其中的一個定時器來對時間進行計數(shù),而另一個可以對顯示器延時進行定時并通過中斷把相應(yīng)的數(shù)據(jù)通過I/O口送給顯示器顯示。同時通過對外部按鍵的狀態(tài)判斷來進行時間的調(diào)整。 RST P1口 P0口 STC89C51 P2口X1X2P3口 LED小燈1號到8號復位LED小燈9號到16號三個控制按鈕晶振晶振數(shù)碼管顯示圖3-1 總電路的原理框圖3.2 單片機運行的最小系統(tǒng)1電源;電源電路采用的是USB母口,提供+5V的電壓。其有四個引腳,1引腳接的是電源,4引腳接地。由于USB接口使用的是

8、開關(guān)電源,不是很穩(wěn)定的。接10UF的去耦電容起到緩沖的作用,可以得到穩(wěn)定的+5V電壓。把電流比做水流,水流很急,但去耦電容就像一條水溝,可以緩沖水流。電容的作用是蓄能的作用。圖 3-2-1電源電路2晶振;晶振為單片機提供時鐘信號。圖3-2-2 晶振電路3復位電路。單片機在啟動時都需要復位,以使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初態(tài)開始工作。89系列單片機的復位信號是從RST引腳輸入到芯片內(nèi)的施密特觸發(fā)器中的。當系統(tǒng)處于正常工作狀態(tài)時,且振蕩器穩(wěn)定后,如果RST引腳上有一個高電平并維持2個機器周期(24個振蕩周期)以上,則CPU就可以響應(yīng)并將系統(tǒng)復位。單片機系統(tǒng)的復位方式有:手動按鈕復位

9、和上電復位。 圖3-2-3 復位電路3.3 按鍵電路按鍵用獨立式按鍵表示。圖3-3按鍵模塊3.4 LED顯示模塊LED顯示模塊采用16個發(fā)光二極管并聯(lián)在電源上,其中一邊8個二極管接在P1口上,另外8個二極管接在P0口,上拉電阻與之分別并聯(lián)。 圖3-4 LED顯示模塊3.5數(shù)碼管顯示模塊發(fā)光二極管顯示管簡稱LED,具有結(jié)構(gòu)簡單、價格低廉、使用方便、耗電少、與單片機接口容易等特點,在單片機應(yīng)用系統(tǒng)使用非常普遍,一位共陽數(shù)碼管結(jié)構(gòu)如下。圖3-5-1一位共陽數(shù)碼管LED數(shù)碼顯示器由七段條形的發(fā)光二極管組成“ ”字形顯示字段,用一只圓形的發(fā)光二極管做小數(shù)點。LED數(shù)碼顯示器中,通常將各段發(fā)光二極管的陰極

10、或陽極連在一起做公共端,這樣可以使驅(qū)動電路簡單。共陽極數(shù)碼管是指發(fā)光二極管的陽極都與正極接在一起,引腳接輸出端,故低電平有效,其原理圖如下;圖3-5-2共陽極數(shù)碼管原理圖共陽極的管腳示意圖如下;圖3-5-3 共陽極管腳示意圖要使LED數(shù)碼管顯示數(shù)字,只要點亮相應(yīng)字段的發(fā)光二極管即可。如要顯示“1”,點亮b、c段;要顯示“0”,點亮a、b、c、d、e、f段。從圖中不難看出,對于共陽極數(shù)碼管,點亮字段則用低電平“0”來表示,所以低電平有效。這樣我們就可以把要顯示的數(shù)字與一串二進制代碼對應(yīng)起來,即對LED數(shù)碼顯示器實現(xiàn)編碼。由于這種編碼是與顯示器結(jié)構(gòu)相對應(yīng)的,因此不考慮小數(shù)點的編碼只有七位,常稱為七

11、段顯示碼;如果對小數(shù)點也進行編碼,則稱為八段顯示碼。常用字符的八段顯示碼如下圖所示;圖3-5-4常用字符的八段顯示碼分為共陰顯示碼和共陽顯示碼兩種。 圖3-5-5數(shù)碼管顯示模塊4.系統(tǒng)軟件的設(shè)計本課程設(shè)計是采用89C52單片機設(shè)計的可以調(diào)控的跑馬燈,通過keil進行c語言編程,通過protues進行軟件硬件仿真。本設(shè)計成果,主要通過按鍵開關(guān)對跑馬燈進行控制,包括跑馬燈模式的選擇、跑馬燈模式的顯示、跑馬燈速度變化控制。定時器中斷延時程序設(shè)計:采用delay()函數(shù)進行的延時是不精確的,主要有以下兩個原因。(1)該類型的delay()函數(shù)采用的延時是通過對變量進行遞減或遞增實現(xiàn)的,很難計算精確的延

12、時時間。(2)由于跑馬燈的狀態(tài)函數(shù)和延時函數(shù)是和主任務(wù)耦合到一起的,因此主任務(wù)的執(zhí)行時間要對延時的時間產(chǎn)生影響。假設(shè)一個跑馬燈的延時函數(shù)的延時時間是1s,但是由于主函數(shù)可能存在不同的分支,因此當主函數(shù)執(zhí)行不同分支程序時,實際的跑馬燈延時時間是不一樣的。流程圖如下圖4-1所示。開始程序程序主體條件判斷程序分支跑馬燈延時圖4-1流程圖采用中斷來進行跑馬燈的狀態(tài)更換有以下幾個優(yōu)點。(1)采用中斷函數(shù)進行延時,可以精確保證延時的精度,即有效地保證跑馬燈狀態(tài)更換的頻率;(2)采用中斷函數(shù)進行跑馬燈狀態(tài)的更換,在進行延時期間,并不占用單片機資源,單片機可以執(zhí)行其他的任務(wù)。5軟硬件聯(lián)調(diào)及調(diào)試結(jié)果 5.1軟硬

13、件調(diào)試中出現(xiàn)的問題及解決措施 硬件調(diào)試 單片機基礎(chǔ)電路包括電源、單片機、外部時鐘震蕩電路、復位電路和外部接口電路。調(diào)試過程需要注意以下幾點: (1). 檢查電源是否完好。 (2). 單片機電源要連接正確,并且保證STC89C51的31號引腳接高電平。STC89C51的31號引腳是外部程序存儲器選擇信號端,當該引腳為高電平時,單片機會一直從片內(nèi)程序存儲器內(nèi)取指令。 (3). 如果使用P0口做I/O口,要接上拉電阻。 (4). 使用萬用表排查電路中是否存在斷路或者短路情況。筆者在制作外部接口電路時使用的是排針,焊接時容易出現(xiàn)管腳之間短路,所以在上電以前必須先排查電路。(5). 編輯一個簡單程序,上

14、電運行,檢查單片機是否正常工作,復位電路是否正確。軟件調(diào)試軟件調(diào)試相對比較簡單,但是要掌握仿真軟件的用法,首先在仿真軟件(Proteus)上建立仿真模型(電路圖),然后用Keil C編程序和Proteus進行聯(lián)機仿真調(diào)試,分別對顯示、按鍵、時鐘等各個部分進行調(diào)試,檢測電路原理圖的正確與否。5.2 實物圖 圖5-2-1 實物圖正面圖5-2-2 實物圖反面5.3 調(diào)試結(jié)果 可控走馬燈7種顯示模式如下,效果理想。圖5-3 調(diào)試結(jié)果圖結(jié)束語:通過學習單片機這門課程設(shè)計,不僅了解了STC89c52的功能、還加強了單片機的理論知識得了解,而且進一步接觸并了解到了軟硬件的結(jié)合這個實踐問題。不僅如此,此次設(shè)計

15、也加強了我們動手培養(yǎng)了我的動手能力及分析思考和解決問題的能力,更令我的創(chuàng)造性思維得到拓展。本次課程設(shè)計,我們有以下幾點切身體會:1.要注意細節(jié)。細節(jié)決定成敗,這句話在這次課題中不僅一次得到了印證,特別是小系統(tǒng)制作過程中,一點點的錯誤就會使你整個電路板不能運行。因此我們不僅僅要有整體意識,也要注意細節(jié),不要因一個關(guān)鍵地方的一個細節(jié)而導致滿盤皆輸。2.要與同學們互相溝通,交流 。第一次做單片機課程設(shè)計,難免會遇到各種各樣的問題,因此我們遇到問題,就要積極地與同學交流,必要時向老師請教。 遇到的問題 1、剛著手此設(shè)計時,不知道如何下手,但經(jīng)過老師的指導及自己查閱相關(guān)的資料,逐漸有了自己的設(shè)計想法,制

16、定出了系統(tǒng)的結(jié)構(gòu)框圖。 2、軟件設(shè)計是耗時最長的一項,涉及到整個系統(tǒng)工作的穩(wěn)定性。我們首先編寫總體框架,然后做簡單的測試,保證能正常運行,接下來編寫單個的子狀態(tài)程序,寫完一個測試一個,這樣保證了最后調(diào)試的成功率。在編寫程序過程中需要很好的編寫習慣,結(jié)構(gòu)要明顯,標明注釋,隨時存檔,程序盡量簡約。另外要兼顧到硬件結(jié)構(gòu),盡量使得硬件結(jié)構(gòu)簡單,所用資源更少。3、焊接時,由于對焊接的不熟練,經(jīng)常會使兩條電錫焊線不經(jīng)意間連接在一起,所以要多用萬用電表測試,一個模塊一個模塊的焊接,在進行測試,這樣出錯的概率會小很多,剛開始時就是從頭焊到尾,結(jié)果錯了卻不知道從何檢查起。所以焊接時應(yīng)該一個子模塊一個子模塊的焊接

17、,并且布線要簡單明了,盡量不要用飛線,這樣才能夠保證實物的成功率。否則到了后期,很難檢測出實物的問題。4、第一次做出實物時,發(fā)現(xiàn)流水燈全亮,卻沒有閃爍,這與軟件仿真的結(jié)果大不同。于是,我找來了一塊C52試驗開發(fā)板,用來調(diào)試器件。希望以此發(fā)現(xiàn)問題。在C52試驗開發(fā)板上我發(fā)現(xiàn)必須加晶振才能夠正常工作,于是,在電路板上加上了晶振,最后,實現(xiàn)了電路板的正常工作。 5、實物做出來,驗證成功后。過了幾天,我在裝上芯片發(fā)現(xiàn)現(xiàn)實上出現(xiàn)了一個小問題,剛開始時,我以為是布線太密了,有焊錫不經(jīng)意間連在一起了,可是用萬用電表測試后,卻沒有發(fā)現(xiàn)焊錫連在一起的問題。我百思不得其解,最后我想到實物成功時,底座搖桿對芯片的影

18、響,認為是底座出現(xiàn)來了問題。經(jīng)調(diào)試,確實是底座的問題,底座不是很緊,芯片的引腳不能很好的了解。參考文獻:【1】肖洪兵. 跟我學用單片機. 北京:北京航空航天大學出版社,2002.8 【2】單片機C語言程序設(shè)計實訓 100 例基于 8051+Proteus仿真【3】趙曉安. MCS-51單片機原理及應(yīng)用. 天津:天津大學出版社,2001.3 【4】李廣第 單片機基礎(chǔ) 第1版北京:北京航空航天大學出版社,1999 【5】徐惠民、安德寧 單片微型計算機原理接口與應(yīng)用 第1版 北京:北京郵電大學出版社,1996 附錄:附錄1 : 可以調(diào)控的走馬燈原理圖圖6-1可以調(diào)控的走馬燈原理圖附錄2 :可以調(diào)控的

19、走馬燈PCB圖 圖6-2可以調(diào)控的走馬燈PCB圖附錄3:Ptoteuse 仿真圖圖6-3 Ptoteuse 仿真圖附錄4:C語言程序清單:#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar ModeNo;uint Speed;uchar tCount=0;uchar Idx;uchar mb_Count=0;bit Dirtect=1;uchar code DSY_CODE=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90;uint c

20、ode sTable=0,1,3,5,7,9,15,30,50,100,200,230,280,300,350;void Delay(uint x) uchar i;while (x-) for(i=0;i<120;i+);uchar GetKey() uchar K;if(P2=0xFF) return 0;Delay(10);switch(P2) case 0xFE: K=1; break; case 0xFD: K=2; break; case 0xFB: K=3; break;default: K=0;while (P2!=0xFF);return K;void Led_Demo

21、(uint Led16) P1=(uchar)(Led16 & 0x00FF); P0=(uchar)(Led16 >>8);void T0_TNT() interrupt 1 if (+tCount < Speed) return;tCount=0;switch (ModeNo) case 0: Led_Demo(0x0001 << mb_Count);break; case 1: Led_Demo(0x8000 >> mb_Count);break; case 2: if(Dirtect) Led_Demo(0x000F <<

22、mb_Count); else Led_Demo(0xF000 >> mb_Count); if(mb_Count=15) Dirtect =!Dirtect; break; case 3: if(Dirtect) Led_Demo(0x000F << mb_Count); else Led_Demo(0xF000 >> mb_Count); if(mb_Count=15) Dirtect =!Dirtect; break; case 4: if(Dirtect) Led_Demo(0x003F << mb_Count); else Led_De

23、mo(0xFC00 >> mb_Count); if(mb_Count=15) Dirtect =!Dirtect; break; case 5: if(Dirtect) Led_Demo(0x0001 << mb_Count); else Led_Demo(0x8000 >> mb_Count); if(mb_Count=15) Dirtect =!Dirtect; break; case 6: if(Dirtect) Led_Demo(0x0001 << mb_Count); else Led_Demo(0x8000 >> mb_Count

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論