基于C51的流水燈設(shè)計課程設(shè)計報告_第1頁
基于C51的流水燈設(shè)計課程設(shè)計報告_第2頁
基于C51的流水燈設(shè)計課程設(shè)計報告_第3頁
基于C51的流水燈設(shè)計課程設(shè)計報告_第4頁
基于C51的流水燈設(shè)計課程設(shè)計報告_第5頁
免費預(yù)覽已結(jié)束,剩余8頁可下載查看

下載本文檔

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

文檔簡介

1、學(xué)號2013-2014學(xué)年 第二學(xué)期基于單板機的應(yīng)用系統(tǒng)課程設(shè)計報告題目:基于C51的流水燈設(shè)計專業(yè):計算機科學(xué)與技術(shù)班級 :10 (2)班姓名:指導(dǎo)教師:馮 康成績 :計算機與信息工程系年 月日Word資料基于C51的流水燈設(shè)計1設(shè)計內(nèi)容1.1 設(shè)計用途當(dāng)今的社會是一個新技術(shù)層出不窮的時代, 科技迅速發(fā)展,在電子領(lǐng) 域的發(fā)展更是迅速,同時也在影響著我們的生活。單片機控制一直是電子 領(lǐng)域中比較重要的一個方向,而流水燈就是單片機控制在日常生活中常見 的一種應(yīng)用。隨著人民生活水平的提高,流水燈在現(xiàn)實生活中所起的作用 越來越重要。例如:在人流擁擠繁忙的交通路段,閃爍著的流水交通燈, 提醒著我們要遵紀(jì)

2、交通規(guī)則,在霓虹閃爍的繁華大街上,閃爍的流水燈無 不吸引過路人的眼球,甚至在一些大型商場大廈的自動門上都裝有自動流 水燈,告訴人們的時間和日期。1.2 設(shè)計內(nèi)容流水燈就是一組燈,在控制系統(tǒng)的控制下按照程序設(shè)定的順序和時間 來發(fā)亮和熄滅,有這樣就能形成一定的視覺效果。本流水燈設(shè)計實際上就 是一個帶有八個發(fā)光二極管的單片機最小應(yīng)用系統(tǒng),即為由發(fā)光二極管、 晶振、復(fù)位、電源等電子原器件構(gòu)成的電路和控制單片機的程序組成的流 水燈控制系統(tǒng)。通過編寫程序可以做出從左向右, 從右向左,從中間向兩 邊,從兩邊向中間等等美輪美奐的效果。本設(shè)計涉及到了STC89C5彈片機,所有的設(shè)計都是基于該單片機開發(fā)的。 本設(shè)

3、計主要設(shè)計的是從左到右 依次點亮的流水燈設(shè)計,要實現(xiàn)這種發(fā)光效果,要將幾個發(fā)光二極管依次 點亮、熄滅,發(fā)光二極管便會一亮一滅地成為流水燈了。 是最實用也是比 Word資料較簡潔的方法。2原理及分析如圖1所示即為流水燈設(shè)計的硬件原理圖 硬件原理:圖1流水燈硬件原理圖從圖1中可以看出,發(fā)光二極管LED的所有陽極連在一起,屬于共陽極 的連接方法,此時LED低電平有效,即如果要讓接在P10 口的LED1亮起來, 那么只要把P10口的電平變?yōu)榈碗娖骄涂梢粤耍?相反,如果要接在P10 口的 LED1熄滅,就要把P10 口的電平變?yōu)楦唠娖剑煌?,接?P11P17 口的其 他7個LED的點亮和熄滅的方法同L

4、ED1因此,要實現(xiàn)流水燈功能,我們 只要將發(fā)光二極管LEDkLED8依次點亮、熄滅,8只LED燈便會一亮一暗 的做流水燈了。在此我們還應(yīng)注意一點,由于人眼的視覺暫留效應(yīng)以及單片 機執(zhí)行每條指令的時間很短,我們在控制發(fā)光二極管亮滅的時候應(yīng)該適當(dāng)延 時一段時間,否則我們就看不到“流水”效果了。實際開發(fā)板的流水燈布局 如圖2所示。圖2實際開發(fā)板的流水燈布局3設(shè)計過程和程序代碼3.1 總設(shè)計框圖:總設(shè)計框圖如圖3所示3.2 LE疏水效果設(shè)計單片機I/O的應(yīng)用最典型的是通過I/O 口與LED勾成顯示電路。利用 單只LED合排列成“ 1字型,圖中共用八個LED從上到下依次顯示采 用動態(tài)顯示。12HHZ22

