基于單片機(jī)AT89C51的花樣跑馬燈設(shè)計報告_第1頁
基于單片機(jī)AT89C51的花樣跑馬燈設(shè)計報告_第2頁
基于單片機(jī)AT89C51的花樣跑馬燈設(shè)計報告_第3頁
基于單片機(jī)AT89C51的花樣跑馬燈設(shè)計報告_第4頁
基于單片機(jī)AT89C51的花樣跑馬燈設(shè)計報告_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于AT89C51的花樣跑馬燈一 課設(shè)簡介1-1. 課設(shè)目的 為了進(jìn)一步鞏固學(xué)習(xí)的理論知識,增強(qiáng)學(xué)生對所學(xué)知識的實際應(yīng)用能力和運用所學(xué)的知識解決實際問題的能力,開始為期兩周的課程設(shè)計。通過設(shè)計使學(xué)生在鞏固所學(xué)知識的基礎(chǔ)之上具有初步的單片機(jī)系統(tǒng)設(shè)計與應(yīng)用能力。1、通過本設(shè)計,使學(xué)生綜合運用單片機(jī)技術(shù)原理與應(yīng)用、DSP原理與應(yīng)用C語言程序設(shè)計以及數(shù)字電路、模擬電路等課程的內(nèi)容,為以后從事電子產(chǎn)品設(shè)計、軟件編程、系統(tǒng)控制等工作奠定一定的基礎(chǔ)。2、學(xué)會使用KEIL C和PROTEUS等軟件,用C語言或匯編語言編寫一個較完整的實用程序,并仿真運行,保證設(shè)計的正確性。3、了解單片機(jī)接口應(yīng)用開發(fā)的全過程:分

2、析需求、設(shè)計原理圖、選用元器件、布線、編程、調(diào)試、撰寫報告等。1-2. 課設(shè)內(nèi)容利用單片機(jī)的自動控制功能,設(shè)計出相應(yīng)不同的電路,可以實現(xiàn)IED燈不同模式的顯示效果。本課程是利用AT80C51單片機(jī)的自動控制功能,并結(jié)合其它電子元器件以及軟件實現(xiàn)的跑馬燈,實現(xiàn)不同種類的LED燈顯示效果。二硬件電路設(shè)計2.1AT89C51簡介及接口說明AT89C51是一種帶4K字節(jié)FLASH存儲器(FPEROMFlash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存

3、儲器的單片機(jī)。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。AT89C51引腳排列圖由于工藝及標(biāo)準(zhǔn)化等原因,芯片的引腳數(shù)量是有限的,但單片機(jī)為實現(xiàn)控制所需要的信號數(shù)目卻遠(yuǎn)遠(yuǎn)超過其引腳數(shù)目。為解決這一矛盾,單片機(jī)的某些信號引腳被賦以雙重功能。1)電源及電源復(fù)位引腳:(1)VCC(40腳):正

4、常操作時接+5V直流電源。(2)VSS (20腳):接地端。(3)RST/VPD(9腳):復(fù)位信號輸入端。在該引腳上輸入一定時間(約兩個機(jī)器周期)的高電平將使單片機(jī)復(fù)位。該引腳的第二功能是VPD,即備用電源輸入端。當(dāng)主電源發(fā)生故障,降低到低電平規(guī)定值時,可將+5V備用電源自動接入VPD端,以保護(hù)片內(nèi)RAM中的信息不丟失,使復(fù)電后能繼續(xù)正常運行。(4)/VPP(31腳):訪問程序存儲器控制信號/編程電源輸入。當(dāng)保持高電平時,訪問內(nèi)部程序存儲器,訪問地址范圍在04KB內(nèi);當(dāng)PC(程序計數(shù)器)值超過0FFFH,即訪問地址超出4KB時,將自動轉(zhuǎn)向執(zhí)行外部程序存儲器內(nèi)的程序;當(dāng)保持低電平時,不管單片機(jī)內(nèi)

5、部是否有程序存儲器,則只訪問外部程序存儲器(從0000H地址開始)。由此可見,對片內(nèi)有可用程序存儲器的單片機(jī)而言,端應(yīng)接高電平,而對片內(nèi)無程序存儲器的單片機(jī),可將接地。對于EPROM型單片機(jī),在EPROM編程期間,此引腳用于施加21V的編程電源(VPP)。2)時鐘振蕩電路引腳XTAL1和XTAL2:(1)XTAL1(19腳):外接石英晶體和微調(diào)電容引腳1。它是片內(nèi)振蕩電路反向放大器的輸入端。采用外部振蕩器時此引腳接地。(2)XTAL2(18腳):外接石英晶體和微調(diào)電容引腳2。它是片內(nèi)振蕩電路反向放大器的輸出端。采用外部振蕩器時此引腳為外部振蕩信號輸入端。3) (30腳):低8位地址鎖存控制信號

