單片機音樂彩燈設計_第1頁
單片機音樂彩燈設計_第2頁
單片機音樂彩燈設計_第3頁
單片機音樂彩燈設計_第4頁
單片機音樂彩燈設計_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、藝術彩燈控制系統(tǒng)設計一. 概述1. 1 藝術彩燈的設計背景及意義彩燈是人們日常生活中的一種裝飾用品,它美觀大方,尤其在節(jié)日期間,倍增節(jié)日氣氛。它蘊涵著豐富的文化底蘊,被廣泛地應用于各種店面的裝飾。變換無窮的彩燈樣式,給城市增添活力,吸引著人們的注意力,深受人民的喜愛。 在日常生活中,人們還將彩燈擺放成各種圖案,增添美感。隨著電子技術的發(fā)展,應用系統(tǒng)向著小型化、快速化、大容量、重量輕的 方向發(fā)展??茖W技術更加貼近人們的生活,向著滿足人們需求的方向發(fā)展。節(jié)日彩燈的設計與制作工藝也一步一步的走向成熟。1.2 系統(tǒng)設計功能概述本設計是以 AT89C51 單片機為基礎的音樂彩燈控制方案,來實現(xiàn)對LED

2、彩燈的控制。以AT89C51 單片機作為主控核心,通過匯編語言來控制單片機按下“開始”按鍵,8 個 LED燈從上到下開始循環(huán)點亮,按下“上”按鍵,燈由上向下流動,按下“下”按鍵,燈由下向 上流動,按下“停止”按鍵,所有燈為暗。二. 彩燈設計內容簡要:2.1 彩燈設計任務:以單片機為核心,設計一個節(jié)日音樂彩燈控制器。2.2 彩燈設計要求:P1.2-開始,按此鍵則燈開始流動(由上而下)。P1.3-停止,按此鍵則停止流動,所有燈為暗。P1.4-上,按此鍵則燈由上向下流動。P1.5-下,按此鍵則燈由下向上流動。2.3 彩燈總體控制框圖:3.2 AT89C51 單片機硬件結構:AT89C51 是一種帶

3、4K 字節(jié)閃存可編程可擦除只讀存儲器(FPEROM Flash Programmable and Erasable Read Only Memory )的單片機芯片,它采用靜態(tài)CMOS 工藝制造 8 位微處理器,最高工作頻率位24MHZ。AT89C5 外形及引腳排列如圖所示:P.OJASP2.17AQP2.2/A10P2.311P2.513P2.6/A14P2J/A15P3 O/RXIP!.2yNT0P3 3/1NT1P5.4/TOP3.5/TP3.oywrF37/R&管腳說明:RST:復位輸入。當振蕩器復位器件時,要保持RST 腳兩個機器周期的高電平時間。音樂程序復程程序=CTAL2pooM

4、noPO.1/AD1PO.3?AD3FO 5/AD5PO0/AC6PO 7/AE?7XTAL1tI* ft 1P0 口: P0 口為一個 8 位漏級開路雙向 I/O 口,每腳可吸收 8TTL 門電流。當 P1 口的管腳第一次寫 1 時,被定義為高阻輸入。P0 能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在 FIASH 編程時,P0 口作為原碼輸入口,當 FIASH 進行校驗時,P0 輸出 原碼,此時 P0 外部必須被拉高。P1 口: P1 口是一個內部提供上拉電阻的8 位雙向 I/O 口,P1 口緩沖器能接收輸出 4TTL門電流。P1 口管腳寫入 1 后,被內部上拉為高,可用

5、作輸入,P1 口被外部下拉為低電平時, 將輸出電流, 這是由于內部上拉的緣故。 在 FLASH 編程和校驗時, P1 口作為第八位地址接 收。P2 口: P2 口為一個內部上拉電阻的 8 位雙向 I/O 口,P2 口緩沖器可接收,輸出 4 個 TTL 門電流,當 P2 口被寫“ 1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸 入時,P2 口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2 口當用于外部程序存儲器或 16 位地址外部數(shù)據(jù)存儲器進行存取時,P2 口輸出地址的高八位。 在給出地址“ 1 ”時,它利用內部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2 口輸出

