音樂播放器設(shè)計(jì)_第1頁
音樂播放器設(shè)計(jì)_第2頁
音樂播放器設(shè)計(jì)_第3頁
音樂播放器設(shè)計(jì)_第4頁
音樂播放器設(shè)計(jì)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

目錄TOC\o"1-5"\h\z前言 1\o"CurrentDocument"設(shè)計(jì)目的 2\o"CurrentDocument"硬件設(shè)計(jì) 2\o"CurrentDocument"2.1AT89S51簡介 2\o"CurrentDocument"2.2硬件電路設(shè)計(jì)的系統(tǒng)框圖 3\o"CurrentDocument"2.3AT89S51控制模塊的設(shè)計(jì) 4\o"CurrentDocument"2.4電源模塊設(shè)計(jì) 4\o"CurrentDocument"2.5播放模塊設(shè)計(jì) 4\o"CurrentDocument"2.6按鍵模塊設(shè)計(jì) 5\o"CurrentDocument"2.7LED顯示模塊設(shè)計(jì) 6軟件設(shè)計(jì) 7\o"CurrentDocument"3.1單片機(jī)發(fā)聲的基本原理 73.2設(shè)計(jì)的相關(guān)音樂說明 7\o"CurrentDocument"3.3主程序 8\o"CurrentDocument"3.3.1主程序設(shè)計(jì) 8\o"CurrentDocument"3.3.2主程序流程圖 8\o"CurrentDocument"3.4延時(shí)程序 8\o"CurrentDocument"3.4.1延時(shí)程序設(shè)計(jì) 9\o"CurrentDocument"3.4.2延時(shí)程序設(shè)計(jì) 9\o"CurrentDocument"3.5按鍵掃描程序 9\o"CurrentDocument"3.5.1按鍵程序設(shè)計(jì) 9\o"CurrentDocument"調(diào)試 10\o"CurrentDocument"4.1檢查硬件連接 10\o"CurrentDocument"4.2檢查軟件系統(tǒng) 10\o"CurrentDocument"設(shè)計(jì)總結(jié) 10\o"CurrentDocument"參考文獻(xiàn) 11\o"CurrentDocument"附錄 12\o"CurrentDocument"附錄1電路原理圖 12\o"CurrentDocument"附錄2PCB圖 13\o"CurrentDocument"附錄3源程序 14刖言二十世紀(jì)九十年代以來,計(jì)算機(jī)、信息、電子、控制、通信等技術(shù)得到迅速發(fā)展,促使了社會(huì)生產(chǎn)力的提高,也使人們的生產(chǎn)方式和生活方式產(chǎn)生了日新月異的變化。隨著人們生活水平的提高及對(duì)音樂的喜愛,對(duì)音樂播放器的品質(zhì),功能,品種等提出了越來越多的要求,表現(xiàn)在對(duì)控制系統(tǒng)性能、可靠性等要求越來越高。而品質(zhì)的提高,功能的更新,可靠性的增強(qiáng),品種的變化無不與產(chǎn)品的核心控制部分水平的提高密不可分。家用音樂播放器產(chǎn)品及其它有關(guān)消費(fèi)電器產(chǎn)品都是一些開環(huán)或閉環(huán)控制系統(tǒng),都由核心控制部分,執(zhí)行部分與人機(jī)界面三部分組成。而最為重要的控制部分一般是由單片機(jī)來執(zhí)行完成的,這就必將導(dǎo)致和促進(jìn)單片機(jī)在音樂領(lǐng)域應(yīng)用的發(fā)展?,F(xiàn)在這些由單片機(jī)實(shí)現(xiàn)的音樂播放器的功能越來越強(qiáng)、費(fèi)用越來越低。例如,就目前市場上的MP3的功能越來越強(qiáng)大體積卻越來越小,價(jià)格也逐漸便宜,被大多數(shù)人所能接受。但這些音樂播放器也或多或少的存在著一些問題,解決這些問題,非智能化的單片機(jī)莫屬。本設(shè)計(jì)由硬件電路設(shè)計(jì)和軟件程序設(shè)計(jì)兩大部分組成。整個(gè)硬件電路是由中心控制、播放、選曲、顯示等模塊組成,中心控制模塊采用AT89S51單片機(jī),播放模塊是由8550NPN三極管和電磁蜂鳴器組成,采用LED顯示模塊。軟件程序運(yùn)用C語言編程實(shí)現(xiàn)。設(shè)計(jì)目的本設(shè)計(jì)以MSC-51系列單片機(jī)為核心,充分利用了AT89S51芯片的I/O引腳,以獨(dú)立式鍵盤作為曲目的選擇鍵,采用LED對(duì)當(dāng)前曲目進(jìn)行顯示。本文從理論上分析了該設(shè)計(jì)方案的可行性,并預(yù)計(jì)能達(dá)到設(shè)計(jì)要求,主要體現(xiàn)在:?可播放多首音樂,且通過按鍵來選擇播放的音樂?選擇音樂時(shí),顯示音樂名稱?可暫停,能實(shí)現(xiàn)循環(huán)播放硬件設(shè)計(jì)2.1AT89S51簡介AT89S51是一個(gè)低功耗,高性能CMOS8位單片機(jī),片內(nèi)含4kBytesISP(In-systemprogrammable)的可反復(fù)擦寫1000次的Flash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISPFlash存儲(chǔ)單元,功能強(qiáng)大的微型計(jì)算機(jī)的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價(jià)比的解決方案。AT89S51具有如下特點(diǎn):40個(gè)引腳,4kBytesFlash片內(nèi)程序存儲(chǔ)器,128bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),32個(gè)外部雙向輸入/輸出(I/O)口,5個(gè)中斷優(yōu)先級(jí)2層中斷嵌套中斷,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時(shí)鐘振蕩器。(1)AT89S51引腳圖P1.0匚1=4。□VccPl.1匚2 33□P0.0/ADOP1.2匚3 33□P0.1/AD1P1.3匚4 37□P0.2/AD2P1.4匚5 36□P0.3/AD3M0SI/P1.5匚6 35□P0.4/AD4MISO/P1.6匚7 34□P0.5/AD5SCK/P1.7匚8 33□P0.6/AD6RST匚9 32□P0.7/AD7EXD/P3.0匚10 31□EA/VPPTKD/P3.1圖1][T89S51弓皆胡□ALE/PRO&IWT0/P3.2匚12 23□PESITI1IT1/P3.3匚13 23□P2.7/A15T0/P3.4匚14 27□P2.6/A14T1/P3.5匚■I I 一15 264L CL□P2.5/A13一 JJJLJ此外,AT89S51設(shè)計(jì)和配置了振蕩頻率可為0Hz并可通過軟件設(shè)置省電模式??臻e模式下,CPU暫停工作,而RAM定時(shí)計(jì)數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時(shí)該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。⑵主要功能特性:?兼容MCS-51指令系統(tǒng)?4k可反復(fù)擦寫(>1000次)ISPFlashROM?兼容MCS-51指令系統(tǒng)?32個(gè)雙向I/O口?4.5-5.5V工作電壓?2個(gè)16位可編程定時(shí)/計(jì)數(shù)器?時(shí)鐘頻率0-33MHz?全雙工UART串行中斷口線?128x8bit內(nèi)部RAM?2個(gè)外部中斷源?低功耗空閑和省電模式?中斷喚醒省電模式?3級(jí)加密位?看門狗(WDT)電路?軟件設(shè)置空閑和省電功能?雙數(shù)據(jù)寄存器指針?靈活的ISP?雙數(shù)據(jù)寄存器指針2.2硬件電路設(shè)計(jì)的系統(tǒng)框圖硬件電路如圖1所示由復(fù)位電路、電源電路、時(shí)鐘電路、按鍵輸入電路、LED顯示電路、蜂鳴器電路組成。按鍵模塊共由16個(gè)按鍵組成,其中4個(gè)鍵作為音符的輸入或音樂的播放選擇。LED顯示模塊利用LED對(duì)當(dāng)前播放的歌曲稱進(jìn)行顯示。揚(yáng)聲器播放模塊由三極管及無源蜂鳴器組成,通過控制模塊的控制對(duì)當(dāng)前音樂進(jìn)行播放。

2.3AT89S51控制模塊的設(shè)計(jì)時(shí)鐘振蕩電路在加電后延遲大約10ms振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時(shí)鐘信號(hào),其振蕩頻率主要由石英晶振的頻率決定。電路中兩個(gè)電容C1、C2的作用使電路快速振,提高電路的運(yùn)行速度。通過高電平時(shí)單片機(jī)復(fù)位,在時(shí)鐘電路開始工作后,當(dāng)高電平的時(shí)間超過大約5ms的時(shí)候,即可實(shí)現(xiàn)復(fù)位。此復(fù)位電路同時(shí)具備了上電自動(dòng)復(fù)位和按鍵人工復(fù)位的功能,上電復(fù)位發(fā)生在開機(jī)加電時(shí),由系統(tǒng)自動(dòng)完成,按鍵人工復(fù)位通過一個(gè)按鍵來實(shí)現(xiàn)在程序運(yùn)行時(shí),若遇到死機(jī)或死循環(huán)等情況時(shí),通過手動(dòng)復(fù)位就可以實(shí)現(xiàn)重新啟動(dòng)的操作。按鍵人工復(fù)位需要認(rèn)為在復(fù)位輸入端RST上加入高電平。單片機(jī)及其最小系統(tǒng)電路圖如3圖所示:圖3最小系統(tǒng)電路圖圖3最小系統(tǒng)電路圖1_£££1.2.4電源模塊設(shè)計(jì)本設(shè)計(jì)采用直流穩(wěn)壓電源,如圖4所示。電源變壓器是將交流電網(wǎng)220V的電壓變?yōu)樗枰碾妷褐?。電源模塊用于檢測電路連接是否正確,正確LED將被點(diǎn)亮。 1 1H三二二—―三=圖4電源電路2.5播放模塊設(shè)計(jì)鳴器播放模塊是由8550三極管和無源蜂鳴器組成,如圖5所示。無源蜂鳴器由振蕩器、電磁線圈、磁鐵、振動(dòng)膜片及外殼等組成。無源蜂鳴器發(fā)聲原理是電流通過電磁線圈,使電磁線圈產(chǎn)生磁場來驅(qū)動(dòng)振動(dòng)膜發(fā)聲的,因此需要一定的電流才能驅(qū)動(dòng)它,單片機(jī)IO引腳輸出的電流較小,單片機(jī)輸出的TTL電平基本上驅(qū)動(dòng)不了蜂鳴器,因此設(shè)計(jì)過程中增加一個(gè)由8550三極管組成的電流放大電路。如圖所示,蜂鳴器電路由一個(gè)1千歐的電阻,三極管及蜂鳴器組成,通過控制三極管的導(dǎo)通和截止來實(shí)現(xiàn)蜂鳴器的響與不響。圖5蜂鳴器電路2.6按鍵模塊設(shè)計(jì)按鍵電路由一個(gè)組成,如圖6所示。按鍵用來設(shè)置音樂播放器的模式(播放音樂還是按鍵發(fā)音),由于修改模式和彈奏音樂時(shí)需要用到很多按鍵,如果采用獨(dú)立按鍵的方式,在這種情況下,編程會(huì)很簡單,但是會(huì)占用大量的I/O口資源,因此在很多情況下都不采用這種方式。為此,我們引入了矩陣鍵盤的應(yīng)用,采用四條I/O線作為行線,四條I/O線作為列線組成鍵盤。在行線和列線的每個(gè)交叉點(diǎn)上設(shè)置一個(gè)按鍵。這樣鍵盤上按鍵的個(gè)數(shù)就為4個(gè),這種行列式鍵盤結(jié)構(gòu)能有效地提高單片機(jī)系統(tǒng)中I/O口的利用率。 0 * Q4 1 * 4 ** 1 1 0" 1 ?■ 1 。 跳 ' fl 。 i 4> 。 O 1 0 ' 蟄 & '—圖6按鍵電路按鍵功能表如下所示:

