




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、單片機流水彩燈設(shè)計目錄1、方案設(shè)計說明,2( 1)設(shè)計項目概述,2(2)設(shè)計項目功能及操作介紹,2(3)方案設(shè)計思路,22、硬件設(shè)計說明,3( 1)電路圖,3(2)I/O 的分配 ,3(3)電路工作原理,4(4)主要器件介紹,43、軟件設(shè)計說明,5(1)軟件設(shè)計概述,51)設(shè)計思路,52)總體功能,63)程序流程圖,7(2)程序總體結(jié)構(gòu)及程序的執(zhí)行與工作過程,8(3)重要程序段說明,8(4)程序清單9,4、制作調(diào)試說明,13( 1)制作調(diào)試過程及結(jié)果,13(2)所遇到的問題及解決方法,135、總結(jié),141 、方案設(shè)計說明( 1)設(shè)計項目概述本次設(shè)計的題目是單片機流水彩燈設(shè)計通過綜合掌握單片機編
2、程的基本思想,以及中斷,定時程序的基本編寫方法。利用單片機設(shè)計并制作流水彩燈。該流水彩燈設(shè)置用一個AT89S51 單片機來控制12LED燈產(chǎn)生不同的發(fā)光效果。( 2)設(shè)計項目功能及操作介紹其中兩個按鍵K1 和 K2,上電后,12 個 LED 燈全亮;兩個按鍵一個用于控制“流水燈”的啟動和停止,另一個用于選擇“流水”的花樣。其中流水燈花樣有三種:1)單個LED燈順次點亮。2)每兩個 LED燈順次點亮然后再順次返回。3)從兩端每三個LED燈順向中間次點亮。( 3)方案設(shè)計思路按照單片機系統(tǒng)擴展與系統(tǒng)配置狀況,單片機應(yīng)用系統(tǒng)可分為最小系統(tǒng)、最小功耗系統(tǒng)及典型系統(tǒng)等。流水燈實際上就是一個帶有12 個發(fā)
3、光二極管的單片機最小應(yīng)用系統(tǒng),即為由發(fā)光二極管、晶振、復(fù)位、電源等電路和必要的軟件組成的單個單片機。如果要讓接在P0.0 口的LED亮起來,那么只要把P0.0 口的電平變?yōu)榈碗娖骄涂梢粤耍幌喾?,如果要接在P0.0 口的LED熄滅,就要把P0.0 口的電平變?yōu)楦唠娖?;同理?接在其他接口上LED燈的點亮和熄滅的方法也如此。要實現(xiàn)流水燈功能,我們只要將發(fā)光二極管LED1 LED12依次12 只 LED燈便會一亮一暗的做流水燈了。在此我們還由于人眼的視覺暫留效應(yīng)以及單片機執(zhí)行每條指令的時我們在控制二極管亮滅的時候應(yīng)該延時一段時間,否則我們2、硬件設(shè)計說明1 )電路圖242 ) I/O 的分配單片機4
4、0引腳接+5V的電源,12、 13引腳接開關(guān)K1、 K2, 20引腳接地。使用510 電阻和發(fā)光二極管組成12 條支路,分別對應(yīng)連接單片機的8個 P0口、 4個 P2口共 12個。采用共陽極接法40段接上5V 的外加電壓,通過單片機的P0、 P2口控制輸出高電平還是低電平。當(dāng)電壓為低電平的時候。二極管發(fā)光。該電路由2 個 30PF 的電容和一個晶震組成的,其中晶振接在18 和 19 引腳, 這個作用是為單片機提供一個正常的工作時鐘頻率。( 3)電路工作原理該流水燈實際上就是一個帶有十二個發(fā)光二極管的單片機最小應(yīng)用系統(tǒng),即為由發(fā)光二極管、晶振、復(fù)位、電源等電路和必要的軟件組成的單個單片機。從原理
5、圖中可以看出,如果要讓接在P0.0 口的 LED1亮起來,那么只要把P0.0 口的電平變?yōu)榈碗娖骄涂梢粤?;相反,如果要接在P0.0 口的LED1熄滅,就要把P0.0 口的電平變?yōu)楦唠娖?;同理,接在P0.1 P0.7 口與 P2.4 P2.7 的其他 11 個 LED的點亮和熄滅的方法同LED1。因此,要實現(xiàn)流水燈功能,我們只要將發(fā)光二極管LED1 LED12依次點亮、熄滅,12 只 LED燈便會一亮一暗形成“流水燈”。( 4)主要器件介紹AT89S51單片機是美國ATMEL公司生產(chǎn)的低電壓、高性能CMOS8位單片機,具有豐富的內(nèi)部資源:4kB 閃存、128BRAM、 32 根 I/O 口線、
6、2 個 16 位定時 / 計數(shù)器、 5 個向量兩級中斷結(jié)構(gòu)、2 個全雙工的串行口,具有4.25 5.50V 的電壓工作范圍和0 24MHz工作頻率,使用AT89S51單片機時無須外擴存儲器。在 MCS-51芯片內(nèi)部有一個高增益反相放大器,用于構(gòu)成振蕩器。反相放大器的輸入端為引腳XTAL1,輸出端為引腳XTAL2,在芯片的外部通過這兩個引腳跨接晶體振蕩器和微調(diào)電容C1、 C2形成反饋電路,可構(gòu)成穩(wěn)定的自激振蕩器,振蕩頻率范圍通常是1.212MHz。晶體振蕩頻率高,則系統(tǒng)的時鐘頻率也高,單片機的運行速度也就快。使用晶體振蕩器時,C1、 C2 取值30± 10pF。 C1、 C2 的取值雖
7、然沒有嚴(yán)格的要求,但電容的大小影響振蕩電路的穩(wěn)定性和快速性,通常取值2030pF。在這里我們?nèi)≈?0 pF 在設(shè)計印制電路板時,晶振和電容等應(yīng)盡可能靠近芯片,以減少分布電容,保證振蕩器振蕩的穩(wěn)定性。3、軟件設(shè)計說明( 1 )軟件設(shè)計概述1)設(shè)計思路單片機的應(yīng)用系統(tǒng)由硬件和軟件組成,在硬件原理圖搭建完成上電之后, 我們還不能看到流水燈循環(huán)點亮的現(xiàn)象,我們還需要編寫程 序控制單片機管腳電平的高低變化,來實現(xiàn)發(fā)光二極管的一亮一滅。軟件編程是單片機應(yīng)用系統(tǒng)中一個重要的組成部分,我們編程實現(xiàn)流水燈的方法是循環(huán)移位法,即:在程序一開始就給I/O 口送一個數(shù),這個數(shù)本身就是讓這個I/O 口先低, 其他位為高
8、,然后延時一段時間,再讓這個數(shù)據(jù)向高位移動,然后再輸出至I/O 口,這樣就實現(xiàn)流水效果, 另外由于AT89S51系列單片機的指令中只有對累加器中數(shù)據(jù)左移或右移的指令,所以我們應(yīng)把需移動的數(shù)據(jù)先放到中,讓其移動,然后將移動后的數(shù)據(jù)再轉(zhuǎn)送到I/O 口,這樣也可以實現(xiàn)流水效果。如果要讓接在p0 與 p2 口的發(fā)光二極管實現(xiàn)流水的效果, 則是用程序改變p0 與 p2 口的電平,由于我采用的為共陽極的接線方式,因此低電平為亮,高電平熄滅。2)總體功能這次程序總的要實現(xiàn)四個功能,通電后12 個 LED 燈全亮;單個 LED燈順次點亮;每兩個LED燈順次點亮然后再順次返回;從兩端每三個LED燈順次向中間點亮
9、。程序的主要功能是p3.2口的按鈕為控制啟動與停止,p3.3口的按鈕為切換三種“流水”的花樣 : 會出現(xiàn)一個燈從上至下的循環(huán)亮滅,后又從下至上的循環(huán)亮滅回來;會出現(xiàn)兩個燈從上至下的循環(huán)亮滅,后又從下至上的循環(huán)亮滅回來;在燈會產(chǎn)生上3 個燈與最下面的三個燈亮到中間6 個燈亮的情況;3)程序流程圖( 2)程序總體結(jié)構(gòu)及程序的執(zhí)行與工作過程這個程序一共分為四個部分:第一個是對下面需要用到的累加器、寄存器的定義;第二個是編寫p3.2 接口按鈕功能,第三個則是編寫 p3.3 接口按鈕功能,而其中有三個花樣:第四個則是延時子程序。其工作過程如下流程:( 3)重要程序段說明JUMP1:AJMP STYLE1
10、AJMP STYLE2AJMP STYLE3CLR: 是將其后面指定的位清為0,程序中使對應(yīng)端口輸出低電平ACALL:是子程序調(diào)用指令,程序中調(diào)用了DELAY延時子程序SETB:是將其后面指定的位置成1,程序中使對應(yīng)端口輸出高電平AJMP:是無條件跳轉(zhuǎn)指令,意思是:跳轉(zhuǎn)到指定的標(biāo)號處繼續(xù)運行END: 是程序結(jié)束的偽指令,意思是告訴編譯器,程序到此結(jié)束。偽指令只告訴編譯器此程序到此有何要求或條件, 它不參與和影響程序的執(zhí)行。MOV P2, ARR ACALL DELAYJB ACC.4, LOOPBLS2;同樣,當(dāng)P2.4 為 0,即燈亮到P2.4 處在上面源程序中"ACALL DEL
11、AY"指令的作用是調(diào)用DELAY延時子程序。一定要用該指令才能看到我們需要的"流水 "效果。如果不用該指令,則由于12 個LED發(fā)光與熄滅的時間都很短,我們?nèi)庋蹮o法看到LED的熄滅與點亮,憑我們?nèi)庋劭吹降氖荓ED1 LED12都同時亮(半亮),而看不到“流水”效果的?。?4)程序清單ORG0000HAJMPMAINORG0003H; 外部中斷0 入口地址外部中斷0 連接控制流水燈暫停開始MOVDPTR,#JUMP0;儲存轉(zhuǎn)移地址基址MOVA,R6; 儲存專一地址的變址,可根據(jù)基址+變址來執(zhí)行開始暫停子JMP A+DPTR; 跳轉(zhuǎn)到中斷程序ORG0013H; 外部中
12、斷1 入口地址MOVDPTR,#JUMP1MOVA,R7JMP A+DPTRORG0100HMAIN:MOVSP,#60HCLR AMOVR7,#00HMOVR6,#00HMOVP0,#00H; 設(shè)置12 個燈全亮MOVP2,#00HSETBEX0SETBIT0SETBEX1; 設(shè)置外部中斷0 跟 1,開中斷SETBIT1SETBEASJMP$ORG0200HJUMP0:;外部中斷0 的中斷響應(yīng)程序SJMPSTART;跳轉(zhuǎn)到控制流水燈開始的程序SJMPSTOP;跳轉(zhuǎn)到控制流水燈停止的程序ORG0210H; 實際開始程序地址START:MOVR6,#2HLJMPSTYLE1; 跳轉(zhuǎn)到樣式1 開始
13、流水STOP:;流水燈停止程序MOVR6,#0HMOVP0,#00H;12 個燈全亮MOVP2,#00HCLR EA; 關(guān)總中斷JNB P3.2,$JB P3.2,$;等待下一次按鍵SETBEA;開總中斷CALLDELAYMOVP0,#0H;12 個燈全亮MOVP2,#0HRETIORG0400H;實際外部中斷1 程序地址JUMP1:AJMPSTYLE1;跳到方式1 執(zhí)行AJMPSTYLE2AJMPSTYLE3;第一種花樣ORG0500HSTYLE1:MOVR7,#2H;R7 儲存控制花樣地址通過基址+ 變址來控制花樣MOVP0,#0FFH;從 12 個燈全滅開始,一個一個亮MOVP2,#0F
14、FHMOVA, #0FEH; 單個LEDLOOPAS1:MOVR0, #8LOOPALS1:MOVP0, ARLACALL DELAYDJNZR0, LOOPALS1MOVP0,#0FFH;P0 口 8個燈流水完畢;后 4個燈(程序中為P2.4-P2.7,可修改)MOVA, #7FH;單個 LEDLOOPBS1:MOVR0, #4HLOOPBLS1:MOVP2, ARRACALLDELAYDJNZR0, LOOPBLS1MOVR1,#3DJNZR1,STYLE1MOVP2,#0FFHRETI;第二種花樣STYLE2:MOV R7,#4HMOV P0,#0FFH;同樣從12 個燈熄滅然后開始第二
15、種花樣MOV P2,#0FFHLOOPAS2:MOV A, #0FCH ;兩個 LEDLOOPALS2:MOVP0, ARLACALL DELAY;當(dāng) P0.7為0,即亮到P0.7 此處JB ACC.7, LOOPALS2CALL DELAYMOV P0,#07FHMOV P2,#7FHCALL DELAYMOV P0,#0FFHMOV A, #3FH;兩個LEDLOOPBLS2:MOV P2, ARR ACALL DELAYJB ACC.4, LOOPBLS2;LOOPCRS2:MOVP2, ARLACALL DELAYJB ACC.7,LOOPCRS2MOV P2,#3FHCALL DEL
16、AYMOV P2,#7FHMOV P0,#7FHCALL DELAYMOV P2,#0FFH;MOV A,#3FHLOOPDRS2:MOVP0, ARRACALL DELAYJB ACC.0,LOOPDRS2;MOV R1,#03HDJNZ R1,STYLE2RETI;第三種花樣STYLE3:MOV R7,#0HMOV P0,#0FFHMOV P2,#0FFHLOOPS3:MOV A,#0F8HMOV P0,AMOV A,#8FHMOV P2,ACALL DELAYMOV A,#7HMOV P0,A; 右移,打到流水目的后面的 RL 跟 RR 同理;同樣,當(dāng)P2.4為0,即燈亮到; 循環(huán) 3
17、次P2.4 處MOV A,#7FHMOV P2,ACALL DELAYMOV R1,#5HMOV P0,#0FFHMOV P2,#0FFHDJNZ R1,LOOPS3RETI;延時子程序DELAY:MOV R4, #2L1:MOV R2, #250L2:MOV R3, #250L3:DJNZ R3, L3DJNZ R2, L2DJNZ R4, L1RETIEND4、制作調(diào)試說明( 1)制作調(diào)試過程及結(jié)果啟動 Keil 單片機集成開發(fā)環(huán)境,建立新工程,將上面的源程序?qū)氲焦こ讨?,設(shè)置好Keil 工程的編譯參數(shù),編譯得到HEX格式的目標(biāo)文件,用ISP 編程器將HEX格式的目標(biāo)文件燒寫到AT89S5
18、1單片機中,接下來就是將燒寫好的AT89S51從編程器上取下,放到我們焊接好的流水燈實驗板上,通電,通過控制開關(guān)K1、 K2 我們就看到了LED1 LED12不同的"流水"效果了。( 2)所遇到的問題及解決方法問題: 1)只有 P0.0 端口的一個燈亮;2)所有的燈一個都不亮或者全亮; 3) LED 燈沒有循環(huán)或跳轉(zhuǎn)解決措施:1 )程序中循環(huán)跳轉(zhuǎn)書寫有誤。2)程序編寫有誤,看有沒有初始值或者初始值設(shè)置錯誤。3)延時程序太慢、程序中沒有寫入跳轉(zhuǎn)。5、總結(jié)這次的任務(wù)分為兩部分,一部分是硬件設(shè)計部分,另外一部分是軟件編程部分。在設(shè)計硬件電路的同時也必須先考慮好程序的設(shè)計。因為程序是和電路掛鉤的,不然的話就會出錯。
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 地震預(yù)警員崗位面試問題及答案
- 櫥柜設(shè)計師崗位面試問題及答案
- 寵物醫(yī)生崗位面試問題及答案
- 沖壓工程師崗位面試問題及答案
- 2025屆陜西省寶雞市金臺高級中學(xué)高二化學(xué)第二學(xué)期期末監(jiān)測試題含解析
- 2025屆河南省商丘市城隍鄉(xiāng)湯莊中學(xué)高二下化學(xué)期末聯(lián)考模擬試題含解析
- 安徽省定遠縣張橋中學(xué)2025年化學(xué)高二下期末學(xué)業(yè)水平測試模擬試題含解析
- 2025屆廣東省揭陽市惠來一中化學(xué)高二下期末學(xué)業(yè)水平測試模擬試題含解析
- 福建省福州市屏東中學(xué)2025屆高二下化學(xué)期末調(diào)研模擬試題含解析
- 四川省成都市溫江中學(xué)2025屆高一下化學(xué)期末經(jīng)典模擬試題含解析
- 2024年中國安全應(yīng)急產(chǎn)業(yè)發(fā)展研究報告
- 2024年優(yōu)居房產(chǎn)加盟業(yè)務(wù)保密協(xié)議3篇
- 中國當(dāng)代文學(xué)專題-003-國開機考復(fù)習(xí)資料
- 企業(yè)自然災(zāi)害安全應(yīng)急預(yù)案
- 高新技術(shù)企業(yè)研發(fā)費用管理辦法
- 老年急重癥診療及護理
- 中小學(xué)家長會期中期末家長會253
- 驅(qū)動電機與電機控制器
- 醫(yī)聯(lián)體協(xié)議書(2024版)
- 2023年全國職業(yè)院校技能大賽-中藥傳統(tǒng)技能賽項規(guī)程
- 11 《愛蓮說》對比閱讀-2024-2025中考語文文言文閱讀專項訓(xùn)練(含答案)
評論
0/150
提交評論