5、pFXISW101XTAL2RST29 一1TXTAL1PSEN ALE EAP115XJ1_O 1 7匚12 XM-g3 、PfF*P 1 J3H2P 1.1/T2EKP CP 1 3Pnj3.DO pn.ijftDi PIJ2幽 g PU J煙 口3 P 口鼻出!D* P口石唱口S P 口后眄IDE PQ-TJfiDTP2IWASP2 ms 口P2 1P2 .4-12P2與加P7J5加f *P2.TJCM5P3Q 耐口 F3.inXD P3 ZlEFTn P3 1NT1P3.4JTOP35mF3J&RP3.7JRD3.3 按鍵控制按鍵處理設(shè)置為:初始狀態(tài),當(dāng)按鍵 K2沒有按下時,標(biāo)

6、志位為1, 8個LED燈按 從上到下的順序依次亮滅;當(dāng)K2按下時,標(biāo)志位取反,8個LED首先按照從上到下的 順序依次亮滅,然后按照從下到上再從上到下的順序來回亮滅。當(dāng) K2再次被按下時, 標(biāo)志位再次取反,回到初始狀態(tài),如此循環(huán), K1是復(fù)位鍵。3.4 復(fù)位電路按鍵電平復(fù)位,分壓復(fù)位Word資料C122pf .C2R110k 1C3ufIJ123- 3Q- 31>XTAL1POO/ADOPO.1/AD1P0 2/AD2XTAL2P0.3JAD3PO.47AD4POS/AD5PO6JAD6RSTPO.7/AD7PNSASP2.1/A9P2 2/A1OPSENP23/A11ALEE. iiP2

7、.4M.12EAP2.5人13P2.S/A14P2.7/A151918口 Ui- 12M .3.5程序控制流程圖程序控制流程圖如圖10所圖103.6 程序代碼單片機的應(yīng)用系統(tǒng)由硬件和軟件組成, 上述硬件原理圖搭建完成上電之 后,我們還不能看到流水燈循環(huán)點亮的現(xiàn)象, 我們還需要告訴單片機怎么來 進行工作,即編寫程序控制單片機相應(yīng)管腳電平的高低變化,來實現(xiàn)發(fā)光二極管的一亮一滅。軟件編程是單片機應(yīng)用系統(tǒng)中的一個重要的組成部分,是單片機學(xué)習(xí)的重點和難點。流水燈”的流向方式有很多種,有從"上向下流",有"下向上流",也有 "兩邊向內(nèi)流"、&qu

8、ot;內(nèi)部向外流"好多方法都可以實現(xiàn)這些功能,可是某些編程方法比較繁瑣,本次課程設(shè)計的這種方法是比較常用,比較實用,也 是比較簡潔的方法,此方法實現(xiàn)的是發(fā)光二極管從上到下依次點亮,然后由 按鍵控制流水燈有沒有循環(huán)效果??刂?個發(fā)光二極管時,可以對 P1 口直接賦值,8個LED用2位16進制就可以表示其狀態(tài),例如讓第一個燈亮, 其他燈滅,用二進制表示為1111 1110B,即16進制的0xfe。同理第二個燈 亮則有1111 1101B,即0xfd,依此類推實現(xiàn)上述功能的程序代碼如下:源代碼:#include<reg52.h> /52單片機頭文件,一般不要改動,里面包含特殊

9、功能寄存器的定義#include <intrins.h> /為下面使用其內(nèi)部函數(shù)循環(huán)左移和循環(huán)右移添加的頭文件#define uchar unsigned char / 將 unsigned char 定義為 uchar, 簡 化輸寫。提高編程速度#define uint unsigned int / 將 unsigned char 定義為 uint , 簡化輸 寫。提高編程速度sbit k2=P3八0;/按鍵k2,連接在P3.0上uchar led;uint i,j;/*延時子程序*/void delayms(uint time)while(time-)for(j=0;j<

