led流水燈單片機的設計畢業(yè)論文_第1頁
已閱讀1頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  畢 業(yè) 設 計(論 文)</p><p>  論文標題:LED流水燈單片機的設計</p><p>  系 別:計算機與電子工程系</p><p>  專 業(yè):應用電子技術(shù)</p><p><b>  目 錄</b></p><p>  摘要…………………………

2、…………………………………………………………1</p><p>  引言……………………………………………………………………………………2</p><p>  1 硬件組成……………………………………………………………………………2</p><p>  2 軟件編程……………………………………………………………………………3</p><p>

3、  2.1 位控法……………………………………………………………………………4</p><p>  2.3 循環(huán)移位法………………………………………………………………………5</p><p>  2.3 查表法……………………………………………………………………………6</p><p>  3 小結(jié)…………………………………………………………………………………9&l

4、t;/p><p>  4 參考文獻………………………………………………………………………… 10</p><p>  5致謝詞 …………………………………………………………11</p><p>  6獨撰聲明 ………………………………………………………12</p><p>  LED流水燈的單片機設計</p><p>

5、  作者:汪飛 指導教師:姬君彩</p><p>  (年級專業(yè):2009年應用電子技術(shù))</p><p>  摘 要 本文介紹了交通燈及數(shù)碼管的軟硬件設計過程,重點給出了其軟件編程的思想方法,以期給單片機學習者以啟發(fā)。</p><p>  關(guān)鍵詞 MCS51單片機、LED流水燈</p><p>  MCU Design LED wa

6、ter la</p><p>  Author:xuyang Tutor: mouxiaoling</p><p>  (grade and major:Grade 2008 Applied Electronic Technology)</p><p>  Abstract This article describes the traffic lights and

7、 digital hardware and software design process, Given its focus on software programming way of thinking in order to inspire learners to the microcontroller..</p><p>  Key words MCS51 Microcontroller、LED water

8、 lamp</p><p><b>  引言</b></p><p>  當今時代是一個新技術(shù)層出不窮的時代,在電子領(lǐng)域尤其是自動化智能控制領(lǐng)域,傳統(tǒng)的分立元件或數(shù)字邏輯電路構(gòu)成的控制系統(tǒng),正以前所未見的速度被單片機智能控制系統(tǒng)所取代。單片機具有體積小、功能強、成本低、應用面廣等優(yōu)點,可以說,智能控制與自動控制的核心就是單片機。目前,一個學習與應用單片機的高潮正在工廠

9、、學校及企事業(yè)單位大規(guī)模地興起。學習單片機的最有效方法就是理論與實踐并重,本文筆者用AT89C51單片機自制了一款簡易的流水燈,重點介紹了其軟件編程方法,以期給單片機初學者以啟發(fā),更快地成為單片機領(lǐng)域的優(yōu)秀人才。</p><p><b>  1硬件組成</b></p><p>  按照單片機系統(tǒng)擴展與系統(tǒng)配置狀況,單片機應用系統(tǒng)可分為最小系統(tǒng)、最小功耗系統(tǒng)及典型系統(tǒng)等

10、。AT89C51單片機是美國ATMEL公司生產(chǎn)的低電壓、高性能CMOS 8位單片機,具有豐富的內(nèi)部資源:4kB閃存、128BRAM、32根I/O口線、2個16位定時/計數(shù)器、5個向量兩級中斷結(jié)構(gòu)、2個全雙工的串行口,具有4.25~5.50V的電壓工作范圍和0~24MHz工作頻率,使用AT89C51單片機時無須外擴存儲器。因此,本流水燈實際上就是一個帶有八個發(fā)光二極管的單片機最小應用系統(tǒng),即為由發(fā)光二極管、晶振、復位、電源等電路和必要的軟

