實習報告流水燈_第1頁
實習報告流水燈_第2頁
實習報告流水燈_第3頁
實習報告流水燈_第4頁
實習報告流水燈_第5頁
已閱讀5頁,還剩8頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

本文檔如對你有幫助,請幫忙下載支持!單片機流水彩燈設計目錄1、方案設計說明??????????????????????????2(1)設計項目概述????????????????????????2(2)設計項目功能及操作介紹???????????????????2(3)方案設計思路????????????????????????22、硬件設計說明??????????????????????????3(1)電路圖???????????????????????????3(2)I/O的分配?????????????????????????3(3)電路工作原理????????????????????????4(4)主要器件介紹????????????????????????43、軟件設計說明??????????????????????????5(1)軟件設計概述????????????????????????51)設計思路????????????????????????52)總體功能????????????????????????63)程序流程圖???????????????????????72)程序總體結構及程序的執行與工作過程????????????83)重要程序段說明??????????????????????84)程序清單?????????????????????????94、制作調試說明??????????????????????????131)制作調試過程及結果????????????????????132)所遇到的問題及解決方法??????????????????135、總結??????????????????????????????141、方案設計說明(1)設計項目概述本文檔如對你有幫助,請幫忙下載支持!本次設計的題目是單片機流水彩燈設計通過綜合掌握單片機編程的基本思想,以及中斷,定時程序的基本編寫方法。利用單片機設計并制作流水彩燈。該流水彩燈設置用一個 AT89S51單片機來控制12LED燈產生不同的發光效果。(2)設計項目功能及操作介紹其中兩個按鍵K1和K2,上電后,12個LED燈全亮;兩個按鍵一個用于控制“流水燈”的啟動和停止,另一個用于選擇“流水”的花樣。其中流水燈花樣有三種: 1)單個LED燈順次點亮。2)每兩個LED燈順次點亮然后再順次返回。3)從兩端每三個LED燈順向中間次點亮。3)方案設計思路按照單片機系統擴展與系統配置狀況,單片機應用系統可分為最小系統、最小功耗系統及典型系統等。 流水燈實際上就是一個帶有個發光二極管的單片機最小應用系統,即為由發光二極管、晶振、復位、電源等電路和必要的軟件組成的單個單片機。如果要讓接在P0.0口的LED亮起來,那么只要把P0.0口的電平變為低電平就可以了;相反,如果要接在P0.0口的LED熄滅,就要把P0.0口的電平變為高電平;同理,接在其他接口上 LED燈的點亮和熄滅的方法也如此。因此,要實現流水燈功能,我們只要將發光二極管 LED1~LED12依次點亮、熄滅,12只LED燈便會一亮一暗的做流水燈了。在此我們還本文檔如對你有幫助,請幫忙下載支持!應注意一點,由于人眼的視覺暫留效應以及單片機執行每條指令的時間很短,我們在控制二極管亮滅的時候應該延時一段時間, 否則我們就看不到“流水”效果了。2、硬件設計說明1)電路圖(2)I/O的分配單片機40引腳接+5V的電源,12、13引腳接開關K1、K2,20引腳接地。使用510Ω電阻和發光二極管組成12條支路,分別對應連接單片機的8個P0口、4個P2口共12個。采用共陽極接法40段接上5V的外加電壓,通過單片機的P0、P2口控制輸出高電平還是低電平。當電壓為低電平的時候。二極管發光。該電路由 2個30PF的電容和一個晶震組成的,其中晶振接在18和19引腳,這個作用是為單片機提供一個正常的工作時鐘頻率。(3)電路工作原理該流水燈實際上就是一個帶有十二個發光二極管的單片機最小應用系統,即為由發光二極管、晶振、復位、電源等電路和必要的軟件組成的單個單片機。從原理圖中可以看出,如果要讓接在P0.0口的LED1亮起來,那么只要把P0.0口的電平變為低電平就可以了;相反,如果要接在P0.0口的LED1熄滅,就要把P0.0口的電平變為高電平;同理,接在P0.1~P0.7口與P2.4~P2.7的其他11個LED的本文檔如對你有幫助,請幫忙下載支持!點亮和熄滅的方法同 LED1。因此,要實現流水燈功能,我們只要將發光二極管LED1~LED12依次點亮、熄滅,12只LED燈便會一亮一暗形成“流水燈”。(4)主要器件介紹AT89S51單片機是美國ATMEL公司生產的低電壓、高性能CMOS8位單片機,具有豐富的內部資源:4kB閃存、128BRAM、32根I/O口線、2個16位定時/計數器、5個向量兩級中斷結構、2個全雙工的串行口,具有4.25~5.50V的電壓工作范圍和0~24MHz工作頻率,使用AT89S51單片機時無須外擴存儲器。在MCS-51芯片內部有一個高增益反相放大器,用于構成振蕩器。反相放大器的輸入端為引腳XTAL1,輸出端為引腳XTAL2,在芯片的外部通過這兩個引腳跨接晶體振蕩器和微調電容 C1、C2形成反饋電路,可構成穩定的自激振蕩器,振蕩頻率范圍通常是 1.2~12MHz。晶體振蕩頻率高,則系統的時鐘頻率也高,單片機的運行速度也就快。使用晶體振蕩器時,C1、C2取值30±10pF。C1、C2的取值雖然沒有嚴格的要求,但電容的大小影響振蕩電路的穩定性和快速性,通常取值20~30pF。在這里我們取值 30pF在設計印制電路板時,晶振和電容等應盡可能靠近芯片, 以減少分布電容,保證振蕩器振蕩的穩定性。3、軟件設計說明本文檔如對你有幫助,請幫忙下載支持!(1)軟件設計概述1)設計思路單片機的應用系統由硬件和軟件組成,在硬件原理圖搭建完成上電之后,我們還不能看到流水燈循環點亮的現象,我們還需要編寫程序控制單片機管腳電平的高低變化,來實現發光二極管的一亮一滅。軟件編程是單片機應用系統中一個重要的組成部分,我們編程實現流水燈的方法是循環移位法,即:在程序一開始就給I/O口送一個數,這個數本身就是讓這個I/O口先低,其他位為高,然后延時一段時間,再讓這個數據向高位移動,然后再輸出至I/O口,這樣就實現流水效果,另外由于AT89S51系列單片機的指令中只有對累加器ACC中數據左移或右移的指令,所以我們應把需移動的數據先放到ACC中,讓其移動,然后將ACC移動后的數據再轉送到I/O口,這樣也可以實現流水效果。如果要讓接在p0與p2口的發光二極管實現流水的效果,則是用程序改變p0與p2口的電平,由于我采用的為共陽極的接線方式,因此低電平為亮,高電平熄滅。2)總體功能這次程序總的要實現四個功能,通電后 12個LED燈全亮;單個LED燈順次點亮;每兩個LED燈順次點亮然后再順次返回;從兩端每三個LED燈順次向中間點亮。程序的主要功能是p3.2口的按鈕為控制啟動與停止,p3.3口的本文檔如對你有幫助,請幫忙下載支持!按鈕為切換三種“流水”的花樣 : 會出現一個燈從上至下的循環亮滅,后又從下至上的循環亮滅回來;亮滅,后又從下至上的循環亮滅回來;面的三個燈亮到中間6個燈亮的情況;3)程序流程圖