10、110;j+); 大約為1ms,但不是很精確/*主程序*/void main()char flag=1; /用于標(biāo)志按鍵,按鍵每按下一次取反while(1)/死循環(huán),程序永遠在循環(huán)里面運行。if(k2=0)flag=flag;delayms(200); 消除抖動,盡量避免一次按鍵當(dāng)成幾次按鍵if(flag=0)led=0xfe;for(i=0;i<8;i+)P1=led ;led=_crol_(led,1); / 將 led 循環(huán)左移 1 位delayms(500); /延時一會才能看到流水效果,大約500msif(flag=1)led=0xfe;for(i=0;i<8;i+)P1

11、=led;led=_crol_(led,1); /循環(huán)左移delayms(500);for(i=0;i<8;i+)P1=led; led=_cror_(led,1); / 循環(huán)右移 delayms(500); 編譯及下載過程接下來,我們將上述程序編譯,并用相應(yīng)軟件將.hex文件燒寫到單片機芯片中,在使用軟件燒寫.hex文件時注意單片機的選型及其他一些問題, 燒寫后的單片機電路板上可以看到 LED的"流水"效果,但源程序看起來更加 簡潔,直觀。其實STC89C52I片機有的指令常用,有的指令不常用,只要 遵守語法規(guī)則,可以用這些指令 組合”成我們想象到的很多程序。當(dāng)然,

12、有 時一條指令可以替代很多條指令,這樣會使程序簡潔,程序代碼減少,在編 寫較大程序時可以讓單片機的存儲器放得下你需要的代碼,這也是單片機高 手所追求的程序簡潔高效4設(shè)計結(jié)果與分析4.1 設(shè)計結(jié)果打開安裝好的Uvison 4.0軟件,關(guān)閉之前打開的所有工程,重新新 建一個工程,并選擇Atmel公司的AT89C52K片,保存在相應(yīng)位置,然后 新建一個.C文件,并將.C文件添加進剛才新建的工程。再將上述 C語言 代碼輸入該文件,單擊“編譯”按鈕,過程中出現(xiàn)一些小錯誤,經(jīng)過我仔細檢查進行反復(fù)調(diào)試,最終將程序編譯成功。軟件編寫成功之后,輸出.hex 文件。然后將單片機用連在電腦上,利用單片機專門的燒寫程

13、序通過串口 將.hex文件正確燒寫進單片機打開單片機電源即可看到流水燈效果。4.2 設(shè)計結(jié)果分析該設(shè)計可以能看到單一方向的流水燈和循環(huán)流水燈的效果,可是也有待改進之處,例如:延時的精確性方面,可以考慮用定時器對延時的精 確性進行改進,而且流水燈是單一的顏色和亮度,需要在發(fā)光二極管顏色 的種類以及顏色的明暗的設(shè)置上再做改進。本程序?qū)崿F(xiàn)的功能比較簡單,其實我們可以在此基礎(chǔ)上擴展更復(fù)雜的 流水燈控制。比如再增加一排流水燈,同時顯示不同的流水花樣,控制流 水燈顯示數(shù)字或圖案,以及可以通過流水燈做搖搖棒等等。用STC89C5彈片機設(shè)計的該流水燈具有體積小、功能強、成本低、 應(yīng)用面廣等優(yōu)點,可以說,智能控制與自動控制的核心即單片機。 單片機 的最明顯的優(yōu)勢,就是便于植入到各種儀器,設(shè)備中。通過這次單片機課程設(shè)計,我不僅加深了對單片機理論知識的理解, 而且能將單片機理論知識很好地應(yīng)用到實踐中去,使理論與實際相結(jié)合, 使我的理論知識得到了鞏固,在查資料翻閱資料的過程中也豐富了我的知 識閱歷。與此同時,也學(xué)會了之前沒怎么接觸的硬件焊接工作,對構(gòu)成單片機最小系統(tǒng)的一些元器件也有了進一步的認識。在這次課程設(shè)計中我看到了自己眼高手低的缺點, 對一些基礎(chǔ)知識掌 握得還不是很好,而且以前所學(xué)的知識

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論