播放第一首歌播放第一首歌播放第一首歌播放第一首歌表1按鍵功能表2.7LED顯示模塊設(shè)計(jì)設(shè)計(jì)選擇的是共陽結(jié)構(gòu)的LED顯示器,這樣只要在公共端接高電平就可以了,且選擇的是動(dòng)態(tài)掃描方式。動(dòng)態(tài)掃描顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一。其接口電路是把所有顯示器的8個(gè)筆劃段a-h同名端連在一起,而每一個(gè)顯示器的公共極COM是各自獨(dú)立地受I/O線控制。CPU向字段輸出口送出字形碼時(shí),所有顯示器接收到相同的字形碼,但究竟是那個(gè)顯示器亮,則取決于COM端,而這一端是由I/O控制的,所以我們就可以自行決定何時(shí)顯示哪一位了。而所謂動(dòng)態(tài)掃描就是指采用分時(shí)的方法,輪流控制各個(gè)顯示器的COM端,使各個(gè)顯示器輪流點(diǎn)亮。在輪流點(diǎn)亮掃描過程中,每位顯示器的點(diǎn)亮?xí)r間是極為短暫的(約1ms),但由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位顯示器并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感。播放器顯示電路模塊設(shè)計(jì)的電路圖如圖7所示:圖7LED顯示模塊電路圖LED顯示功能表如下所示:播放第一首歌播放第二首歌播放第三首歌播放第四首歌表2LED顯示功能表3.軟件設(shè)計(jì)3.1單片機(jī)發(fā)聲的基木原理我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單處機(jī)某個(gè)口線的高電平或低電平,則在該口線上就能產(chǎn)生一定頻率形波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時(shí)程序控制高、低電平的持續(xù)時(shí)間,就能改變輸出頻率,從而改變音調(diào)。音符的節(jié)拍我們可以用定時(shí)器T0來控制,送入不同的初值,就可以產(chǎn)生不同的定時(shí)時(shí)間。便如某歌曲的節(jié)奏為每分鐘94拍,即一拍為0.64秒。但是,由于T0的最大定時(shí)時(shí)間只能為131毫秒,因此不可能直接用改變T0的時(shí)間初值來實(shí)現(xiàn)不同節(jié)拍。我們可以用T0來產(chǎn)生10毫秒的時(shí)間基準(zhǔn),然后設(shè)置一個(gè)中斷計(jì)數(shù)器,通過判別中斷計(jì)數(shù)器的值來控制節(jié)拍時(shí)間的長短。例如對(duì)1/4拍音符,定時(shí)時(shí)間為0.16秒,相應(yīng)的時(shí)間常數(shù)為16(即10H);對(duì)3拍音符,定時(shí)時(shí)間為1.92秒,相應(yīng)時(shí)間長數(shù)為192(即C0H)。我們將每一音符的時(shí)間常數(shù)和其相應(yīng)的節(jié)拍常數(shù)作為一組,按順序?qū)非械乃谐?shù)排列成一個(gè)表,然后由查表程序依次取出,產(chǎn)生音符并控制節(jié)奏,就可以實(shí)現(xiàn)演奏效果。此外,結(jié)束符和休止符可以分別用代碼00H和FFH來表示,若查表結(jié)果為00H,則表示曲子終了;若查表結(jié)果為FFH,則產(chǎn)生相應(yīng)的停頓效果。為了產(chǎn)生手彈的節(jié)奏感,在某些音符(例如兩個(gè)相同音符)音插入一個(gè)時(shí)間單位的頻率略有不同的音符。3.2設(shè)計(jì)的相關(guān)音樂說明要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),然后將此周期除以2,即為半周期時(shí)間。利用半周期時(shí)間定時(shí)這個(gè)半周期時(shí)間,每當(dāng)計(jì)時(shí)到后就將輸出的I/O反向,然后重復(fù)計(jì)時(shí)此半周期再對(duì)I/O反向,就可以在I/O腳上得到此頻率的脈沖。記數(shù)脈沖值與頻率的關(guān)系公式如:N=Fi/2/Fr。N:記數(shù)值;Fi:內(nèi)部計(jì)時(shí)依次為1us,故其頻率為1MHZ;Fr:要產(chǎn)生的頻率。其記數(shù)值的求法如:T=65536-N=65536-Fi/2/Fr。例:設(shè)K=65536,F=1000000=Fi=1