11、件組成的單個單片機。其具體硬件組成如圖1所示。</p><p>  圖1 流水燈硬件原理圖</p><p>  從原理圖中可以看出,如果要讓接在P1.0口的LED1亮起來,那么只要把P1.0口的電平變?yōu)榈碗娖骄涂梢粤?相反,如果要接在P1.0口的LED1熄滅,就要把P1.0口的電平變?yōu)楦唠娖?同理,接在P1.1~P1.7口的其他7個LED的點亮和熄滅的方法同LED1。因此,要實現(xiàn)流水燈功能

12、,我們只要將發(fā)光二極管LED1~LED8依次點亮、熄滅,8只LED燈便會一亮一暗的做流水燈了。在此我們還應注意一點,由于人眼的視覺暫留效應以及單片機執(zhí)行每條指令的時間很短,我們在控制二極管亮滅的時候應該延時一段時間,否則我們就看不到“流水”效果了。</p><p><b>  2軟件編程</b></p><p>  單片機的應用系統(tǒng)由硬件和軟件組成,上述硬件原理圖搭建

13、完成上電之后,我們還不能看到流水燈循環(huán)點亮的現(xiàn)象,我們還需要告訴單片機怎么來進行工作,即編寫程序控制單片機管腳電平的高低變化,來實現(xiàn)發(fā)光二極管的一亮一滅。軟件編程是單片機應用系統(tǒng)中的一個重要的組成部分,是單片機學習的重點和難點。下面我們以最簡單的流水燈控制功能即實現(xiàn)8個LED燈的循環(huán)點亮,來介紹實現(xiàn)流水燈控制的幾種軟件編程方法。</p><p><b>  2.1位控法</b></p&

14、gt;<p>  這是一種比較笨但又最易理解的方法,采用順序程序結(jié)構(gòu),用位指令控制P1口的每一個位輸出高低電平,從而來控制相應LED燈的亮滅。程序如下:</p><p>  ORG 0000H ;單片機上電后從0000H地址執(zhí)行</p><p>  AJMP START ;跳轉(zhuǎn)到主程序存放地址處</p><p>  ORG 0030H ;設置主程序開始

15、地址</p><p>  START:MOV SP,#60H ;設置堆棧起始地址為60H</p><p>  CLR P1.0 ;P1.0輸出低電平,使LED1點亮</p><p>  ACALL DELAY ;調(diào)用延時子程序</p><p>  SETB  P1.0 ;P1.0輸出高電平,使LED1熄滅</p><p&

16、gt;  CLR   P1.1 ;P1.1輸出低電平,使LED2點亮</p><p>  ACALL DELAY ;調(diào)用延時子程序</p><p>  SETB  P1.1 ;P1.1輸出高電平,使LED2熄滅</p><p>  CLR   P1.2 ;P1.2輸出低電平,使LED3點亮</p><p>  ACALL DELAY ;調(diào)用延

17、時子程序</p><p>  SETB  P1.2 ;P1.2輸出高電平,使LED3熄滅</p><p>  CLR   P1.3 ;P1.3輸出低電平,使LED4點亮</p><p>  ACALL DELAY ;調(diào)用延時子程序</p><p>  SETB  P1.3 ;P1.3輸出高電平,使LED4熄滅</p><p

18、>  CLR   P1.4 ;P1.4輸出低電平,使LED5點亮</p><p>  ACALL DELAY ;調(diào)用延時子程序</p><p>  SETB  P1.4 ;P1.4輸出高電平,使LED5熄滅</p><p>  CLR   P1.5 ;P1.5輸出低電平,使LED6點亮</p><p>  ACALL DELAY ;調(diào)用

19、延時子程序</p><p>  SETB  P1.5 ;P1.5輸出高電平,使LED6熄滅</p><p>  CLR   P1.6 ;P1.6輸出低電平,使LED7點亮</p><p>  ACALL DELAY ;調(diào)用延時子程序</p><p>  SETB  P1.6 ;P1.6輸出高電平,使LED7熄滅</p><

20、p>  CLR   P1.7 ;P1.7輸出低電平,使LED8點亮</p><p>  ACALL DELAY ;調(diào)用延時子程序</p><p>  SETB  P1.7 ;P1.7輸出高電平,使LED8熄滅</p><p>  ACALL DELAY ;調(diào)用延時子程序</p><p>  AJMP  START ;8個LED流了一遍后

