基于C51的流水燈設(shè)計(jì)課程設(shè)計(jì)_第1頁
基于C51的流水燈設(shè)計(jì)課程設(shè)計(jì)_第2頁
基于C51的流水燈設(shè)計(jì)課程設(shè)計(jì)_第3頁
基于C51的流水燈設(shè)計(jì)課程設(shè)計(jì)_第4頁
基于C51的流水燈設(shè)計(jì)課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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

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

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

4、熄滅,8只LED燈便會一亮一暗的做流水燈了。在此我們還應(yīng)注意一點(diǎn),由于人眼的視覺暫留效應(yīng)以及單片機(jī)執(zhí)行每條指令的時(shí)間很短,我們在控制發(fā)光二極管亮滅的時(shí)候應(yīng)該適當(dāng)延時(shí)一段時(shí)間,否則我們就看不到“流水”效果了。實(shí)際開發(fā)板的流水燈布局如圖2 所示。圖2實(shí)際開發(fā)板的流水燈布局3 設(shè)計(jì)過程和程序代碼3.1 總設(shè)計(jì)框圖:總設(shè)計(jì)框圖如圖3所示STC89C52單片機(jī)電源驅(qū)動按鍵控制流水燈顯示時(shí)鐘電路復(fù)位電路圖33.2 LED流水效果設(shè)計(jì)單片機(jī)I/O的應(yīng)用最典型的是通過I/O口與LED構(gòu)成顯示電路。利用單只LED組合排列成“1字型,圖中共用八個(gè)LED,從上到下依次顯示采用動態(tài)顯示。3.3 按鍵控制按鍵處理設(shè)置為

5、:初始狀態(tài),當(dāng)按鍵K2沒有按下時(shí),標(biāo)志位為1,8個(gè)LED燈按從上到下的順序依次亮滅;當(dāng)K2按下時(shí),標(biāo)志位取反,8個(gè)LED首先按照從上到下的順序依次亮滅,然后按照從下到上再從上到下的順序來回亮滅。當(dāng)K2再次被按下時(shí),標(biāo)志位再次取反,回到初始狀態(tài),如此循環(huán), K1是復(fù)位鍵。3.4 復(fù)位電路 按鍵電平復(fù)位,分壓復(fù)位。3.5 程序控制流程圖程序控制流程圖如圖10所LED燈從上至下亮滅,再從下至上循環(huán)亮滅否flag=0是主程序運(yùn)行LED燈一直從上到下亮滅開始流水燈顯示K2被按下flag=flag,消抖是否圖103.6 程序代碼單片機(jī)的應(yīng)用系統(tǒng)由硬件和軟件組成,上述硬件原理圖搭建完成上電之后,我們還不能看

6、到流水燈循環(huán)點(diǎn)亮的現(xiàn)象,我們還需要告訴單片機(jī)怎么來進(jìn)行工作,即編寫程序控制單片機(jī)相應(yīng)管腳電平的高低變化,來實(shí)現(xiàn)發(fā)光二極管的一亮一滅。軟件編程是單片機(jī)應(yīng)用系統(tǒng)中的一個(gè)重要的組成部分,是單片機(jī)學(xué)習(xí)的重點(diǎn)和難點(diǎn)。“流水燈”的流向方式有很多種,有從上向下流,有下向上流,也有兩邊向內(nèi)流、內(nèi)部向外流.好多方法都可以實(shí)現(xiàn)這些功能,可是某些編程方法比較繁瑣,本次課程設(shè)計(jì)的這種方法是比較常用,比較實(shí)用,也是比較簡潔的方法,此方法實(shí)現(xiàn)的是發(fā)光二極管從上到下依次點(diǎn)亮,然后由按鍵控制流水燈有沒有循環(huán)效果??刂?個(gè)發(fā)光二極管時(shí),可以對P1口直接賦值,8個(gè)LED用2位16進(jìn)制就可以表示其狀態(tài),例如讓第一個(gè)燈亮,其他燈滅,

