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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

19、走馬燈PCB圖 圖6-2可以調控的走馬燈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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論