21、返回到標號START處再循環(huán)</p><p>  DELAY:  ;延時子程序</p><p>  MOV R0,#255  ;延時一段時間</p><p>  D1: MOV R1,#255</p><p><b>  DJNZ R1,$</b></p><p>  DJNZ R0,D1&l

22、t;/p><p>  RET ;子程序返回 </p><p><b>  END ;程序結(jié)束</b></p><p><b>  2.2 循環(huán)移位法</b></p><p>  在上個程序中我們是逐個控制P1端口的每個位來實現(xiàn)的,因此程序顯得有點復雜,下面我們利用循環(huán)移位指令,采用

23、循環(huán)程序結(jié)構(gòu)進行編程。我們在程序一開始就給P1口送一個數(shù),這個數(shù)本身就讓P1.0先低,其他位為高,然后延時一段時間,再讓這個數(shù)據(jù)向高位移動,然后再輸出至P1口,這樣就實現(xiàn)“流水”效果啦。由于8051系列單片機的指令中只有對累加器ACC中數(shù)據(jù)左移或右移的指令,因此實際編程中我們應把需移動的數(shù)據(jù)先放到ACC中,讓其移動,然后將ACC移動后的數(shù)據(jù)再轉(zhuǎn)送到P1口,這樣同樣可以實現(xiàn)“流水”效果。具體編程如下所示,程序結(jié)構(gòu)確實簡單了很多。</

24、p><p>  ORG 0000H ;單片機上電后從0000H地址執(zhí)行</p><p>  AJMP START ;跳轉(zhuǎn)到主程序存放地址處</p><p>  ORG 0030H ;設置主程序開始地址</p><p>  START:MOV SP,#60H ;設置堆棧起始地址為60H</p><p>  MOV  A,#

25、0FEH ;ACC中先裝入LED1亮的數(shù)據(jù)(二進制的11111110)</p><p>  MOV  P1,A ;將ACC的數(shù)據(jù)送P1口</p><p>  MOV  R0,#7 ;將數(shù)據(jù)再移動7次就完成一個8位流水過程</p><p>  LOOP: RL A ;將ACC中的數(shù)據(jù)左移一位</p><p>  MOV P1,A ;把ACC移

26、動過的數(shù)據(jù)送p1口顯示</p><p>  ACALL DELAY ;調(diào)用延時子程序</p><p>  DJNZ R0,LOOP ;沒有移動夠7次繼續(xù)移動</p><p>  AJMP START ;移動完7次后跳到開始重來,以達到循環(huán)流動效果</p><p>  DELAY:  ;延時子程序</p><p>  M

27、OV R0,#255  ;延時一段時間</p><p>  D1: MOV R1,#255</p><p><b>  DJNZ R1,$</b></p><p>  DJNZ R0,D1</p><p>  RET ;子程序返回</p><p><b>  END ;程序結(jié)束<

28、;/b></p><p><b>  2.3查表法</b></p><p>  上面的兩個程序都是比較簡單的流水燈程序,“流水”花樣只能實現(xiàn)單一的“從左到右”流方式。運用查表法所編寫的流水燈程序,能夠?qū)崿F(xiàn)任意方式流水,而且流水花樣無限,只要更改流水花樣數(shù)據(jù)表的流水數(shù)據(jù)就可以隨意添加或改變流水花樣,真正實現(xiàn)隨心所欲的流水燈效果。我們首先把要顯示流水花樣的數(shù)據(jù)建在一

29、個以TAB為標號的數(shù)據(jù)表中,然后通過查表指令“MOVC A,@A+DPTR”把數(shù)據(jù)取到累加器A中,然后再送到P1口進行顯示。具體源程序如下,TAB標號處的數(shù)據(jù)表可以根據(jù)實現(xiàn)效果的要求任意修改。</p><p>  ORG 0000H ;單片機上電后從0000H地址執(zhí)行</p><p>  AJMP START ;跳轉(zhuǎn)到主程序存放地址處</p><p>  ORG 0