7、用二進(jìn)制表示為1111 1110B,即16進(jìn)制的0xfe。同理第二個(gè)燈亮則有1111 1101B,即0xfd,依此類推實(shí)現(xiàn)上述功能的程序代碼如下:源代碼:#include /52單片機(jī)頭文件,一般不要改動,里面包含特殊功能寄存器的定義#include /為下面使用其內(nèi)部函數(shù)循環(huán)左移和循環(huán)右移添加的頭文件#define uchar unsigned char /將unsigned char定義為uchar,簡化輸寫。提高編程速度 #define uint unsigned int /將unsigned char定義為uint,簡化輸寫。提高編程速度sbit k2=P30; /按鍵k2,連接在P3

8、.0上uchar led;uint i,j;/*延時(shí)子程序*/void delayms(uint time)while(time-)for(j=0;j110;j+); /大約為1ms,但不是很精確/*主程序*/void main()char flag=1; /用于標(biāo)志按鍵,按鍵每按下一次取反while(1)/死循環(huán),程序永遠(yuǎn)在循環(huán)里面運(yùn)行。if(k2=0)flag=flag;delayms(200); /消除抖動,盡量避免一次按鍵當(dāng)成幾次按鍵if(flag=0)led=0xfe;for(i=0;i8;i+)P1=led;led=_crol_(led,1); /將led循環(huán)左移1位delayms

9、(500); /延時(shí)一會才能看到流水效果,大約500ms if(flag=1)led=0xfe;for(i=0;i8;i+)P1=led;led=_crol_(led,1); /循環(huán)左移delayms(500); for(i=0;i8;i+)P1=led;led=_cror_(led,1); /循環(huán)右移delayms(500);編譯及下載過程接下來,我們將上述程序編譯,并用相應(yīng)軟件將.hex文件燒寫到單片機(jī)芯片中,在使用軟件燒寫.hex文件時(shí)注意單片機(jī)的選型及其他一些問題,燒寫后的單片機(jī)電路板上可以看到LED的流水效果,但源程序看起來更加簡潔,直觀。其實(shí)STC89C52單片機(jī)有的指令常用,有的

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

11、功之后,輸出.hex文件。然后將單片機(jī)用連在電腦上,利用單片機(jī)專門的燒寫程序通過串口將.hex文件正確燒寫進(jìn)單片機(jī)打開單片機(jī)電源即可看到流水燈效果。4.2 設(shè)計(jì)結(jié)果分析該設(shè)計(jì)可以能看到單一方向的流水燈和循環(huán)流水燈的效果,可是也有待改進(jìn)之處,例如 :延時(shí)的精確性方面,可以考慮用定時(shí)器對延時(shí)的精確性進(jìn)行改進(jìn),而且流水燈是單一的顏色和亮度,需要在發(fā)光二極管顏色的種類以及顏色的明暗的設(shè)置上再做改進(jìn)。本程序?qū)崿F(xiàn)的功能比較簡單,其實(shí)我們可以在此基礎(chǔ)上擴(kuò)展更復(fù)雜的流水燈控制。比如再增加一排流水燈,同時(shí)顯示不同的流水花樣,控制流水燈顯示數(shù)字或圖案,以及可以通過流水燈做搖搖棒等等。用STC89C52單片機(jī)設(shè)計(jì)的

12、該流水燈具有體積小、功能強(qiáng)、成本低、應(yīng)用面廣等優(yōu)點(diǎn),可以說,智能控制與自動控制的核心即單片機(jī)。單片機(jī)的最明顯的優(yōu)勢,就是便于植入到各種儀器,設(shè)備中。通過這次單片機(jī)課程設(shè)計(jì),我不僅加深了對單片機(jī)理論知識的理解,而且能將單片機(jī)理論知識很好地應(yīng)用到實(shí)踐中去,使理論與實(shí)際相結(jié)合,使我的理論知識得到了鞏固,在查資料翻閱資料的過程中也豐富了我的知識閱歷。與此同時(shí),也學(xué)會了之前沒怎么接觸的硬件焊接工作,對構(gòu)成單片機(jī)最小系統(tǒng)的一些元器件也有了進(jìn)一步的認(rèn)識。在這次課程設(shè)計(jì)中我看到了自己眼高手低的缺點(diǎn),對一些基礎(chǔ)知識掌握得還不是很好,而且以前所學(xué)的知識遺忘了很多,體會到了那種書到用時(shí)方恨少的感覺!鑒于此,以后我要不斷充電,不斷提升自己,經(jīng)?;仡櫵鶎W(xué)的知識,養(yǎng)成良好的

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論