6、其特殊功能寄存器的內容。P2 口在 FLASH 編程和校驗時接收高八位地址信號和控制信號。P3 口: P3 口管腳是 8 個帶內部上拉電阻的雙向I/O 口,可接收輸出 4 個 TTL 門電流。當P3 口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低 電平,P3 口將輸出電流(ILL )這是由于上拉的緣故。ALE/PROG :當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。 在 FLASH 編程期間,此引腳用于輸入編程脈沖。在平時, ALE 端以不變的頻率周期輸出正 脈沖信號,此頻率為振蕩器頻率的 1/6。因此它可用作對外部輸出的脈沖或用于定時目的

7、。 然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個 ALE 脈沖。 如想禁止 ALE 的輸出可在 SFR8EH 地址上置 0。此時, ALE 只有在執(zhí)行 MOVX , MOVC 指令是 ALE 才起作 用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE 禁止,置位無效。PSEN :外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次PSEN 有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的 PSEN 信號將不出現(xiàn)。EA/VPP :當 EA 保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH ),不管是否有內部程序存儲器。注意加密方式1 時, EA 將內

8、部鎖定為RESET ;當 EA 端保持高電平時,此間內部程序存儲器。XTAL1 和 XTAL2 :反向振蕩放大器的輸入及內部時鐘工作電路的輸入。33 系統(tǒng)的硬件構成及功能描述: 控制系統(tǒng)硬件設計電路圖如圖所示:Cl1t上DST)IFsrO 0-四系統(tǒng)的軟件設計ORG 0000HAJMP MAINORGOOOBHAJMP INTORG 0020HJMP MAIN;否則返回MOV 51H,#LOW TABLE10ACALL BOFANG;音樂播放初始設置LJMP DOWNLIGHTSETB P3.5JNB P12STARTAJMP STOPAJMP GETDATAMOV 51H,#LOW TABL

9、E10ACALL BOFANG;音樂播放初始設置._LL和.MAIN:JNB P1.2,START ;判斷按鍵 P1.2(開始鍵)為 0 時轉 MAIN 程序START:MOV 50H,#HIGH TABLE10 ;開始(默認情況下上到下)STOP:MOV P0,#0FFH ;停止DOWN:MOV51H,#LOW TABLE10ACALLBOFANG;音樂播放初始設置DOWNLIGHT:MOV DPTR,#TABLE1 ;將 TABLE1 首地址賦數(shù)據(jù)指針UP:MOV 50H,#HIGH TABLE10;下到上UPLIGHT:MOV DPTR,#TABLE2 ;將 TABLE2 首地址賦數(shù)據(jù)指

10、針GETDATA:MOV R0,#08HMOV50H,#HIGH TABLE10;上到下XL-IJ-P-Of-Fi艸PLJ A;FC他H曲Ff 切PL. U*壯MMn、筮卩亠皿r:-At卩:卡M.叭 卩 廣帥MOV R6,DPH;暫存指針值MOV R7,DPLLOOP:CLR A ;A 清零MOV DPH,R6MOV DPL,R7MOVC A,A+DPTR;表數(shù)據(jù)送 AMOV P0,A;將 A 值送 P0 端口INC DPTR;數(shù)據(jù)指針加 1,指向表中的下一數(shù)據(jù)MOV R6,DPHMOV R7,DPLJNB P1.2,START ;P1.2 口低電平則轉 START 程序執(zhí)行JNB P1.3,

11、STOP ;P1.3 口低電平則轉 STOP 程序執(zhí)行JNB P1.4,DOWN ;P1.4 口低電平則轉 DOWN 執(zhí)行JNB P1.5,UP;P1.5 口低電平則轉 UP 左循環(huán)程序執(zhí)行LJMP MUSIC ;跳轉音樂程序BACK:DJNZ R0,LOOPCLR A;判斷是上還是下MOV DPH,R6MOV DPL,R7MOVC A,A+DPTRJNZ DOWNLIGHTLJMP UPLIGHT BOFANG:MOV TMOD,#11H;音樂播放初始設置MOV IE,#82HMOV 40H,#00HRETMUSIC:MOV A,40H;音樂播放處理MOV DPH,50H;取表地址MOV D