MHZ。求低音DO(26HZ),中音DO(523HZ),高音DO(1046HZ)的記數(shù)值。每個(gè)音符使用1個(gè)音節(jié),字節(jié)的高四位代表音符的高低,低四位代表音符的節(jié)拍。如果1拍為0.4秒,1/4拍為0.1秒,假設(shè)1/4拍為DELAY,則1拍為4DELAY。3.3主程序3.3.1主程序設(shè)計(jì)播放器工作時(shí),先對(duì)在程序過程中所需的各種標(biāo)記位及參數(shù)進(jìn)行初始化賦值,再執(zhí)行按鍵掃描子程序并計(jì)算及保存鍵值,根據(jù)其中的模式轉(zhuǎn)換鍵的按鍵次數(shù)進(jìn)行模式判斷,按鍵次數(shù)為1時(shí)播放器處于自動(dòng)播放模式,揚(yáng)聲器播放模塊開始工作,同時(shí)顯示模塊進(jìn)入工作狀態(tài)對(duì)當(dāng)前曲目進(jìn)行顯示。3.3.2主程序流程圖開始初始化按鍵掃描并讀取按鍵值標(biāo)志位flag==1nYES標(biāo)志位YES標(biāo)志位flag==2標(biāo)志位播放第

一首歌YESYES¥?”標(biāo)志位"flag==4播放第

