基于51單片機設計的音樂跑馬燈課程設計.doc_第1頁
基于51單片機設計的音樂跑馬燈課程設計.doc_第2頁
基于51單片機設計的音樂跑馬燈課程設計.doc_第3頁
全文預覽已結束

下載本文檔

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

文檔簡介

學 號: 0121118700107課 程 設 計題 目基于at89c52單片機的音樂跑馬燈學 院物流工程學院專 業(yè)物流工程班 級物流zy1101班姓 名申聚鵬 同 組 者指導教師袁兵2013年12月28日課程設計任務書學生姓名: 申 聚 鵬 專業(yè)班級: 物流zy1101班 指導教師: 袁 兵 工作單位: 物流工程學院 題 目: 基于at89c52單片機的音樂跑馬燈 初始條件:1. protues 7 professional的isis 7 professional和ares 7 professional軟件2. keil uvision4軟件 3.單片機的相關資料指導書 要求完成的主要任務: (包括課程設計工作量及其技術要求,以及說明書撰寫等具體要求)基于at89c52單片機的音樂跑馬燈的設計要求如下:a.有16個發(fā)光二極管做跑馬燈,其中跑馬燈有16種燈亮模式。b.有專門的按鍵用以切換跑馬燈的模式,并且對于任何一種跑馬燈模式都可以對燈亮速度進行控制。c.每一種跑馬燈模式用led數(shù)碼管進行顯示(0e)。d.當跑馬燈處于e模式時,音樂響起,音樂可以進行切換。 時間安排:十八周到十九周設計,十九周答辯指導教師簽名: 年 月 日系主任(或責任教師)簽名: 年 月 日本科生課程設計成績評定表姓 名申聚鵬性 別男專業(yè)、班級物流zy1101班課程設計題目:基于at89c52單片機的音樂跑馬燈課程設計答辯或質(zhì)疑記錄: 成績評定依據(jù):1. 選題合理、目的明確 10分2. 設計方案正確,具有可行性、創(chuàng)新性 20分3. 設計結果 20分4. 態(tài)度認真、學習刻苦、遵守紀律 15分5. 設計報告的規(guī)范化、參考文獻充分(不少于5篇) 10分6. 答辯 25分最終評定成績(以優(yōu)、良、中、及格、不及格評定)指導教師簽字: 年 月 日摘 要單片機技術是一門不可或缺的技術,對我們將來的工作以及生活和學習都有很密切的聯(lián)系。近年來,隨著電子技術和微機計算機的迅速發(fā)展,單片機的檔次不斷提高,其應用領域也在不斷的擴大,已在工業(yè)控制、尖端科學、智能儀器儀表、日用家電、汽車電子系統(tǒng)、辦公自動化設備、個人信息終端及通信產(chǎn)品中得到了廣泛的應用,成為現(xiàn)代電子系統(tǒng)中最重要的智能化的核心部件。 本設計使用at89c52芯片,利用p0的8個端口連接8個發(fā)光二極管,p1的8個端口連接8個發(fā)光二極管,通過p0.0到p0.7的值和p1.0到p1.7的值控制“跑馬燈”的亮滅,以達到顯示效果。設計的中斷程序要對多個按鍵動作進行響應,燈光變換的花樣有15種,用模式按鈕切換。按下模式按鈕鍵,程序?qū)词宸N模式切換,每按一次模式按鈕鍵,切換一次跑馬燈模式,而加速按鈕和減速按鈕可以改變閃爍速度;最后一種模式為音樂模式,加速按鈕可切換音樂。 在單片機運行時,可以在不同狀態(tài)下讓跑馬燈顯示不同的組合,作為單片機系統(tǒng)正常的指示。當單片機系統(tǒng)出現(xiàn)故障時,可以利用跑馬燈顯示當前的故障碼,對故障做出診斷。此外,跑馬燈在單片機的調(diào)試過程中也非常有用,可以在不同時候?qū)⑿枰募拇嫫骰蜿P鍵變量的值顯示在跑馬燈上,提供需要的調(diào)試信息。關鍵詞:音樂跑馬燈;at89c52單片機;74ls245驅(qū)動芯片;led發(fā)光二極管1 設計概述11.1設計目的11.2設計作用11.3設計要求11.4系統(tǒng)設計框圖12元器件介紹32.1at89c52單片機32.2驅(qū)動芯片74ls24532.3其他元件及功能43 硬件電路設計63.1單片機最小系統(tǒng)63.2led顯示部分73.3按鈕控制部分73.4數(shù)碼管顯示電路83.5蜂鳴器部分8 3.6系統(tǒng)總電路圖94 軟件設計104.1 程序流程圖104.2 程序設計105 結束語33參考文獻341 設計概述1.1設計目的 利用所學單片機的理論知識進行軟硬件整體設計,培養(yǎng)學生分析、解決問題的能力,鍛煉學生理論聯(lián)系實際、綜合應用的能力。通過實踐動手制作硬件和軟件,綜合應用本學期所學的單片機知識,達到加深學習該專業(yè)知識的目的。1.2設計作用跑馬燈是一種能像馬兒一樣跑的燈,就是利用單片機控制led燈的閃爍方式使其就像馬兒奔跑時馬蹄的起落。音樂跑馬燈,就是在普通跑馬燈的基礎上加入了音樂,并通過喇叭將其在適當?shù)臅r刻播放出來。單片機的音樂跑馬燈由16個led發(fā)光二極管組成,在單片機系統(tǒng)中一般用來指示和顯示單片機的運行狀態(tài)。通過程序控制使得單片機不同狀態(tài)下的16個led發(fā)光二級管顯示不同的組合,以此顯示單片機的工作狀態(tài),也可檢查單片機是否發(fā)生故障。當然,在實際生活中音樂跑馬燈還有許多用處,其可以應用于各種建筑物、大樓、酒吧、ktv和夜總會等娛樂場所,可以制作出各種各樣的炫目多彩的霓虹燈,為夜晚帶來不一樣的光彩。1.3設計要求 有16個發(fā)光二極管做跑馬燈,其中跑馬燈有16種燈亮模式。 有專門的鍵盤用以切換跑馬燈的模式,并且對于任何一種跑馬燈模式都可以對亮燈速度進行控制。 每一種跑馬燈模式用led數(shù)碼管進行顯示。 當跑馬燈處于一種模式時,伴隨的音樂響起,音樂有3首,并可以對其進行切換。1.4系統(tǒng)設計框圖基于at89c52單片機的多模式帶音樂的跑馬燈控制系統(tǒng)由電路電源、單片機主控電路、模式切換以及調(diào)速按鍵控制電路、led數(shù)碼管顯示電路和十六個發(fā)光二極管的跑馬的電路幾部分組成,系統(tǒng)框圖如圖1.1所示。 圖1.1系統(tǒng)設計框圖2元器件介紹2.1at89c52單片機at89c52是51系列單片機的一個型號,它是atmel公司生產(chǎn)的。at89c52是一個低電壓,高性能cmos 8位單片機,片內(nèi)含8k bytes的可反復擦寫的flash只讀程序存儲器和256 bytes的隨機存取數(shù)據(jù)存儲器(ram),器件采用atmel公司的高密度、非易失性存儲技術生產(chǎn),兼容標準mcs-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和flash存儲單元,功能強大的at89c52單片機可為您提供許多較復雜系統(tǒng)控制應用場合。at89c52有40個引腳,32個外部雙向輸入/輸出(i/o)端口,同時內(nèi)含2個外中斷口,3個16位可編程定時計數(shù)器,2個全雙工串行通信口,2個讀寫口線,at89c52可以按照常規(guī)方法進行編程,也可以在線編程。其將通用的微處理器和flash存儲器結合在一起,特別是可反復擦寫的flash存儲器可有效地降低開發(fā)成本。at89c52單片機如圖2.1所示。 圖2.1 at89c52單片機2.2驅(qū)動芯片74ls24574ls245是我們常用的芯片,用來驅(qū)動led或者其他的設備,它是8路同相三態(tài)雙向總線收發(fā)器,可雙向傳輸數(shù)據(jù)。74ls245還具有雙向三態(tài)功能,既可以輸出,也可以輸入數(shù)據(jù)。當at89c52單片機的p0口總線負載達到或超過p0最大負載能力時,必須接入74ls245等總線驅(qū)動器。當片選端低電平有效時,=“0”,信號由 b 向 a 傳輸;ab=“1”,信號由 a 向 b 傳輸;(發(fā)送)當ce為高電平時,a、b均為高阻態(tài)。由于p2口始終輸出地址的高8位,接口時74ls245的三態(tài)控制端1g和2g接地,p2口與驅(qū)動器輸入線對應相連。p0口與74ls245輸入端相連, 端接地,保證數(shù)據(jù)線暢通。8051的和相與后接ab/,使得rd和psen有效時,74ls245輸入(p0.1d1),其它時間處于輸出(p0.1d1)。74ls245驅(qū)動芯片如圖2.2所示。圖2.2 74ls245驅(qū)動芯片2.3其他元件及功能 led發(fā)光二極管:指示和顯單片機狀態(tài)。 揚聲器:播放歌曲。 按鈕:模式按鈕用于切換單片機工作模式,加速按鈕用于加快led燈的閃爍頻率,減速按鈕用于減緩led燈的閃爍頻率,復位按鈕用于人工復位。 數(shù)碼管:用于顯示單片機當前處于何種模式。 晶體振蕩器:用于構成單片機的復位電路。 電容:用于構成單片機的復位電路。 電阻:限流分壓作用,是電路正常工作并保護電路。元件清單如表2.1所示。表2.1 元件清單元 件數(shù) 量元 件數(shù) 量at89c521電容20f174ls2453電阻47016led發(fā)光二極管16電阻1007揚聲器1電阻4801按鈕4電源+5v8數(shù)碼管1晶體振蕩器1電容30pf23 硬件電路設計3.1單片機最小系統(tǒng)單片機最小系統(tǒng)或者稱為最小應用系統(tǒng),素質(zhì)用最少的元件組成的單片機可以工作的系統(tǒng),對51系列單片機來說,最小系統(tǒng)一般應該包括:單片機、復位電路、晶振電路。復位電路:該復位電路采用手動復位和按鍵復位,所謂手動復位,是指通過接通一按鈕開關,使單片機進入復位狀態(tài),使rst獲得高電平,該方法可實現(xiàn)比較快速的復位。當然,若不按下按鈕,需等待電容充完電后使得rst獲得高電平復位,復位電路如圖3.1所示。圖3.1復位電路晶振電路:8051單片機的時鐘信號通常用兩種電路形式電路得到:內(nèi)部震蕩方式和外部中斷方式。在引腳xtal1和xtal2外部接晶振電路器(簡稱晶振)或陶瓷晶振器,就構成了內(nèi)部晶振方式。由于單片機內(nèi)部有一個高增益反相放大器,當外接晶振后,就構成了自激振蕩器并產(chǎn)生振蕩時鐘脈沖。內(nèi)部振蕩方式的外部電路如下圖所示。其電容值一般在530pf,晶振頻率的典型值為12mhz,采用6mhz的情況也比較多。內(nèi)部振蕩方式所得的時鐘信號比較穩(wěn)定,實用電路使用較多。晶振電路圖如圖3.2所示。圖3.2 晶振電路3.2led顯示部分顯示部分,用十六個發(fā)光二極管通過總線和74ls245驅(qū)動芯片分別接到了at89c52單片機的p0和p1口。通過程序控制p0和p1的十六個端口按一定方式一次為低電平點亮端口led。若把p0口當作了通用的i/o口,則需要加上拉電阻,可是我們所采用的是使用總線方式輸出因此不需要上拉電阻。本設計采用的是發(fā)光二極管陽極接電源,因此要求p0口p1口輸出低電平時,二極管才會發(fā)光。led顯示部分如圖3.3所示。圖3.3 led顯示部分3.3按鈕控制部分用一個按鈕進行模式的切換,即用該按鈕控制多種不同的亮燈模式,分別有16種模式,從模式“0”至模式“f”,開啟模式“f”是有音樂放出。用一個按鈕(加速按鈕)進行發(fā)光二極管亮燈加速的調(diào)節(jié),在第“f”模式時該按鈕則可進行歌曲的切換。用一個按鈕(減速按鈕)進行發(fā)光二極管亮燈減速的調(diào)節(jié),在第9模式時該按鈕則可進行歌曲的切換。按鈕控制部分如圖3.4所示。圖3.4 按鈕控制部分3.4數(shù)碼管顯示電路數(shù)碼管上分別顯示0f十六個數(shù)字,分別代表十六種模式。采用共陽極連接,即數(shù)碼管的af端要輸入低電平時內(nèi)部二極管才導通。在數(shù)碼管每個端口與74ls24 5驅(qū)動芯片與數(shù)碼管之間連上100的電阻。數(shù)碼管顯示電路的具體硬件設計如圖3.5所示。圖3.5 數(shù)碼管顯示電路3.5蜂鳴器部分蜂鳴器是一種將電信號轉換成聲音信號的電聲元件。確切的說,蜂鳴器工作實際上是把一定范圍內(nèi)的音頻電功率訊號通過換能方式轉變失真小并且有足夠聲壓級的可聽聲音。本課程設計直接將蜂鳴器街道單片機的p2.6端口,蜂鳴器具體電路如圖3.6所示。圖3.6 蜂鳴器電路3.6系統(tǒng)總電路圖音樂跑馬燈的總電路圖如3.7所示。圖3.7 音樂跑馬燈總電路3.7操作說明在仿真軟件中,按下屏幕左下角開始按鍵時,數(shù)碼管顯示為“0”,發(fā)光二極管以一定方式開始閃爍,此時按下模式按鈕使得數(shù)碼管顯示為“1”時,發(fā)光二極管以一另種方式開始閃爍。此時,若按加速按鈕,則加快了發(fā)光二極管的閃爍速度,有4種不同的速度。當加速到最大速度時,再按加速按鈕則無法繼續(xù)加速,此時可以按減速按鈕進行減速。以此類推,模式“1”到模式“e”,每種模式都給有一種閃爍方式。當繼續(xù)按模式按鈕使的模式轉換為模式“f”時,蜂鳴器開始放歌,發(fā)光二極管按照音樂音調(diào)變動閃爍。此時的加速按鈕可以進行歌曲的切換,按一次按鈕換一首歌。4 軟件設計4.1 程序流程圖該程序采用兩個程序編寫:第一個位單片機主程序,作用是使單片機完成相應上電功能;第二個是音樂產(chǎn)生程序,在第一個程序中包含第二個程序的頭文件即可。程序流程圖如圖4.1及4.2所示。 圖4.1 主程序 圖4.2 音樂程序流程圖4.2 程序設計#include /包括一個52標準的內(nèi)核頭文件/#include unsigned char runmode;void delay1ms(unsigned int count) /延時子程序 unsigned int i,j; for(i=0;icount;i+) for(j=0;j1200;j+); unsigned char code leddisplaycode=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff; /led數(shù)碼管void display(unsigned char value) p3=leddisplaycode value; /數(shù)值輸出至ledvoid ledflash(unsigned char count) unsigned char i; bit flag; for(i=0;i8)&0x00ff);void initialcpu(void) runmode=0x00; timer0count=0; systemspeedindex=4; p1=0x00; p0=0x00; p2=0xff; p3=0x00; delay1ms(500); p1=0xff; p0=0xff; p2=0xff; p3=0xff; setspeed(systemspeedindex); display(runmode);unsigned int ledindex=0;bit leddirection=1,ledflag=1;void mode_0(void) ledshow(0x0001ledindex); ledindex=(ledindex+1)%16;void mode_2(void) if(leddirection) ledshow(0x0001ledindex); if(ledindex=15) leddirection=!leddirection; ledindex=(ledindex+1)%16;void mode_3(void) if(leddirection) ledshow(0x0001ledindex); if(ledindex=15) leddirection=!leddirection; ledindex=(ledindex+1)%16;void mode_4(void) if(leddirection) if(ledflag) ledshow(0xfffeledindex); else if(ledflag) ledshow(0x7fffledindex); else ledshow(0xfffeledindex); if(ledindex=15) leddirection=!leddirection; if(leddirection) ledflag=!ledflag; ledindex=(ledindex+1)%16;void mode_5(void) if(leddirection) ledshow(0x000fledindex); if(ledindex=15) leddirection=!leddirection; ledindex=(ledindex+1)%16;void mode_6(void) if(leddirection) ledshow(0x000fledindex); if(ledindex=15) leddirection=!leddirection; ledindex=(ledindex+1)%16;void mode_7(void) if(leddirection) ledshow(0x003fledindex); if(ledindex=9) leddirection=!leddirection; ledindex=(ledindex+1)%10;void mode_8(void) ledshow(+ledindex);void mode_9(void) ledshow(0x0003ledindex); ledindex=(ledindex+1)%16;void mode_b(void) if(leddirection) ledshow(0x0003ledindex); if(ledindex=15) leddirection=!leddirection; ledindex=(ledindex+1)%16; void mode_c(void) if(leddirection) ledshow(0x8080ledindex); else ledshow(0x0101ledindex); if(ledindex=7) leddirection=!leddirection; ledindex=(ledindex+1)%8;void mode_d(void) if(leddirection) ledshow(0x1111ledindex); if(ledindex=3) leddirection=!leddirection; ledindex=(ledindex+1)%4;void mode_e(void) if(leddirection) ledshow(0x5555ledindex); if(ledindex=3) leddirection=!leddirection; ledindex=(ledindex+1)%4;void timer0eventrun(void)/模式選擇 if(runmode=0x00) mode_0(); else if(runmode=0x01) mode_1(); else if(runmode=0x02) mode_2(); else if(runmode=0x03) mode_3(); else if(runmode=0x04) mode_4(); else if(runmode=0x05) mode_5(); else if(runmode=0x06) mode_6(); else if(runmode=0x07) mode_7(); else if(runmode=0x08) mode_8(); else if(runmode=0x09) mode_9(); else if(runmode=0x0a) mode_a(); else if(runmode=0x0b) mode_b(); else if(runmode=0x0c) mode_c(); else if(runmode=0x0d) mode_d(); else if(runmode=0x0e) mode_e();void timer2(void) interrupt 5 using 3 tf2=0; if(+timer0count=systemspeed) timer0count=0; timer0eventrun(); unsigned char musicindex=0;int musicnumber=3;void keydispose(unsigned char key) if(key&0x01) leddirection=1; ledindex=0; ledflag=1; runmode=(runmode+1)%16; display(runmode); if(runmode=0x0f) tr2=0; else tr2=1; if(key&0x02) if(runmode=0x0f) musicindex=(musicindex+musicnumber-1)%musicnumber; else if(systemspeedindex0) -systemspeedindex; setspeed(systemspeedindex); else ledflash(6); if(key&0x04) if(runmode=0x0f) musicindex=(musicnumber+1)%musicnumber; else if(systemspeedindex3) +systemspeedindex; setspeed(systemspeedindex); else ledflash(6); unsigned char code music_1=0x17,0x02,0x17,0x03,0x18,0x03,0x19,0x02,0x15,0x03,0x16,0x03,0x17,0x03,0x17,0x03,0x17,0x03,0x18,0x03,0x19,0x02,0x16,0x03,0x17,0x03,0x18,0x02,0x18,0x03,0x17,0x03,0x15,0x02,0x18,0x03,0x17,0x03,0x18,0x02,0x10,0x03,0x15,0x03,0x16,0x02,0x15,0x03,0x16,0x03,0x17,0x02,0x17,0x03,0x18,0x03,0x19,0x02,0x1a,0x03,0x1b,0x03,0x1f,0x03,0x1f,0x03,0x17,0x03,0x18,0x03,0x19,0x02,0x16,0x03,0x17,0x03,0x18,0x03,0x17,0x03,0x18,0x03,0x1f,0x03,0x1f,0x02,0x16,0x03,0x17,0x03,0x18,0x03,0x17,0x03,0x18,0x03,0x20,0x03,0x20,0x02,0x1f,0x03,0x1b,0x03,0x1f,0x66,0x20,0x03,0x21,0x03,0x20,0x03,0x1f,0x03,0x1b,0x03,0x1f,0x66,0x1f,0x03,0x1b,0x03,0x19,0x03,0x1b,0x03,0x15,0x03,0x1a,0x66,0x1a,0x03,0x19,0x03,0x15,0x03,0x15,0x03,0x17,0x03,0x16,0x66,0x17,0x04,0x18,0x04,0x18,0x03,0x19,0x03,0x1f,0x03,0x1b,0x03,0x1f,0x66,0x20,0x03,0x21,0x03,0x20,0x03,0x1f,0x03,0x1b,0x03,0x1f,0x66,0x1f,0x03,0x1b,0x03,0x19,0x03,0x19,0x03,0x15,0x03,0x1a,0x66,0x1a,0x03,0x19,0x03,0x19,0x03,0x1f,0x03,0x1b,0x03,0x1f,0x00,0x1a,0x03,0x1a,0x03,0x1a,0x03,0x1b,0x03,0x1b,0x03,0x1a,0x03,0x19,0x03,0x19,0x02,0x17,0x03,0x15,0x17,0x15,0x03,0x16,0x03,0x17,0x03,0x18,0x03,0x17,0x04,0x18,0x0e,0x18,0x03,0x17,0x04,0x18,0x0e,0x18,0x66,0x17,0x03,0x18,0x03,0x17,0x03,0x18,0x03,0x20,0x03,0x20,0x02,0x1f,0x03,0x1b,0x03,0x1f,0x66,0x20,0x03,0x21,0x03,0x20,0x03,0x1f,0x03,0x1b,0x03,0x1f,0x66,0x1f,0x04,0x1b,0x0e,0x1b,0x03,0x19,0x03,0x19,0x03,0x15,0x03,0x1a,0x66,0x1a,0x03,0x19,0x03,0x15,0x03,0x15,0x03,0x17,0x03,0x16,0x66,0x17,0x04,0x18,0x04,0x18,0x03,0x19,0x03,0x1f,0x03,0x1b,0x03,0x1f,0x66,0x20,0x03,0x21,0x03,0x20,0x03,0x1f,0x03,0x1b,0x03,0x1f,0x66,0x1f,0x03,0x1b,0x03,0x19,0x03,0x19,0x03,0x15,0x03,0x1a,0x66,0x1a,0x03,0x19,0x03,0x19,0x03,0x1f,0x03,0x1b,0x03,0x1f,0x00,0x18,0x02,0x18,0x03,0x1a,0x03,0x19,0x0d,0x15,0x03,0x15,0x02,0x18,0x66,0x16,0x02,0x17,0x02,0x15,0x00,0x00,0x03;unsigned char code music_2=0x0f,0x01,0x15,0x02,0x16,0x02,0x17,0x66,0x18,0x03,0x17,0x02,0x15,0x02,0x16,0x01,0x15,0x02,0x10,0x02,0x15,0x00,0x0f,0x01,0x15,0x02,0x16,0x02,0x17,0x02,0x17,0x03,0x18,0x03,0x19,0x02,0x15,0x02,0x18,0x66,0x17,0x03,0x19,0x02,0x16,0x03,0x17,0x03,0x16,0x00,0x17,0x01,0x19,0x22,0x1b,0x02,0x1b,0x70,0x1a,0x03,0x1a,0x01,0x19,0x02,0x19,0x03,0x1a,0x03,0x1b,0x02,0x1a,0x0d,0x19,0x03,0x17,0x00,0x18,0x66,0x18,0x03,0x19,0x02,0x1a,0x03,0x19,0x0c,0x18,0x0d,0x17,0x03,0x16,0x01,0x11,0x02,0x11,0x03,0x10,0x03,0x0f,0x0c,0x10,0x02,0x15,0x00,0x1f,0x01,0x1a,0x01,0x18,0x66,0x19,0x03,0x1a,0x01,0x1b,0x02,0x1b,0x03,0x1b,0x03,0x1b,0x0c,0x1a,0x0d,0x19,0x03,0x17,0x00,0x1f,0x01,0x1a,0x01,0x18,0x66,0x19,0x33,0x1a,0x01,0x10,0x02,0x10,0x03,0x10,0x03,0x1a,0x0c,0x18,0x0d,0x17,0x03,0x16,0x00,0x0f,0x01,0x15,0x02,0x16,0x02,0x17,0x70,0x18,0x03,0x17,0x02,0x15,0x03,0x15,0x03,0x16,0x66,0x16,0x03,0x16,0x02,0x16,0x03,0x15,0x03,0x10,0x02,0x10,0x01,0x11,0x01,0x11,0x66,0x10,0x03,0x0f,0x0c,0x1a,0x02,0x19,0x02,0x16,0x03,0x16,0x03,0x18,0x66,0x18,0x03,0x18,0x02,0x17,0x03,0x16,0x03,0x19,0x00,0x00,0x00;unsigned char code music_3=0x17,0x03,0x16,0x03,0x17,0x01,0x16,0x03,0x17,0x03,0x16,0x03,0x15,0x01,0x10,0x03,0x15,0x03,0x16,0x02,0x16,0x0d,0x17,0x03,0x16,0x03,0x15,0x03,0x10,0x03,0x10,0x0e,0x15,0x04,0x0f,0x01,0x17,0x03,0x16,0x03,0x17,0x01,0x16,0x03,0x17,0x03,0x16,0x03,0x15,0x01,0x10,0x03,0x15,0x03,0x16,0x02,0x16,0x0d,0x17,0x03,0x16,0x03,0x15,0x03,0x10,0x03,0x15,0x03,0x16,0x01,0x17,0x03,0x16,0x03,0x17,0x01,0x16,0x03,0x17,0x03,0x16,0x03,0x15,0x01,0x10,0x03,0x15,0x03,0x16,0x02,0x16,0x0d,0x17,0x03,0x16,0x03,0x15,0x03,0x10,0x03,0x10,0x0e,0x15,0x04,0x0f,0x01,0x17,0x03,0x19,0x03,0x19,0x01,0x19,0x03,0x1a,0x03,0x19,0x03,0x17,0x01,0x16,0x03,0x16,0x03,0x16,0x02,0x16,0x0d,0x17,0x03,0x16,0x03,0x15,0x03,0x10,0x03,0x10,0x0d,0x15,0x00,0x19,0x03,0x19,0x03,0x1a,0x03,0x1f,0x03,0x1b,0x03,0x1b,0x03,0x1a,0x03,0x17,0x0d,0x16,0x03,0x16,0x03,0x16,0x0d,0x17,0x01,0x17,0x03,0x17,0x03,0x19,0x03,0x1a,0x02,0x1a,0x02,0x10,0x03,0x17,0x0d,0x16,0x03,0x16,0x01,0x17,0x03,0x19,0x03,0x19,0x03,0x17,0x03,0x19,0x02,0x1f,0x02,0x1b,0x03,0x1a,0x03,0x1a,0x0e,0x1b,0x04,0x17,0x02,0x1a,0x03,0x1a,0x03,0x1a,0x0e,0x1b,0x04,0x1a,0x03,0x19,0x03,0x17,0x03,0x16,0x03,0x17,0x0d,0x16,0x03,0x17,0x03,0x19,0x01,0x19,0x03,0x19,0x03,0x1a,0x03,0x1f,0x03,0x1b,0x03,0x1b,0x03,0x1a,0x03,0x17,0x0d,0x16,0x03,0x16,0x03,0x16,0x03,0x17,0x01,0x17,0x03,0x17,0x03,0x19,0x03,0x1a,0x02,0x1a,0x02,0x10,0x03,0x17,0x0d,0x16,0x03,0x16,0x01,0x17,0x03,0x19,0x03,0x19,0x03,0x17,0x03,0x19,0x03,0x1f,0x02,0x1b,0x03,0x1a,0x03,0x1a,0x0e,0x1b,0x04,0x17,0x02,0x1a,0x03,0x1a,0x03,0x1a,0x0e,0x1b,0x04,0x17,0x16,0x1a,0x03,0x1a,0x03,0x1a,0x0e,0x1b,0x04,0x1a,0x03,0x19,0x03,0x17,0x03,0x16,0x03,0x0f,0x02,0x10,0x03,0x15,0x00,0x00,0x00;unsigned char * selectmusic(unsigned char soundindex) unsigned char * musicaddress=0; switch(soundindex) case 0x00:musicaddress=&music_10;break; case 0x01:musicaddress=&music_20;break; case 0x02:musicaddress=&music_30;break; case 0x03:break; case 0x04:break; case 0x05:break; default:break; return musicaddress;#ifndef _soundplay_h_revision_first_#define _soundplay_h_revision_first_#define system_osc 12000000 /定義晶振頻率#define sound_space 4/5 /定義普通音符演奏長度分率,每四分音符間隔#define musicnumber 3 /歌曲的數(shù)目sbit beepio=p26; /定義輸出引腳extern void ledshow(unsigned int ledstatus);extern unsigned char getkey(void);extern void keydispose(unsigned char key);extern

溫馨提示

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

評論

0/150

提交評論