6、/編程脈沖輸入。在系統(tǒng)擴(kuò)展時,ALE用于把P0口輸出的低8位地址鎖存起來,以實現(xiàn)低8位地址和數(shù)據(jù)的隔離。在訪問外部程序存儲器期間,ALE信號兩次有效;而在訪問外部數(shù)據(jù)存儲器期間,ALE信號一次有效。對于EPROM型單片機(jī),在EPROM編程期間,此引腳用于輸入編程脈沖。4)(29腳):外部程序存儲器的讀選通信號輸出端,低電平有效。在從外部程序存儲器取指令(或常數(shù))期間,此引腳定時輸出負(fù)脈沖作為讀取外部程序存儲器的信號,每個機(jī)器周期兩次有效,此時地址總線上送出的地址為外部程序存儲器地址;在此期間,如果訪問外部數(shù)據(jù)存儲器和內(nèi)部程序存儲器,不會產(chǎn)生信號。5)并行雙向輸入/輸出(I/O)口引腳:(1)P

7、0口的P0.0P0.7引腳(3932腳):8位通用輸入/輸出端口和片外8 位數(shù)據(jù)/低8位地址復(fù)用總線端口。(2)P1口的P1.0P1.7引腳(18腳):8位通用輸入/輸出端口。(3)P2口的P2.0P2.7引腳(2821腳):8位通用輸入/輸出端口和片外高8位地址總線端口。(4)P3口的P3.0P3.7引腳(1017腳):8位通用輸入/輸出端口,具有第二功能。2.2硬件原理框圖X1X2 P0 AT89C51RST P21-8紅色LED9-16綠色LED晶振2.3電路模塊1)振蕩電路晶振為單片機(jī)提供時鐘信號。設(shè)置為12MHz。2)跑馬燈顯示電路P0口連接1-8號紅色LED燈,根據(jù)輸出的高低電平控

8、制燈的亮滅;P2口接9-16號綠色LED燈。三軟件電路設(shè)計本課程設(shè)計是采用89C51單片機(jī)設(shè)計的花樣跑馬燈,通過keil進(jìn)行c語言編程,通過protues進(jìn)行軟件硬件仿真。仿真時可以觀察到不同方式的跑馬燈閃爍。開始程序程序主體條件判斷跑馬燈延時程序分支四C語言源程序 #include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar code Pattern_P0=0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff

9、,0xff,0xff, 0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff,0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff, 0xaa,0x55,0x18,0xff,0xf0,0x0f,0x00,0xff,0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x3f,0x7f, 0x7f,0x3f,0x1f,0x8f,0xc7,0xe3,0xf1,0xf8,0xff,0x00,0x00,0xff,0xff,0x0f,0xf0,0xff, 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,

10、0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe, 0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe, 0x00,0xff,0x00,0xff,0

11、x00,0xff,0x00,0xff;uchar code Pattern_P2=0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0xff, 0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff,0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff, 0xaa,0x55,0x18,0xff,0xf0,0x0f,0x00,0xff,0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x3f,0x7f, 0x7f,0x3f,0x1f,0

12、x8f,0xc7,0xe3,0xf1,0xf8,0xff,0x00,0x00,0xff,0xff,0x0f,0xf0,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f, 0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x8

13、0,0x00, 0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, 0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff;/延時void DelayMS(uint x) uchar i; while(x-) for(i=0;i<120;i+); /主程序void main() uchar i; while(1) /從數(shù)組中讀取數(shù)據(jù)送至P0和P2口顯示 for(i=0;i<136;i+) P0=Pattern_P0i; P2=Pattern_P2i;