30、030H ;設置主程序開始地址</p><p>  START:MOV SP,#60H ;設置堆棧起始地址為60H</p><p>  MOV DPTR,# TAB ;流水花樣表首地址送DPTR</p><p>  LOOP: CLR A ;累加器清零</p><p>  MOVC A,@A+DPTR ;取數(shù)據(jù)表中的值</p>

31、<p>  CJNE A,#0FFH,SHOW;檢查流水結(jié)束標志</p><p>  AJMP START ;所有花樣流完,則從頭開始重復流</p><p>  SHOW: MOV P1,A ;將數(shù)據(jù)送到P1口</p><p>  ACALL DELAY ;調(diào)用延時子程序</p><p>  INC DPTR ;取數(shù)據(jù)表指針指

32、向下一數(shù)據(jù)</p><p>  AJMP LOOP ;繼續(xù)查表取數(shù)據(jù)</p><p>  DELAY:  ;延時子程序</p><p>  MOV R0,#255   ;延時一段時間</p><p>  D1: MOV R1,#255</p><p><b>  DJNZ R1,$</b>&l

33、t;/p><p>  DJNZ R0,D1</p><p>  RET ;子程序返回</p><p>  TAB:     ;下面是流水花樣數(shù)據(jù)表,用戶可據(jù)要求任意編寫</p><p>  DB 11111110B ;二進制表示的流水花樣數(shù)據(jù),從低到高左移</p><p>  DB 11111101B</p>

34、<p>  DB 11111011B</p><p>  DB 11110111B</p><p>  DB 11101111B</p><p>  DB 11011111B</p><p>  DB 10111111B</p><p>  DB 01111111B</p><p>

35、  DB 01111111B ;二進制表示的流水花樣數(shù)據(jù),從高到低右移</p><p>  DB 10111111B</p><p>  DB 11011111B</p><p>  DB 11101111B</p><p>  DB 11110111B</p><p>  DB 11111011B</p>

36、<p>  DB 11111101B</p><p>  DB 11111110B</p><p>  DB 11111101B</p><p>  DB 11111110B</p><p>  DB 0FEH,0FDH,0FBH,0F7H ;十六進制表示的流水花樣數(shù)據(jù)</p><p>  DB 0EFH

37、,0DFH,0BFH,7FH</p><p>  DB 7FH,0BFH,0DFH,0EFH</p><p>  DB 0F7H,0FBH,0FDH,0FEH</p><p><b>  ……</b></p><p>  DB 0FFH ;流水花樣結(jié)束標志0FFH</p><p><b>

38、;  END ;程序結(jié)束</b></p><p><b>  3小結(jié)</b></p><p>  當上述程序之一編寫好以后,我們需要使用編譯軟件對其編譯,得到單片機所能識別的二進制代碼,然后再用編程器將二進制代碼燒寫到AT89C51單片機中,最后連接好電路通電,我們就看到LED1~LED8的“流水”效果了。本文所給程序?qū)崿F(xiàn)的功能比較簡單,旨在拋磚引玉,用戶

39、可以自己在此基礎(chǔ)上擴展更復雜的流水燈控制,比如鍵盤控制流水花樣、控制流水燈顯示數(shù)字或圖案等等。</p><p><b>  參考文獻</b></p><p>  [1]徐煜明,韓雁.單片機原理及接口技術(shù)[M].北京:電子工業(yè)出版社,2005-1</p><p>  [2]萬光毅,嚴義,邢春香.單片機實驗與實踐教程[M].北京:北京航空航天大學出

40、版社,2006-4</p><p>  [3]單片機實驗教學改進芻議   葉劍超 臺州學院學報 2006-6</p><p>  [4]何立民. 單片機高級教程. 第1版.北京:北京航空航天大學出版社,2001</p><p>  [5]李廣第. 單片機基礎(chǔ). 第1版.北京:北京航空航天大學出版社,1999 </p><p&g

溫馨提示

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

評論

0/150

提交評論