12、PL,51HMOVC A,A+DPTR;將表數(shù)據(jù)送累加器 AJZ ST0P2;累加器 A 為 0 則轉移(說明歌曲播放完 得重新播放)MOV R1,AANL A,#0FHRL AM0V R2,AM0V A,R1SWAP AANL A,#0FHJNZ SINGCLR TR0LJMP W1SING: DEC AM0V 22H,ARL AMOVDPTR,#TABLE00MOVCA,A+DPTRMOVTH0,AMOV21H,AMOVA,22HRL AINC AMOVC A,A+DPTRMOV TL0,AMOV 20H,ASETB TR0W1: LCALL DELAYINC 40HJNZ STOP1 ;

13、A 不為 0 則轉移LJMP BACKSTOP1: CLR TR0 ;音符結束重新播放處理LJMP BACK STOP2: CLR TR0 ;整首歌曲播放結束處理MOV R2,#03HLCALL DELAYLCALL BOFANGLJMP BACKTABLE00: DW 64580,64684,64777,64820DW 64898,64968,65030,64260DW 64400,64524,65058,63835,64021INT:PUSH PSWPUSH ACCMOV TH0,21HMOV TL0,20HCPL P3.5POP ACCPOP PSWRETIDELAY: MOV R4,#

14、100 ;延時 100msLOOP3: MOV R5,#0FFHLOOP4: DJNZ R5,$DJNZ R4,LOOP3DJNZ R2,DELAYRETTABLE1:DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH,01H TABLE2:DB 7FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH,0FEH,00HTABLE10:DB 0d4H,84H,94H,82H,92HDB 12H,22H,82H,92H,02H,92H,82H,0d2HDB 82H,92H,14H,84H,02H,0d1H,0d1HDB 0c2H,0d2H,84H,0d2

15、H,0d2H,82H,82HDB 84H,82H,82H,94H,82H,0d2HDB 82H,82H,82H,92H,02H,82H,82H,0d2HDB 0c4H,84H,0d4H,92H,0d2HDB 82H,0d2H,82H,92H,98HDB 04H,94H,88HDB 04H,94H,88HDB 04H,94H,88HDB 04H,94H,88H,04HDB 32H,32H,22H,12H,02H,92H,12H,92HDB 32H,32H,22H,12H,02H,92H,12H,92HDB 32H,32H,22H,12H,02H,92H,12H,22HDB 54H,44H,34H

16、,12H,22HDB 34H,22H,12H,02H,92H,12H,92HDB 32H,32H,22H,12H,02H,92H,12H,92HDB 32H,32H,22H,12H,02H,92H,12H,22HDB 54H,44H,32H,22H,12H,92HDB 00HEND4.1 程序流程圖:程序如下=ORG00 OOHAJMP MAINORG OOOBHAJMP I XTORG 0020HXlAINrJNB P12.START;判斷按鍵PL 2(開始犍為0時轉MAIN程序JAT MAIN:否則返回STAKTAIOV 50H=HIGH TABLE 10開始默認情況下上到下)51K=L

17、OV TAE LE10ACALL EOFANG;音樂播放初始設置LAIP DOWNLIGHTST OP: MOV PO:=OFFH停止SETBP3.5JNB Pl.2,ST ARTAJMP STOPDOWN:MOV 50H=HIGH TABLE 10;上到下MOV 51 H=LOW TABLE10ACALL BOFANG;音樂播放初始設置DOXNLIGHT:MOV DPTR產TABLEI;將TABLEI首地址賦數(shù)據(jù)?AJMP GETDATAVP:MOV 50H=HIGH TABLE 10;下到上IO51H:=LOW TABLE 10ACALL BOFANG;音樂播放初始i殳置UPLIGHT:M

18、OVDPTRMTABLE2:將TABLE2首地址賦數(shù)據(jù)指針GE TD ATA:IO、R0尸OSHMOVR6,DPH曹存指針值y-iovR7QPLLOOP:CLRA;A清零MOVDPH:R6y-iovDPL.R7iovcA念A+DPTR=表數(shù)據(jù)進AMOVP0:A;將A值送P0端口INCDPTR;數(shù)據(jù)指針加1,指向表中的下一數(shù)據(jù)1OVR6RPHiovR7fDPLJXBP1.2.START:Pl.2口低電平則轉START程序執(zhí)行JXBP1.3.ST0P:Pl.3口低電平則轉STOP稈序執(zhí)行MOVC AA+DPTR JNZ DOWNLIGHTLJMPUPLIGHTBOFANG:MOV IE =82HM