會出現兩個燈從上至下的循環在燈會產生上3個燈與最下初始化未有鍵按下掃描是否全亮有鍵按下有按鍵按下STYLE1未有鍵按下掃描是否 P3.2鍵按下有按鍵按下按下p3.3鍵STYLE2未有鍵按下掃描是否有按鍵按下P3.2鍵按下按下p3.3鍵 按下 p3.3鍵STYLE3未有鍵按下掃描是否P3.2鍵按下有按鍵按下本文檔如對你有幫助,請幫忙下載支持!(2)程序總體結構及程序的執行與工作過程這個程序一共分為四個部分:第一個是對下面需要用到的累加器、寄存器的定義;第二個是編寫 p3.2接口按鈕功能,第三個則是編寫p3.3接口按鈕功能,而其中有三個花樣:第四個則是延時子程序。其工作過程如下流程:(3)重要程序段說明JUMP1:AJMP STYLE1AJMP STYLE2AJMP STYLE3CLR:是將其后面指定的位清為 0,程序中使對應端口輸出低電平ACALL:是子程序調用指令,程序中調用了 DELAY延時子程序SETB:是將其后面指定的位置成 1,程序中使對應端口輸出高電平AJMP:是無條件跳轉指令,意思是:跳轉到指定的標號處繼續運行END:是程序結束的偽指令,意思是告訴編譯器,程序到此結束。偽指令只告訴編譯器此程序到此有何要求或條件, 它不參與和影響程序的執行。MOV

P2,ARR ACALL

DELAYJB

ACC.4,LOOPBLS2

;同樣,當

P2.4

為0,即燈亮到

P2.4

處在上面源程序中

"ACALL

DELAY"指令的作用是調用