一首歌YESYES¥?”標(biāo)志位"flag==4播放第二首歌播放第三首歌播放第四首歌圖7主程序流程圖3.4延時(shí)程序3.4.1延時(shí)程序設(shè)計(jì)延時(shí)程序一般是通過一層或多層循環(huán)實(shí)現(xiàn),整個(gè)過程延時(shí)的時(shí)間是程序執(zhí)行的指令總條數(shù)乘以執(zhí)行每條指令所用的時(shí)間。由于該系統(tǒng)的晶振選用的是12M,所以執(zhí)行每條指令所所用時(shí)間為2us,程序如下:voiddelay_5ms(){unsignedinti,j;for(i=5;i>0;i--)for(j=120;j>0;j--);}3.4.2延時(shí)程序設(shè)計(jì)圖8延時(shí)程序流程圖3.5按鍵掃描程序3.5.1按鍵程序設(shè)計(jì)我們引入了矩陣鍵盤的應(yīng)用,采用四條I/O線作為行線,四條I/O線作為列線組成鍵盤。在行線和列線的每個(gè)交叉點(diǎn)上設(shè)置一個(gè)按鍵。這樣鍵盤上按鍵的個(gè)數(shù)就為4個(gè),這種行列式鍵盤結(jié)構(gòu)能有效地提高單片機(jī)系統(tǒng)中I/O口的利用率。