19、OV 40H=00HRETMUSIC: MOV As40H;音樂播放處理MOV DPH30H;取表地址MOV DPL.51HMOVC A忽A-DPTR;超表數(shù)據(jù)送累加器AJZ STOP::累加盎A為0見轉移(說明歌曲捲放無得重新權放)MOV R1AAXL A xOFHRL AMOV R2AMOV ARISWAP AANL A-OFHJNZSINGCLR TROLJNfP V1SING: DEC AMOV 22HrARL AMOV DPTR產TABLEOO MOVC AfQA-DPTRMOV THOrAMOV 21H?AA,22HRL AINC AJNBJNBP14DOWNP1,UPMUSICR

20、O.LOOPADPHR6DPLJT.P1-4口低電半則轉;判斷杲上還是下MO- TMOD =11H音樂播放初IOYC AsgA*DPTRMOV TLO.AMOV 20H:ASETB TROWl: LCALL DELAYIXC40HJNZSTOPl;A不為0則轉移LJMPBACKSTOP1: CLRTRO:音符結束重新播放處理LJN1PBACKSTOP2: CLRTRO;整首歌曲播放結東處理MOVR2,網3HLCALL DELAYLCALL BOFANGLJMPBACKTABLEOO:DW 64580=646S4:64777:64820DW 64898.6496&65 030,64260DW 6

21、4400.6452丄650乂6丸更.64021 * INT:PUSH PSWPUSH ACCMOV TH0.21HI0TL0.20HCPL P3.5POP ACCPOP PSWRETILOOPS:MOV R20FFHLOOP4:DJNZ R5=SDJNZ R4SLOOP3DJNZ R2.DELAYRETTAB LEI:DB OFEH:OFDH?OFBH:OF-HrOEFH?ODFH?OBFHJFH?01HTABLE2:DB -FH.OBFH.ODFH.OEFH.OFH.OIBH.OFDH.OFEH.OOHTABLE 10:DB 0d4H,84H,94H,82H,92HDB 12HJ2H.82H

22、.92H.02H.92H.82H.0d2HDB 82H;92Hs14H,84Hs02Hs0dlH,0d:HDB 0c2H,0d2H,84H,0d2Ht0d2H,82H182HDB 84H:82H:82H;94H:82H:0d2HDB 82Hs82H,82H,92H,02H,82H,82H.Od2HDB 0c4Hr84H!0d4HJ92H,0d2HDB 82H.0d2H.82H.92H.98HDB 04H,94H,SSHDB 04H.94H.SSH DB 04H:94H$8HDB 04H,94H,88H,04HDB 32H:32H:22H2H:02H:92H:12H:92HDB 32H.32H.

23、22H. 12H,02H,92H, 12H.92HDB 32H!32H,22H,12H,02H592H!12H522HDB 54HS44H34HJ2HS22HDB 34Hs22H,12HJ02H,92Hs12H:92HDB32H:32HJ22HJ12H!02H:92H:12H:92HDB 32H:32H:22H:12H:02Hr92H:12H:22HDB 54H.44H.32H.22H.12H.92H DELAY; MOV R4=100, 延時100msDB OOHEND四系統(tǒng)的軟件設計4.1 程序流程圖: 程序如ORG 0000H AJMP MAIN ORG 000BH AJMP INT O

24、RG 0020H MAIN:JNB P1.2,START ;判斷按鍵 P1.2(開始鍵)為 0 時轉 MAIN 程序 JMP MAIN ;否則返回START:MOV 50H,#HIGH TABLE10 開 始 ( 默 認 情 況 下 上 到 下) MOV 51H,#LOW TABLE10ACALL BOFANG ; 音樂播放初始設置LJMP DOWNLIGHTSTOP:MOV P0,#0FFH 停止 SETB P3.5JNB P1.2,START AJMP STOPDOWN:MOV 50H,#HIGH TABLE10 ;上到下MOV 51H,#LOW TABLE10 ACALL BOFANG