DELAY延時子程序。一定要用該指令才能看到我們需要的 "流水"效果。如果不用該指令,則由于12個LED發光與熄滅的時間都很短,我們肉眼無法看到本文檔如對你有幫助,請幫忙下載支持!LED的熄滅與點亮,憑我們肉眼看到的是 LED1~LED12都同時亮(半亮),而看不到“流水”效果的!(4)程序清單ORG0000HAJMPMAINORG0003H;外部中斷0入口地址外部中斷0連接控制流水燈暫停開始MOVDPTR,#JUMP0;儲存轉移地址基址MOVA,R6;儲存專一地址的變址,可根據基址+變址來執行開始暫停子JMP@A+DPTR;跳轉到中斷程序ORG0013H;外部中斷1入口地址MOVDPTR,#JUMP1MOVA,R7JMP@A+DPTRORG0100HMAIN:MOVSP,#60HCLRAMOVR7,#00HMOVR6,#00HMOVP0,#00H;設置12個燈全亮MOVP2,#00HSETBEX0SETBIT0SETBEX1;設置外部中斷0跟1,開中斷SETBIT1SETBEASJMP$ORG0200HJUMP0:;外部中斷0的中斷響應程序SJMPSTART;跳轉到控制流水燈開始的程序SJMPSTOP;跳轉到控制流水燈停止的程序ORG0210H;實際開始程序地址START:MOVR6,#2HLJMPSTYLE1;跳轉到樣式1開始流水STOP:;流水燈停止程序MOVR6,#0H本文檔如對你有幫助,請幫忙下載支持!MOVP0,#00H;12個燈全亮MOVP2,#00HCLREA;關總中斷JNBP3.2,$;等待下一次按鍵JBP3.2,$SETBEA;開總中斷CALLDELAYMOVP0,#0H;12個燈全亮MOVP2,#0HRETIORG0400H;實際外部中斷1程序地址JUMP1:AJMPSTYLE1;跳到方式1執行AJMPSTYLE2AJMPSTYLE3;----------------------------------------;第一種花樣ORG0500HSTYLE1:MOVR7,#2H;R7儲存控制花樣地址通過基址+變址來控制花樣MOVP0,#0FFH;從12個燈全滅開始,一個一個亮MOVP2,#0FFHMOVA,#0FEH;單個LEDLOOPAS1:MOVR0,#8LOOPALS1:MOVP0,ARLACALLDELAYDJNZR0,LOOPALS1MOVP0,#0FFH;P0口8個燈流水完畢;后4個燈~~~~(程序中為P2.4--P2.7,可修改)MOVA,#7FH;單個LEDLOOPBS1:MOVR0,#4HLOOPBLS1:MOVP2,AACALLDELAYDJNZ R0,LOOPBLS1本文檔如對你有幫助,請幫忙下載支持!MOVR1,#3DJNZR1,STYLE1MOVP2,#0FFHRETI;----------------------------------------;第二種花樣STYLE2:MOVR7,#4HMOVP0,#0FFH;同樣從12個燈熄滅然后開始第二種花樣MOVP2,#0FFHLOOPAS2:MOVA,#0FCH;兩個LEDLOOPALS2:MOVP0,ARLACALLDELAYJBACC.7,LOOPALS2;當P0.7為0,即亮到P0.7此處CALLDELAYMOVP0,#07FHMOVP2,#7FHCALLDELAYMOVP0,#0FFH;--------------------MOVA,#3FH;兩個LEDLOOPBLS2:MOVP2,ARRA;右移,打到流水目的后面的RL跟RR同理CALLDELAYJBACC.4,LOOPBLS2;同樣,當P2.4為0,即燈亮到P2.4處;--------------------LOOPCRS2:MOVP2,ARLACALLDELAYJBACC.7,LOOPCRS2MOVP2,#3FHCALLDELAYMOVP2,#7FHMOVP0,#7FHCALLDELAY本文檔如對你有幫助,請幫忙下載支持!MOV P2,#0FFH;--------------------MOV A,#3FHACALLDELAYJB ACC.0,LOOPDRS2;--------------------MOV R1,#03HDJNZ R1,STYLE2RETI;----------------------------------------

;循環

3次;第三種花樣STYLE3:MOV R7,#0HMOV P0,#0FFHMOV P2,#0FFHLOOPS3:MOV A,#0F8HMOV P0,AMOV A,#8FHMOV P2,ACALL DELAYMOV A,#7HMOV P0,AMOV A,#7FHMOV P2,ACALL DELAYMOV R1,#5HMOV P0,#0FFHMOV P2,#0FFHDJNZ R1,LOOPS3RETI;----------------------------------------;延時子程序DELAY:MOVR4,#2L1:MOVR2,#250本文檔如對你有幫助,請幫忙下載支持!L2:MOVR3,#250L3:DJNZR3,L3DJNZR2,L2DJNZR4,L1RETIEND4、制作調試說明(1)制作調試過程及結果啟動Keil 單片機集成開發環境,建立新工程,將上面的源程序導入到工程中,設置好

溫馨提示

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

評論

0/150

提交評論