14、 DelayMS(100); 五仿真過程綜述使用proteus isis進(jìn)行硬件連接:AT89C51的X1,X2連接振蕩電路作為時鐘信號,P0口分別連接LED通過220歐的電阻到高電平,P2口分別連接綠色LED通過220歐電阻到高電平。在RST上輸入一定時間(約兩個機(jī)器周期)的高電平將使單片機(jī)復(fù)位。EA引腳連接低電平,實現(xiàn)編程。硬件連接圖跑馬燈動作設(shè)計依次為:兩盞燈從上向下,跑兩次;中間向兩邊移動再收攏;中間向兩邊擴(kuò)散再收攏;單數(shù)編號燈跳轉(zhuǎn)雙數(shù)編號燈;上下各亮三盞燈;上邊亮四盞燈跳轉(zhuǎn)下邊四盞燈;三盞亮燈上下移動;全燈閃爍一次;下邊亮四盞燈跳轉(zhuǎn)上邊四盞燈;一盞燈上下移動;一盞燈向下擴(kuò)展全燈亮;全

15、燈閃爍幾次;過程重復(fù)。綠燈和紅燈閃爍情況相同,還可以根據(jù)創(chuàng)意改變LED燈的排序和閃爍花樣,只要改變定義數(shù)組里的值,就能實現(xiàn)更多的花樣跑馬效果。六設(shè)計中的難點定時器中斷延時程序設(shè)計:采用DelayMS ()函數(shù)進(jìn)行的延時是不精確的,主要有以下兩個原因。(1)該類型的DelayMS ()函數(shù)采用的延時是通過對變量進(jìn)行遞減或遞增實現(xiàn)的,很難計算精確的延時時間。(2)由于跑馬燈的狀態(tài)函數(shù)和延時函數(shù)是和主任務(wù)耦合到一起的,因此主任務(wù)的執(zhí)行時間要對延時的時間產(chǎn)生影響。假設(shè)一個跑馬燈的延時函數(shù)的延時時間是1s,但是由于主函數(shù)可能存在不同的分支,因此當(dāng)主函數(shù)執(zhí)行不同分支程序時,實際的跑馬燈延時時間是不一樣的。

16、七總結(jié) 本次課程設(shè)計耗時一周,通過硬件設(shè)計和軟件編程、仿真的方式加深了對單片機(jī)技術(shù)原理與應(yīng)用、DSP原理與應(yīng)用C語言程序設(shè)計以及數(shù)字電路、模擬電路等課程的內(nèi)容的理解,以及綜合運用能力,增強(qiáng)了自己的動手能力和分析能力。課程設(shè)計剛剛開始對軟件不太熟悉,通過網(wǎng)上搜索資料學(xué)習(xí),以及同學(xué)之間相互討論輔助,很快學(xué)會軟件的運用,并開始著手下一步選擇課題以及課題分析,由于同學(xué)們選擇的課題不盡相同,就開始分頭查找資料,途徑包括網(wǎng)絡(luò),書本等多種方式,結(jié)合自己的理解程度最終確定自己的設(shè)計方案,進(jìn)行下一步硬件連接,在連接過程中,由于連接到總線的支路沒有標(biāo)號導(dǎo)致仿真失敗,可見細(xì)節(jié)決定成??;硬件連接完成后,使用Keil

17、uVision3進(jìn)行軟件編程,檢查無錯后生成hex文件進(jìn)行仿真,在若干改進(jìn)后,成功實現(xiàn)與期望相近的的仿真結(jié)果。本次課程設(shè)計完成后,我有以下幾點體會:1.要注意細(xì)節(jié)。細(xì)節(jié)決定成敗,這句話在這次課題中不僅一次得到了印證,小到一個引腳的連接,一點點的錯誤都會使整個電路無法運行,因此我們不僅僅要有整體意識,也要注意細(xì)節(jié),不要因為一個小小的細(xì)節(jié)而導(dǎo)致滿盤皆輸。2.要與同學(xué)們互相溝通、交流 。設(shè)計過程中難免會遇到各種各樣的問題,但每個同學(xué)遇到的問題不盡相同,可以通過相互討論相互幫助來解決彼此的問題。軟件設(shè)計是耗時最長的一項,涉及到整個系統(tǒng)工作的穩(wěn)定性。首先要編寫總體框架,然后做簡單的測試,保證能正常運行,接下來編寫單個的子狀態(tài)程序,寫完一個測試一個,這樣保證了最后調(diào)試的成功率。在編寫程序過程中需要很好的編寫習(xí)慣,結(jié)構(gòu)要明顯,標(biāo)明注釋,隨時存檔,程序盡量簡約??傊ㄟ^本次課設(shè),使我在單片機(jī)的基本原理、單片機(jī)應(yīng)用系統(tǒng)開發(fā)過程,以及在常用編程設(shè)計思路技巧的掌握方面都能向前邁了

溫馨提示

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

評論

0/150

提交評論