25、;音樂播放初始設置DOWNLIGHT:MOV DPTR,#TABLE1 ;將 TABLE1首 地址賦數(shù) 據(jù)指針AJMP GETDATAUP:MOV 50H,#HIGH TABLE10 ;下到上MOV 51H,#LOW TABLE10 ACALL BOFANG ;音樂播放初始設置UPLIGHT:MOV DPTR,#TABLE2 ;將 TABLE2首地址賦數(shù)據(jù)指針GETDA TA:MOV R0,#08H MOV R6,DPH ;暫存指針值MOV R7,DPL LOOP:CLR A ;A清零 MOV DPH,R6 MOV DPL,R7 MOVC A,A+DPTR ;表數(shù)據(jù)送 AMOV P0,A ;將

26、 A 值送P0 端 口INC DPTR ; 數(shù) 據(jù) 指 針 加 1,指向表中的下一數(shù)據(jù) MOV R6,DPH MOV R7,DPL JNB P1.2,START ;P1.2 口低電平則轉 START 程序執(zhí) 行 JNBP1.3,ST0P ;P1.3 口低電平則轉 STOP 程序執(zhí)行 JNB P1.4Q0WN ;P1.4 口低電平則 轉 DOWN 執(zhí)行 JNBP1.5,UP;P1.5 口低電平則轉 UP 左循環(huán)程序執(zhí)行 LJMP MUSIC ;跳 轉 音 樂 程 序 BACK: DJNZ R0,LOOP CLR A ;判 斷 是 上 還 是下 MOV DPH,R6MOV DPL,R7 MOVC

27、A,A+DPTR JNZ DOWNLIGHTLJMP UPLIGHT BOFANG: MOV TMOD,#11H ;音 樂 播 放 初 始 設置 MOV IE,#82H MOV 40H,#00H RETMUSIC: MOV A,40H ; 音樂播放處理 MOV DPH,50H ; 取表地址 MOV DPL,51HMOVC A,A+DPTR ; 將表數(shù)據(jù)送累加器 A JZ STOP2 ; 累加器 A 為 0 則轉移 (說明歌曲播 放 完 得重 新 播 放 ) MOV R1,A ANL A,#0FH RL A MOV R2,A MOV A,R1 SW AP A ANL A,#0FH JNZSING

28、 CLR TR0 LJMP W1 SING: DEC A MOV 22H,A RL A MOV DPTR,#TABLE00 MOVCA,A+DPTR MOV TH0,A MOV 21H,A MOV A,22H RL A INC A MOVC A ,A+DPTR MOV TL0,AMOV 20H,A SETB TR0 W1: LCALL DELAY INC 40H J NZ STOP1 ;A 不為 0 則轉移 LJMP BACKSTOP1: CLR TR0 ; 音符結束重新播放處 理 LJMP BACK STOP2: CLR TR0 ; 整 首 歌 曲 播 放 結 束處 理 MOV R2,#03

29、H LCALL DELAY LCALL BOFANG LJMP BACK TABLE00: DW 64580,64684,64777,64820 DW 64898,64968,65030,64260 DW 64400,64524,65058,63835,64021 I NT:PUSH PSW PUSH ACC MOV TH0,21HMOV TL0,20H CPL P3.5 POP ACC POP PSW RETI DELAY: MOV R4,#100 ; 延 時100ms LOOP3: MOV R5,#0FFH LOOP4: DJNZ R5,$ DJNZ R4,LOOP3 DJNZ R2,DE

30、LAYRET TABLE1:DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH,01H TABLE2:DB 7FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH,0FEH,00H ;- TABLE10: DB 0d4H,84H,94H,82H,92HDB 12H,22H,82H,92H,02H,92H,82H,0d2H DB 82H,92H,14H,84H,02H,0d1H,0d1H DB 0c2H,0d2H,84H,0d2H,0d2H,82H,82H DB 84H,82H,82H,94H,82H,0d2HDB 82H,82H,82H,92H,02H,82H,82H,0d2H DB 0c4H,84H,0d4H,92H,0d2H DB 82H,0d2H,82H,92H,98H DB 04H,94H,88H DB 04H,94H,88H DB 04H,94H,88H DB 04H,94H,88H,04HDB 32H,32H,22H,12H,02H,92H,12H,92H DB 32H,32H,22H,12H,02H,92H,12H,92H DB 32H,32H,22H,12H,02H,92H,12H,22H DB 54H,44H,34H,12H,22HDB 34H,22H,12H,02H,92H,12H,92H DB 32H

溫馨提示

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

評論

0/150

提交評論