版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 畢 業(yè) 設(shè) 計(jì)(論 文)</p><p> 論文標(biāo)題:LED流水燈單片機(jī)的設(shè)計(jì)</p><p> 系 別:計(jì)算機(jī)與電子工程系</p><p> 專 業(yè):應(yīng)用電子技術(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 參考文獻(xiàn)………………………………………………………………………… 10</p><p> 5致謝詞 …………………………………………………………11</p><p> 6獨(dú)撰聲明 ………………………………………………………12</p><p> LED流水燈的單片機(jī)設(shè)計(jì)</p><p>
5、 作者:汪飛 指導(dǎo)教師:姬君彩</p><p> (年級(jí)專業(yè):2009年應(yīng)用電子技術(shù))</p><p> 摘 要 本文介紹了交通燈及數(shù)碼管的軟硬件設(shè)計(jì)過(guò)程,重點(diǎn)給出了其軟件編程的思想方法,以期給單片機(jī)學(xué)習(xí)者以啟發(fā)。</p><p> 關(guān)鍵詞 MCS51單片機(jī)、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> 當(dāng)今時(shí)代是一個(gè)新技術(shù)層出不窮的時(shí)代,在電子領(lǐng)域尤其是自動(dòng)化智能控制領(lǐng)域,傳統(tǒng)的分立元件或數(shù)字邏輯電路構(gòu)成的控制系統(tǒng),正以前所未見(jiàn)的速度被單片機(jī)智能控制系統(tǒng)所取代。單片機(jī)具有體積小、功能強(qiáng)、成本低、應(yīng)用面廣等優(yōu)點(diǎn),可以說(shuō),智能控制與自動(dòng)控制的核心就是單片機(jī)。目前,一個(gè)學(xué)習(xí)與應(yīng)用單片機(jī)的高潮正在工廠
9、、學(xué)校及企事業(yè)單位大規(guī)模地興起。學(xué)習(xí)單片機(jī)的最有效方法就是理論與實(shí)踐并重,本文筆者用AT89C51單片機(jī)自制了一款簡(jiǎn)易的流水燈,重點(diǎn)介紹了其軟件編程方法,以期給單片機(jī)初學(xué)者以啟發(fā),更快地成為單片機(jī)領(lǐng)域的優(yōu)秀人才。</p><p><b> 1硬件組成</b></p><p> 按照單片機(jī)系統(tǒng)擴(kuò)展與系統(tǒng)配置狀況,單片機(jī)應(yīng)用系統(tǒng)可分為最小系統(tǒng)、最小功耗系統(tǒng)及典型系統(tǒng)等
10、。AT89C51單片機(jī)是美國(guó)ATMEL公司生產(chǎn)的低電壓、高性能CMOS 8位單片機(jī),具有豐富的內(nèi)部資源:4kB閃存、128BRAM、32根I/O口線、2個(gè)16位定時(shí)/計(jì)數(shù)器、5個(gè)向量?jī)杉?jí)中斷結(jié)構(gòu)、2個(gè)全雙工的串行口,具有4.25~5.50V的電壓工作范圍和0~24MHz工作頻率,使用AT89C51單片機(jī)時(shí)無(wú)須外擴(kuò)存儲(chǔ)器。因此,本流水燈實(shí)際上就是一個(gè)帶有八個(gè)發(fā)光二極管的單片機(jī)最小應(yīng)用系統(tǒng),即為由發(fā)光二極管、晶振、復(fù)位、電源等電路和必要的軟
11、件組成的單個(gè)單片機(jī)。其具體硬件組成如圖1所示。</p><p> 圖1 流水燈硬件原理圖</p><p> 從原理圖中可以看出,如果要讓接在P1.0口的LED1亮起來(lái),那么只要把P1.0口的電平變?yōu)榈碗娖骄涂梢粤?相反,如果要接在P1.0口的LED1熄滅,就要把P1.0口的電平變?yōu)楦唠娖?同理,接在P1.1~P1.7口的其他7個(gè)LED的點(diǎn)亮和熄滅的方法同LED1。因此,要實(shí)現(xiàn)流水燈功能
12、,我們只要將發(fā)光二極管LED1~LED8依次點(diǎn)亮、熄滅,8只LED燈便會(huì)一亮一暗的做流水燈了。在此我們還應(yīng)注意一點(diǎn),由于人眼的視覺(jué)暫留效應(yīng)以及單片機(jī)執(zhí)行每條指令的時(shí)間很短,我們?cè)诳刂贫O管亮滅的時(shí)候應(yīng)該延時(shí)一段時(shí)間,否則我們就看不到“流水”效果了。</p><p><b> 2軟件編程</b></p><p> 單片機(jī)的應(yīng)用系統(tǒng)由硬件和軟件組成,上述硬件原理圖搭建
13、完成上電之后,我們還不能看到流水燈循環(huán)點(diǎn)亮的現(xiàn)象,我們還需要告訴單片機(jī)怎么來(lái)進(jìn)行工作,即編寫(xiě)程序控制單片機(jī)管腳電平的高低變化,來(lái)實(shí)現(xiàn)發(fā)光二極管的一亮一滅。軟件編程是單片機(jī)應(yīng)用系統(tǒng)中的一個(gè)重要的組成部分,是單片機(jī)學(xué)習(xí)的重點(diǎn)和難點(diǎn)。下面我們以最簡(jiǎn)單的流水燈控制功能即實(shí)現(xiàn)8個(gè)LED燈的循環(huán)點(diǎn)亮,來(lái)介紹實(shí)現(xiàn)流水燈控制的幾種軟件編程方法。</p><p><b> 2.1位控法</b></p&
14、gt;<p> 這是一種比較笨但又最易理解的方法,采用順序程序結(jié)構(gòu),用位指令控制P1口的每一個(gè)位輸出高低電平,從而來(lái)控制相應(yīng)LED燈的亮滅。程序如下:</p><p> ORG 0000H ;單片機(jī)上電后從0000H地址執(zhí)行</p><p> AJMP START ;跳轉(zhuǎn)到主程序存放地址處</p><p> ORG 0030H ;設(shè)置主程序開(kāi)始
15、地址</p><p> START:MOV SP,#60H ;設(shè)置堆棧起始地址為60H</p><p> CLR P1.0 ;P1.0輸出低電平,使LED1點(diǎn)亮</p><p> ACALL DELAY ;調(diào)用延時(shí)子程序</p><p> SETB P1.0 ;P1.0輸出高電平,使LED1熄滅</p><p&
16、gt; CLR P1.1 ;P1.1輸出低電平,使LED2點(diǎn)亮</p><p> ACALL DELAY ;調(diào)用延時(shí)子程序</p><p> SETB P1.1 ;P1.1輸出高電平,使LED2熄滅</p><p> CLR P1.2 ;P1.2輸出低電平,使LED3點(diǎn)亮</p><p> ACALL DELAY ;調(diào)用延
17、時(shí)子程序</p><p> SETB P1.2 ;P1.2輸出高電平,使LED3熄滅</p><p> CLR P1.3 ;P1.3輸出低電平,使LED4點(diǎn)亮</p><p> ACALL DELAY ;調(diào)用延時(shí)子程序</p><p> SETB P1.3 ;P1.3輸出高電平,使LED4熄滅</p><p
18、> CLR P1.4 ;P1.4輸出低電平,使LED5點(diǎn)亮</p><p> ACALL DELAY ;調(diào)用延時(shí)子程序</p><p> SETB P1.4 ;P1.4輸出高電平,使LED5熄滅</p><p> CLR P1.5 ;P1.5輸出低電平,使LED6點(diǎn)亮</p><p> ACALL DELAY ;調(diào)用
19、延時(shí)子程序</p><p> SETB P1.5 ;P1.5輸出高電平,使LED6熄滅</p><p> CLR P1.6 ;P1.6輸出低電平,使LED7點(diǎn)亮</p><p> ACALL DELAY ;調(diào)用延時(shí)子程序</p><p> SETB P1.6 ;P1.6輸出高電平,使LED7熄滅</p><
20、p> CLR P1.7 ;P1.7輸出低電平,使LED8點(diǎn)亮</p><p> ACALL DELAY ;調(diào)用延時(shí)子程序</p><p> SETB P1.7 ;P1.7輸出高電平,使LED8熄滅</p><p> ACALL DELAY ;調(diào)用延時(shí)子程序</p><p> AJMP START ;8個(gè)LED流了一遍后
21、返回到標(biāo)號(hào)START處再循環(huán)</p><p> DELAY: ;延時(shí)子程序</p><p> MOV R0,#255 ;延時(shí)一段時(shí)間</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> 在上個(gè)程序中我們是逐個(gè)控制P1端口的每個(gè)位來(lái)實(shí)現(xiàn)的,因此程序顯得有點(diǎn)復(fù)雜,下面我們利用循環(huán)移位指令,采用
23、循環(huán)程序結(jié)構(gòu)進(jìn)行編程。我們?cè)诔绦蛞婚_(kāi)始就給P1口送一個(gè)數(shù),這個(gè)數(shù)本身就讓P1.0先低,其他位為高,然后延時(shí)一段時(shí)間,再讓這個(gè)數(shù)據(jù)向高位移動(dòng),然后再輸出至P1口,這樣就實(shí)現(xiàn)“流水”效果啦。由于8051系列單片機(jī)的指令中只有對(duì)累加器ACC中數(shù)據(jù)左移或右移的指令,因此實(shí)際編程中我們應(yīng)把需移動(dòng)的數(shù)據(jù)先放到ACC中,讓其移動(dòng),然后將ACC移動(dòng)后的數(shù)據(jù)再轉(zhuǎn)送到P1口,這樣同樣可以實(shí)現(xiàn)“流水”效果。具體編程如下所示,程序結(jié)構(gòu)確實(shí)簡(jiǎn)單了很多。</
24、p><p> ORG 0000H ;單片機(jī)上電后從0000H地址執(zhí)行</p><p> AJMP START ;跳轉(zhuǎn)到主程序存放地址處</p><p> ORG 0030H ;設(shè)置主程序開(kāi)始地址</p><p> START:MOV SP,#60H ;設(shè)置堆棧起始地址為60H</p><p> MOV A,#
25、0FEH ;ACC中先裝入LED1亮的數(shù)據(jù)(二進(jìn)制的11111110)</p><p> MOV P1,A ;將ACC的數(shù)據(jù)送P1口</p><p> MOV R0,#7 ;將數(shù)據(jù)再移動(dòng)7次就完成一個(gè)8位流水過(guò)程</p><p> LOOP: RL A ;將ACC中的數(shù)據(jù)左移一位</p><p> MOV P1,A ;把ACC移
26、動(dòng)過(guò)的數(shù)據(jù)送p1口顯示</p><p> ACALL DELAY ;調(diào)用延時(shí)子程序</p><p> DJNZ R0,LOOP ;沒(méi)有移動(dòng)夠7次繼續(xù)移動(dòng)</p><p> AJMP START ;移動(dòng)完7次后跳到開(kāi)始重來(lái),以達(dá)到循環(huán)流動(dòng)效果</p><p> DELAY: ;延時(shí)子程序</p><p> M
27、OV R0,#255 ;延時(shí)一段時(shí)間</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> 上面的兩個(gè)程序都是比較簡(jiǎn)單的流水燈程序,“流水”花樣只能實(shí)現(xiàn)單一的“從左到右”流方式。運(yùn)用查表法所編寫(xiě)的流水燈程序,能夠?qū)崿F(xiàn)任意方式流水,而且流水花樣無(wú)限,只要更改流水花樣數(shù)據(jù)表的流水?dāng)?shù)據(jù)就可以隨意添加或改變流水花樣,真正實(shí)現(xiàn)隨心所欲的流水燈效果。我們首先把要顯示流水花樣的數(shù)據(jù)建在一
29、個(gè)以TAB為標(biāo)號(hào)的數(shù)據(jù)表中,然后通過(guò)查表指令“MOVC A,@A+DPTR”把數(shù)據(jù)取到累加器A中,然后再送到P1口進(jìn)行顯示。具體源程序如下,TAB標(biāo)號(hào)處的數(shù)據(jù)表可以根據(jù)實(shí)現(xiàn)效果的要求任意修改。</p><p> ORG 0000H ;單片機(jī)上電后從0000H地址執(zhí)行</p><p> AJMP START ;跳轉(zhuǎn)到主程序存放地址處</p><p> ORG 0
30、030H ;設(shè)置主程序開(kāi)始地址</p><p> START:MOV SP,#60H ;設(shè)置堆棧起始地址為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é)束標(biāo)志</p><p> AJMP START ;所有花樣流完,則從頭開(kāi)始重復(fù)流</p><p> SHOW: MOV P1,A ;將數(shù)據(jù)送到P1口</p><p> ACALL DELAY ;調(diào)用延時(shí)子程序</p><p> INC DPTR ;取數(shù)據(jù)表指針指
32、向下一數(shù)據(jù)</p><p> AJMP LOOP ;繼續(xù)查表取數(shù)據(jù)</p><p> DELAY: ;延時(shí)子程序</p><p> MOV R0,#255 ;延時(shí)一段時(shí)間</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ù)要求任意編寫(xiě)</p><p> DB 11111110B ;二進(jìn)制表示的流水花樣數(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 ;二進(jìn)制表示的流水花樣數(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 ;十六進(jìn)制表示的流水花樣數(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é)束標(biāo)志0FFH</p><p><b>
38、; END ;程序結(jié)束</b></p><p><b> 3小結(jié)</b></p><p> 當(dāng)上述程序之一編寫(xiě)好以后,我們需要使用編譯軟件對(duì)其編譯,得到單片機(jī)所能識(shí)別的二進(jìn)制代碼,然后再用編程器將二進(jìn)制代碼燒寫(xiě)到AT89C51單片機(jī)中,最后連接好電路通電,我們就看到LED1~LED8的“流水”效果了。本文所給程序?qū)崿F(xiàn)的功能比較簡(jiǎn)單,旨在拋磚引玉,用戶
39、可以自己在此基礎(chǔ)上擴(kuò)展更復(fù)雜的流水燈控制,比如鍵盤控制流水花樣、控制流水燈顯示數(shù)字或圖案等等。</p><p><b> 參考文獻(xiàn)</b></p><p> [1]徐煜明,韓雁.單片機(jī)原理及接口技術(shù)[M].北京:電子工業(yè)出版社,2005-1</p><p> [2]萬(wàn)光毅,嚴(yán)義,邢春香.單片機(jī)實(shí)驗(yàn)與實(shí)踐教程[M].北京:北京航空航天大學(xué)出
40、版社,2006-4</p><p> [3]單片機(jī)實(shí)驗(yàn)教學(xué)改進(jìn)芻議 葉劍超 臺(tái)州學(xué)院學(xué)報(bào) 2006-6</p><p> [4]何立民. 單片機(jī)高級(jí)教程. 第1版.北京:北京航空航天大學(xué)出版社,2001</p><p> [5]李廣第. 單片機(jī)基礎(chǔ). 第1版.北京:北京航空航天大學(xué)出版社,1999 </p><p&g
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文—led流水燈單片機(jī)的設(shè)計(jì)
- 畢業(yè)論文---led流水燈單片機(jī)的設(shè)計(jì)
- 基于51單片機(jī)led流水燈設(shè)計(jì)畢業(yè)論文
- 電子專業(yè)畢業(yè)論文--led流水燈單片機(jī)的設(shè)計(jì)
- 電子專業(yè)的畢業(yè)論文--led流水燈單片機(jī)的設(shè)計(jì)運(yùn)用
- 單片機(jī)控制的花樣流水燈設(shè)計(jì)畢業(yè)論文
- 單片機(jī)控制的花樣流水燈設(shè)計(jì)畢業(yè)論文
- 單片機(jī)控制的花樣流水燈設(shè)計(jì)畢業(yè)論文
- 單片機(jī)控制的花樣流水燈設(shè)計(jì)畢業(yè)論文
- 單片機(jī)控制的花樣流水燈設(shè)計(jì)畢業(yè)論文
- 單片機(jī)課程設(shè)計(jì)---led流水燈
- 51單片機(jī)流水燈畢業(yè)設(shè)計(jì)論文
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的led流水燈系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)led流水燈設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)-基于單片機(jī)的led流水燈設(shè)計(jì)
- 畢業(yè)論文-基于單片機(jī)的音樂(lè)流水燈設(shè)計(jì)【精校排版】
- 基于單片機(jī)的流水燈設(shè)計(jì)
- 單片機(jī)控制的花樣流水燈畢業(yè)設(shè)計(jì)
- 單片機(jī)流水燈課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---流水燈
評(píng)論
0/150
提交評(píng)論