3.5.2按鍵程序設(shè)計(jì)流程圖開始圖3.5.2按鍵程序設(shè)計(jì)流程圖開始圖9按鍵掃描程序流程圖調(diào)試4.1檢查硬件連接在PROTUES檢查各硬件管腳是否連接正確,線路邏輯是否正確,例如:晶振電路的連接,復(fù)位電路是否設(shè)計(jì)正確。4.2檢查軟件系統(tǒng)根據(jù)系統(tǒng)的原理結(jié)構(gòu)檢查各流程圖是否正確,再根據(jù)流程圖來檢查程序是否也正確。將所有程序組織起來,在軟件環(huán)境下運(yùn)行,檢查程序是否正確。通過對(duì)硬件和軟件系統(tǒng)的認(rèn)真檢查,反復(fù)測試,如果沒有出現(xiàn)問題即可把源程序編譯成HEX文件裝載到單片機(jī)中,對(duì)硬件進(jìn)行仿真。設(shè)計(jì)總結(jié)通過這次畢業(yè)設(shè)計(jì),使我得到了一次用專業(yè)知識(shí)、專業(yè)技能分析和解決問題全面系統(tǒng)的鍛煉。使我在單片機(jī)的基本原理、單片機(jī)應(yīng)用系統(tǒng)開發(fā)過程,以及在常用編程設(shè)計(jì)思路技巧的掌握方面都能向前邁了一大步,為日后成為合格的應(yīng)用型人才打下良好的基礎(chǔ)。在這次設(shè)計(jì)中,我們完成了一個(gè)基于單片機(jī)的音樂播放器設(shè)計(jì),盡管結(jié)果不是完美,但是努力了,獲得了豐富的知識(shí)和理論的仿學(xué)習(xí)。我從資料的收集中,掌握了很多單片機(jī)的知識(shí),不過還是遇到很多的問題。經(jīng)過這次的設(shè)計(jì)是我們不斷鞏固和提高,并且讓我對(duì)當(dāng)今單片機(jī)的最新發(fā)展技術(shù)有所了解。在整個(gè)過程中,我學(xué)到了新知識(shí),增長了見識(shí)。當(dāng)然,通過本次設(shè)計(jì),也發(fā)現(xiàn)了我在許多知識(shí)上的欠缺。通過實(shí)訓(xùn)設(shè)計(jì),我們不單單是完成了我們的設(shè)計(jì)題目,而且了解到了設(shè)計(jì)的方法和思路。在今后的日子里,我仍然要不斷地充實(shí)自己,爭取在所學(xué)領(lǐng)域有所作為。在這個(gè)過程中,有很多值得總結(jié)的地方。尤其在應(yīng)用AltiumDesigner畫圖的過程中,需要對(duì)細(xì)節(jié)性的東西比較清楚,對(duì)于元件一定要認(rèn)好它的封裝,這樣返工的幾率才會(huì)比較少。做設(shè)計(jì)的時(shí)候,我們應(yīng)該要有平和的心態(tài),遇見問題是非常正常的,要做的就是多做比較和分析,逐步的排除可能的原因,要堅(jiān)信“凡事都是有辦法解決的”和“問題出現(xiàn)一定有它的原因”,這樣最后一定能設(shè)計(jì)成功。腳踏實(shí)地,認(rèn)真嚴(yán)謹(jǐn),實(shí)事求是的學(xué)習(xí)態(tài)度,不怕困難、堅(jiān)持不懈的精神是我在這次設(shè)計(jì)中最大的收益。我想這是一次意志的磨練,會(huì)對(duì)我的學(xué)習(xí)和工作有很大的幫助。6.參考文獻(xiàn)[1]趙亮.液晶顯示模塊LCD1602應(yīng)用[J].電子制作,2007(3):58-59.⑵李朝青.單片機(jī)原理及接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,2005:374-378.王恩榮.MCS-51單片機(jī)應(yīng)用技術(shù)實(shí)訓(xùn)指導(dǎo)[M].北京:化學(xué)工業(yè)出版社,2007.吳金戌,沈慶陽,郭庭吉.8051單片機(jī)實(shí)踐與應(yīng)用[M].北京:清華大學(xué)出版社,2002.張紅梅,王磊杰.AT89S52與LED驅(qū)動(dòng)S6B0724的應(yīng)用[J].電子質(zhì)量,2008(5):13-16.樓然笛.單片機(jī)開發(fā)[M].北京:人民郵電出版社,1994.32-66付家才.單片機(jī)控制工程實(shí)踐技術(shù)[M].北京:化學(xué)工業(yè)出版社2004.3.54-80李光才.單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo)[M].北京:北京航空航天大學(xué)出版社,2004.45-70朱定華.單片機(jī)原理及接口技術(shù)實(shí)驗(yàn)[M].北京:北方交通大學(xué)出版社2002.11.110-125劉湘濤,江世明.單片機(jī)原理與應(yīng)用[M].北京:電子工業(yè)出版社,2006.30-65

附錄附錄1電路原理圖附錄2PCB圖附錄3源程序#include<reg52.h>#definekeyP1sbitP3_2=P3A2;sbitspeaker=P3AQ;unsignedcharw;unsignedcharflag;unsignedcharflag2=Q;Unsigned char codetable[]={QxcQ,Qxf9,Qxa4,QxbQ,Qx99,Qx92,Qx82,Qxf8,Qx8Q,Qx9Q,Qx88,Qx83,Qxc6,Qxa1,Qx86,Qx8e};unsignedchartable2[]={QxQ1,QxQ2,QxQ4,QxQ8,Qx1Q,Qx2Q,Qx4Q,Qx8Q};unsignedchartimerQh,timerQl,time;// 〃單片機(jī)晶振采用11.Q592MHz//頻率-半周期數(shù)據(jù)表高八位 本軟件共保存了四個(gè)八度的28個(gè)頻率數(shù)據(jù)codeunsignedcharFREQH[]={QxF2,QxF3,QxF5,QxF5,QxF6,QxF7,QxF8, //低音1234567QxF9,QxF9,QxFA,QxFA,QxFB,QxFB,QxFC,QxFC,//1,2,3,4,5,6,7,iQxFC,QxFD,QxFD,QxFD,QxFD,QxFE, 〃高音234567QxFE,QxFE,QxFE,QxFE,QxFE,QxFE,QxFF}; 〃超高音1234567//頻率-半周期數(shù)據(jù)表低八位codeunsignedcharFREQL[]={Qx42,QxC1,Qx17,QxB6,QxDQ,QxD1,QxB6,//低音1234567Qx21,QxE1,Qx8C,QxD8,Qx68,QxE9,Qx5B,Qx8F,//1,2,3,4,5,6,7,iQxEE,Qx44,Qx6B,QxB4,QxF4,Qx2D, //高音234567Qx47,Qx77,QxA2,QxB6,QxDA,QxFA,Qx16}; //超高音1234567// 〃世上只有媽媽好數(shù)據(jù)表 要想演奏不同的樂曲,只需要修改這個(gè)數(shù)據(jù)表codeunsignedcharsszymmh[]={5,2,1,3,2,2,5,2,2,1,3,2,6,2,1,5,2,1,〃一個(gè)音符有三個(gè)數(shù)字。前為第幾個(gè)音、中為第幾個(gè)八度、后為時(shí)長(以半拍為單位)。//6,2,3分別代表:6,中音,3個(gè)半拍;//5,2,1分別代表:5,中音,1個(gè)半拍;//3,2,2分別代表:3,中音,2個(gè)半拍;//5,2,2分別代表:5,中音,2個(gè)半拍;//1,3,2分別代表:1,高音,2個(gè)半拍;3,2,2,5,2,1,6,2,1,5,2,2,3,2,2,1,2,1,5,2,1,3,2,1,2,2,4,2,2,3,3,2,1,5,2,2,6,2,1,3,2,2,2,2,2,1,2,4,5,2,3,3,2,1,1,2,1,6,1,1,1,2,1,5,1,6,Q,Q,Q};/**********鄉(xiāng)間小路數(shù)據(jù)表********************/codeunsignedcharxjxl[]={3,1,1,3,1,1,6,Q,1,6,Q,1,1,1,2,6,Q,1,5,Q,1,6,Q,4,6,Q,2,6,Q,1,6,Q,1,6,Q,2,2,1,2,2,1,1,3,1,1,2,1,4,3,1,1,3,1,1,3,1,1,2,1,1,4,1,2,4,1,2,3,1,2,2,1,1,7,Q,1,7,Q,1,7,Q,1,6,Q,1,5,Q,1,5,Q,1,6,Q,1,7,Q,1,7,Q,1,6,Q,1,5,Q,1,6,Q,4,

6,1,1, 7,1,1, 6,1,1, 5,1,1, 5,1,2,5,1,1, 2,1,1,5,1,1, 6,1,1,5,1,1, 4,1,1,4,1,2,2,1,2, 1,1,1, 2,1,1, 3,1,1, 2,1,1,1,1,1, 2,1,1,3,1,4, 6,1,2,3,1,1, 6,1,1,7,1,1,5,1,2, 2,1,1, 5,1,1, 6,1,1, 5,1,1,4,1,1, 4,1,2,4,1,1, 5,1,1,6,1,1, 4,1,1,3,1,1,5,1,4,0,0,0};/*************送別數(shù)據(jù)表**********************/codeunsignedcharsongbie[]=(3,1,3,5,1,1,1,2,3,6,1,2,1,2,2,5,1,4,1,1,1,2,1,1,3,1,2,2,1,1,1,1,1,2,1,4,3,1,1,5,1,1,1,2,2,7,1,1,6,1,2,5,1,4,5,1,2,2,1,1,3,1,1,4,1,2,7,0,1,6,1,2,1,2,2,1,2,4,7,1,2,6,1,1,7,1,1,6,1,1,7,1,1,1,2,1,6,1,1,6,1,1,5,1,1,1,1,1,2,1,8,5,1,2,3,1,1,5,1,1,1,2,2,6,1,2,1,2,2,5,1,4,5,1,2,2,1,1,3,1,1,7,0,2,1,1,4,0,0,0};/************一輩子的孤單數(shù)據(jù)表****************/codeunsignedcharybzdgd[]=(5,0,1,5,0,1,3,1,1,2,1,1,2,1,1,1,1,1,3,1,1,3,1,1,2,1,1,2,1,4,5,0,1,5,0,1,3,1,1,2,1,1,2,1,1,2,1,1,1,1,1,3,1,1,3,1,4,5,0,1,5,0,1,3,1,1,2,1,1,2,1,1,1,1,1,3,1,1,3,1,1,2,1,1,2,1,4,2,1,1,1,1,1,3,1,1,2,1,1,2,1,1,1,1,1,1,1,8,3,1,1,2,1,1,2,1,1,1,1,1,1,1,1,2,1,1,2,1,6,3,1,1,2,1,2,1,1,1,1,1,1,5,0,1,6,0,1,5,0,1,5,0,6,3,1,1, 2,1,1, 2,1,1,1,1,1, 1,1,1, 2,1,1, 2,1,6,5,0,1, 3,1,1, 2,1,2, 1,1,1,2,1,2, 3,1,1, 3,1,4,5,0,1,3,1,1,5,1,2, 6,1,1, 3,1,1,2,1,1, 2,1,6, 5,0,1, 3,1,1,2,1,2, 1,1,1, 2,1,2, 3,1,1,3,1,4,5,0,1,3,1,1,2,1,1, 2,1,1, 1,1,1,3,1,1, 2,1,1, 2,1,4, 2,1,1,1,1,1, 3,1,1, 2,1,1, 1,1,1,2,1,1, 1,1,1, 1,1,1, 1,1,0,2,1,1,2,1,1, 1,1,1, 3,1,1,2,1,1, 2,1,6, 5,0,1, 3,1,1,2,1,1, 2,1,1, 1,1,1, 2,1,1,3,1,1, 3,1,6,5,0,1,3,1,1,2,1,1, 2,1,1, 1,1,1,3,1,1, 2,1,1, 2,1,6, 5,0,1,3,1,1, 2,1,1, 2,1,1, 1,1,1,2,1,1, 3,1,1, 3,1,6, 0,0,0};voiddelay_5ms(){unsignedinti,j;for(i=5;i>0;i--)for(j=120;j>0;j--);}// voidt0int()interrupt1{TR0=0;voidt0int()interrupt1{TR0=0;speaker=!speaker;TH0=timer0h;TL0=timer0l;TR0=1;//先關(guān)閉T0〃輸出方波,發(fā)音〃下次的中斷時(shí)間,這個(gè)時(shí)間,控制音調(diào)高低〃啟動(dòng)T0}// voiddelay(unsignedchart) //延時(shí)程序,控制發(fā)音的時(shí)間長度{unsignedchart1;unsignedlongt2;for(t1=0;t1<t;t1++) //雙重循環(huán),共延時(shí)t個(gè)半拍for(t2=0;t2<8000;t2++);〃延時(shí)期間,可進(jìn)入T0中斷去發(fā)音TR0=0; //關(guān)閉T0,停止發(fā)音}// voidsong() //演奏一個(gè)音符{TH0=timer0h; //控制音調(diào)TL0=timer0l;TR0=1; //啟動(dòng)T0,由T0輸出方波去發(fā)音delay(time); //控制時(shí)間長度}// voiddelay2(intx){unsignedchari;while(x--){for(i=0;i<=120;i++);/*******************按鍵掃描程序***********************/voidkey_scan(){unsignedcharw1,w2;key=0x0f;w1=key&0x0f;if(w1!=0x0f){delay2(10);key=0xf0;w2=key&0xf0;w=(w1|w2);while(key!=0xf0);}elsew=0xff;}voidkey_tran(){switch(w){case0xee:P2=table2[0];P0=table[1];flag=1;break;case0xed:P2=table2[0];P0=table[2];flag=2;break;

case0xeb:P2=table2[0];P0=table[3];flag=3;break;case0xe7:P2=table2[0];P0=table[4];flag=4;break;case0xde: break;case0xdd: break;case0xdb: break;case0xd7: break;case0xbe: break;case0xbd: break;case0xbb: break;case0xb7: break;case0x7e: break;case0x7d: break;case0x7b: break;case0x77: break;default: break;}}voidmain(void){unsignedchark,i;TMOD=0x01; //置T0定時(shí)工作方式1IT0=1;EA=1;EX0=1; //開CPU中斷ET0=1; 〃開T0中斷P1=0X0F;P0=0XFF;P3_2=1;while(1)////////key_scan();key_tran();i=0;time=1;/***************key1控制第一首歌《世上只有媽媽好》*********

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論