




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于89c52單片機(jī)音樂(lè)播放的設(shè)計(jì)安慶師范學(xué)院物理與電氣工程學(xué)院 1、設(shè)計(jì)任務(wù)和要求12、總體設(shè)計(jì)13、硬件設(shè)計(jì)23.1 硬件電路23.2 原理說(shuō)明24、軟件設(shè)計(jì)25、仿真、安裝和調(diào)試56、收獲與體會(huì)6附件1:元件清單6附件2: 總仿真電路圖7附件3:音樂(lè)程序8音樂(lè)盒設(shè)計(jì)1、設(shè)計(jì)任務(wù)和要求(1)利用I/O口產(chǎn)生一定頻率的方波,驅(qū)動(dòng)蜂鳴器,發(fā)出不同的音調(diào),從而演樂(lè)曲。(2直接當(dāng)前播放的歌曲。(3)可通過(guò)功能鍵選擇播放上一首、下一首和暫停播放歌曲。2、總體設(shè)計(jì)(1)要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/音頻),然后將此周期除以2,即為半周期的時(shí)間,利用定時(shí)器計(jì)時(shí)這個(gè)半周期時(shí)間,每當(dāng)計(jì)時(shí)到后就
2、將輸出脈沖的I/O反相,然后重復(fù)計(jì)時(shí)此半周期時(shí)間再對(duì)I/O口反相,就可在I/O腳上得到此頻率的脈沖(2)利用8052的內(nèi)部定時(shí)器使其工作在計(jì)數(shù)器模式MODE1下,改變記數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法。例如頻率為523HZ,其周期T=1/523=1912微秒,因此只要令計(jì)數(shù)器定時(shí)956/1=956在每記數(shù)9次時(shí)將I/O口反相,就可得到中音D0(523HZ)。記數(shù)脈沖值與頻率的關(guān)系公式如下:N=Fi/2/Fr N:記數(shù)值Fi:內(nèi)部計(jì)時(shí)一次為1微秒故其頻率為1MHZ Fr;要產(chǎn)生的頻率(3):起記數(shù)值的求法如下:T65536N65536Fi2Fr例如:設(shè)K65536,F(xiàn)1000000Fi1M
3、HZ,求低音D0(523HZ),高音的D0(1046HZ)的記數(shù)值。T65536N65536Fi2Fr6553610000002Fr65536500000Fr低音D0的T6553650000026263627中音D0的T6553650000052364580高音D0的T655365000001047650593、硬件設(shè)計(jì)3.1 硬件電路本設(shè)計(jì)中用到89C52單片機(jī),揚(yáng)聲器、鍵盤(pán)、連接線。1最小系統(tǒng)單片機(jī):本次設(shè)計(jì)使用單片機(jī)芯片AT89C52AT89C52的工作特性:內(nèi)含8KB的FLASH存儲(chǔ)器檫寫(xiě)次數(shù)1000次; 256x8bit內(nèi)部RAM;具有32根可編程I/O線;具有3個(gè)16位編程定時(shí)器
4、AT89C52 共有6 個(gè)中斷向量:兩個(gè)外中斷(INT0 和INT1),3 個(gè)定時(shí)器中斷(定時(shí)器0、1、2)和串行口中斷具有1個(gè)全雙工的可編程串行通信接口;具有可編程3級(jí)程序鎖定位;AT89C52的工作電源為5(10.2)V且典型值為5V;AT89C52最高工作頻率為24MHZ;AT89C52的編程頻率為324MHZ,編程啟動(dòng)電流和啟動(dòng)電壓 分別為1mA、5或12V。 3.2 原理說(shuō)明當(dāng)鍵盤(pán)有鍵按下時(shí),判斷鍵值,啟動(dòng)計(jì)數(shù)器T1,產(chǎn)生一定頻率的脈沖,驅(qū)動(dòng)蜂鳴器,放出樂(lè)曲。同時(shí)啟動(dòng)定時(shí)器T0,顯示歌曲號(hào)。(1)硬件電路中用、分別接k1、k2作為上、下一曲的功能鍵(2)用P0控制七段碼a,b,c,d
5、,e,f。(3)用P1.2口控制喇叭。(4)電路為12MHZ晶振頻率工作,起振電路中C1,C2均為30pf。4、軟件設(shè)計(jì)本程序可以實(shí)現(xiàn)課程設(shè)計(jì)的基本要求,并可以通過(guò)按鍵播放三首歌曲,程序流程圖如下:總體框圖: 主程序框圖:子程序框圖:5、仿真、安裝和調(diào)試按照上面設(shè)計(jì)的電路在proteus軟件內(nèi)畫(huà)圖, 打開(kāi)單片機(jī)軟件開(kāi)發(fā)系統(tǒng)Keil,選擇89C52單片機(jī),在其中編寫(xiě)程序,運(yùn)行生成一個(gè)后綴名為hex的文件,然后將該文件下載到proteus中的AT89C52單片機(jī)中進(jìn)行仿真,觀察實(shí)驗(yàn)現(xiàn)象。仿真能實(shí)現(xiàn)播放音樂(lè),按鍵選擇曲目,暫停,播放功能。仿真成功后,安裝好實(shí)驗(yàn)板,然后將音樂(lè)程序下載到電路板內(nèi) ,觀察
6、結(jié)果。能實(shí)現(xiàn)播放音樂(lè),按鍵換曲等功能。程序調(diào)試中出現(xiàn)的問(wèn)題及解決的辦法:(1) 有時(shí)會(huì)出現(xiàn)程序一點(diǎn)錯(cuò)誤也沒(méi)有,但就是不能正常運(yùn)行的現(xiàn)象,最后我們發(fā)現(xiàn)是因?yàn)槌绦蛑杏械闹噶顣?shū)寫(xiě)得不規(guī)范導(dǎo)致的,例如有的RET返回指令一定要按正確格式書(shū)寫(xiě)或在兩行指令間最好不要留空行。(2) 程序中的跳轉(zhuǎn)指令的運(yùn)用很重要,為保險(xiǎn)起見(jiàn),都用LJMP,我們就遇到過(guò)跳轉(zhuǎn)指令用錯(cuò)程序無(wú)法正常運(yùn)行的現(xiàn)象。當(dāng)用JNZ指令時(shí),跳轉(zhuǎn)范圍比較少,這時(shí)要用一個(gè)標(biāo)號(hào)中轉(zhuǎn)。(3) 編程時(shí)要注意,在程序開(kāi)始時(shí),要寫(xiě)入各定時(shí)器中斷的入口地址。(4) 編程過(guò)程中要注意加注釋或分割線,否則,在程序過(guò)長(zhǎng)時(shí)容易變得很亂,不便于查找或更改。(5) 編程前要
7、加流程圖,這樣會(huì)使思路清晰,例如數(shù)字音樂(lè)盒的設(shè)計(jì)思路完全可以按著MP3的工作方式列寫(xiě)流程圖。(6) LCD計(jì)時(shí)正常顯示的解決辦法:a. 兩個(gè)定時(shí)器同時(shí)工作,存在中斷時(shí)序問(wèn)題,剛開(kāi)始時(shí)我們把定時(shí)器1設(shè)定在方式3,計(jì)250us,由于定時(shí)中斷過(guò)于頻繁,使CPU負(fù)載過(guò)大,導(dǎo)致音樂(lè)不能正常播放,時(shí)間不能正常顯示。解決辦法:將定時(shí)器1設(shè)定在工作方式1,16位計(jì)數(shù),計(jì)50ms,效果有很大改觀。但還有問(wèn)題。b. 當(dāng)音樂(lè)為全4拍起始時(shí),此時(shí)音樂(lè)節(jié)奏與定時(shí)器T1中斷頻率錯(cuò)開(kāi),LCD顯示和音樂(lè)播放都會(huì)好一些。c. 另外,在歌曲中,當(dāng)遇到一個(gè)音符發(fā)音為4拍,在編曲中為*CH,因時(shí)間較長(zhǎng),當(dāng)定時(shí)器T1此時(shí)來(lái)中斷時(shí),就會(huì)
8、對(duì)歌曲播放產(chǎn)生影響,若改為發(fā)音一拍,中斷對(duì)歌曲播放影響減弱,但音樂(lè)效果變差。改進(jìn)方案:若采用可以定時(shí)時(shí)間更長(zhǎng)的單片機(jī),可以避免所有問(wèn)題。6、收獲與體會(huì)(1) 上學(xué)期學(xué)習(xí)單片機(jī)的課時(shí)不多,對(duì)單片機(jī)的硬件設(shè)計(jì),軟件設(shè)計(jì)掌握的深度不夠,但通過(guò)此次課程設(shè)計(jì),明顯的改善了,首先對(duì)于硬件電路的工作原理有了進(jìn)一步的學(xué)習(xí),同時(shí)有了一個(gè)提升;軟件方面,在程序的設(shè)計(jì),程序的調(diào)試方面都有了很大的進(jìn)步。(2) 在一個(gè)好的氛圍里才能踏下心來(lái)做東西,在這一段時(shí)間里,寢室成員都認(rèn)真對(duì)待這次課程設(shè)計(jì),除了自己做好自己的課題外,在遇到不懂的地方互相討論,查閱資料,互助解決問(wèn)題。另外在編程中出現(xiàn)問(wèn)題時(shí),一定要戒驕戒躁,腳踏實(shí)地,
9、認(rèn)真看書(shū),仔細(xì)分析,仔細(xì)調(diào)試,就一定會(huì)發(fā)現(xiàn)錯(cuò)誤。我們也是這么做的,這一點(diǎn)在這次的課程設(shè)計(jì)中十分重要。(3) 通過(guò)這次課程設(shè)計(jì),我體會(huì)到了成功的喜悅,聽(tīng)著自己設(shè)計(jì)的程序下載到單片機(jī)中播放出音樂(lè),心理非常自豪。這次的課程設(shè)計(jì)在一定程度上改變了我學(xué)習(xí)單片機(jī)這門(mén)課程的態(tài)度,從最初的認(rèn)為學(xué)它沒(méi)有什么實(shí)際意義,到如今愛(ài)上單片機(jī)學(xué)習(xí),并希望能將理論運(yùn)用到實(shí)踐,設(shè)計(jì)出更好更完整的系統(tǒng)。我明白了一個(gè)人要想做好一件事,就必須具備自信心,耐心,還要有毅力,要膽大心細(xì),要勇于嘗試,要手腦并用,最后才能交出一份令人滿意的答卷。附件1:元件清單名稱數(shù)量(個(gè))型號(hào)備注電阻6排阻RX8(1個(gè))10k(3個(gè)),500(3個(gè))數(shù)
10、碼管17SEG-DIGITAL開(kāi)關(guān)4BUTTON單片機(jī)1AT89C52揚(yáng)聲器1SPEAKER電源25V電容330pf(2個(gè)),10uf(1個(gè))晶振1CRYSTAL附件2:總仿真電路圖附件3:音樂(lè)程序shuzhi EQU 3fh ;選曲目的地址song EQU p1.2 ;揚(yáng)聲器播放play EQU p3.0 ;播放停止鍵addone EQU p3.1 ;曲目加一鍵subone EQU p3.2 ;曲目減一鍵dul EQU P1 ;段選wel EQU P2 ;位選ORG 0000HLJMP STARTORG 000BH ;定時(shí)器0溢出中斷入口地址AJMP contORG 0013H ;外部中斷一
11、入口地址AJMP pause ;指向外部中斷程序 ORG 0100HSTART: MOV SP,#50HMOV TH0,#0DBH ;定時(shí)器賦初值MOV TL0,#0FFHMOV TMOD,#01H ;設(shè)定T1工作于方式2MOV IE,#86H ;開(kāi)中斷MOV TCON,#00HMOV R0,#00HMOV shuzhi,#00H(是否順序播放音樂(lè))MAIN: JNB play,first ;判斷P3.0鍵是否按下SJMP MAINfirst: ACALL del20JNB play,first MOV shuzhi,#00HMOV dul,#06H ;共陰數(shù)碼管顯示1MOV wel,#80H
12、MOV DPTR,#dat1 ;dat1首地址賦給DPTR ACALL music0ACALL nextRETnext: INC shuzhiMOV A,shuzhiCJNE A,#01,LOOP3 ;A是否=1,不等就跳轉(zhuǎn)到LOOP3 MOV DPTR,#dat2 ;表2首地址送DPTRMOV dul,#5BH ;顯示數(shù)值2MOV wel,#80HACALL music0INC ALOOP3: CJNE A,#02,LOOP4 ;A是否=2,不等就跳轉(zhuǎn)到LOOP4MOV DPTR,#dat3 ;表3首地址送DPTRMOV dul,#4FH ;顯示數(shù)值3MOV wel,#80HACALL mu
13、sic0INC ALOOP4: CJNE A,#03,nextACALL firstRET(按鍵播放上一首音樂(lè))last: DEC shuzhiMOVa,shuzhiCJNEa,#02,last1MOVdptr,#dat3MOVdul,#4FhMOVwel,#80hACALLmusic0last1:cjnea,#01,last2MOVdptr,#dat2MOVdul,#5BhMOVwel,#80hACALLmusic0last2:cjnea,#00,lastMOVdptr,#dat1MOVdul,#06hMOVwel,#80hACALLmusic0RETmusic0:MOV20h,#00h ;
14、中斷計(jì)數(shù)單元清0music1:clraMOVCa,a+dptr ;查表取音階常數(shù)JZend0 ;累加器判0看是否是結(jié)束符CJNEa,#0ffh,music5;是休止符?LJMPmusic3 ;產(chǎn)生100ms停頓 music5:NOPkey: JNBplay,k0 ;判斷P3.0鍵是否按下JNBaddone,k1 ;判斷P3.2鍵是否按下JNBsubone,k2 ;判斷P3.1鍵是否按下MOVr6,a ;音階常數(shù)送R6INCdptr ;DPTR+1 MOVa,#0MOVCa,a+dptr ;取常數(shù)送R7 MOVr7,aSETBtr0 ;啟動(dòng)定時(shí)器T0 music2:nopCJNEr0,#0,$C
15、PLsong ;輸出電平取反MOVa, r6MOVr3,a ;音階常數(shù)送R3LCALLdel20MOVa, r7 ;節(jié)拍常數(shù)送ACJNEa,20h,music2 ;節(jié)拍時(shí)間到否 MOV20h,#00h ;為取下一音階作準(zhǔn)備INCDPTRLJMPmusic1music3: NOP ;休止100msCLRtr0 ;關(guān)閉定時(shí)器MOVr2, #14h music4:NOPMOVr3, #250 ;R3=250LCALLdel20DJNZr2, music4INCdptr ;為取下一音階作準(zhǔn)備 LJMPmusic1end0:MOVr2, #200 ;歌曲結(jié)束后,延時(shí)1s后繼續(xù)music6:MOVr3,
16、#250LCALLdel20DJNZr2,music6(按鍵選擇)k1:ACALLdel20 ;調(diào)用延時(shí)子程序JNBaddone,k1 ;判斷P3.2鍵是否釋放ACALLnextk2:ACALLdel20JNBsubone,k2 ;判斷P3.1鍵是否釋放 ACALLlastk0:ACALLdel20JNBplay,k0 ;判斷3.0鍵是否釋放LJMPstartRETdel20:MOVr4,#05h ;延時(shí)子程序del4:NOPDJNZr4,del4DJNZr3,del20RETcont:INC20h ;計(jì)數(shù)單元+1MOVth0,#0dbh ;重新10ms定時(shí)初值MOVtl0,#0ffhRETI
17、 ;跳出中斷 (停止播放)pause:ACALLdel20JNBp3.0,pause ;判斷P3.0鍵是否有釋放MOVa,r0 ;把R0的值給ACPLa ;A值取反 MOVr0,aRETIdat1:db 3bh,20h,3bh,20h,30h,20h,33h,20h,3bh,80h,0ffhdb 3bh,20h,3bh,20h,26h,20h,2bh,20h,26h,80h,0ffhdb 26h,20h,26h,20h,20h,20h,26h,20h,2bh,20h,2bh,20h,30h,20h,33h,10h,33h,10hdb 3bh,60h,40h,20h,4ch,80h,0ffhdb
18、 3bh,20h,3bh,20h,30h,20h,33h,20h,3bh,80h,0ffhdb 3bh,20h,3bh,20h,26h,20h,2bh,20h,26h,80h,0ffhdb 26h,20h,26h,20h,20h,20h,26h,20h,2bh,20h,2bh,20h,2bh,20h,30h,20hdb 33h,20h,3bh,20h,3bh,20h,40h,2bh,3bh,80h,0ffhdb 19h,20h,1ch,40h,26h,20h,19h,20h,1ch,40h,26h,20h,0ffhdb 20h,20h,1ch,20h,1ch,20h,20h,20h,26h,8
19、0h,0ffhdb 19h,20h,1ch,40h,26h,20h,19h,20h,1ch,40h,26h,20h,0ffhdb 20h,20h,1ch,20h,1ch,20h,20h,20h,26h,80h,0ffhdb 2bh,20h,2bh,40h,3bh,20h,2bh,20h,2bh,40h,2bh,20h,0ffhdb 26h,20h,2bh,20h,2bh,20h,30h,20h,2bh,80h,0ffhdb 2bh,20h,2bh,40h,3bh,20h,30h,20h,30h,40h,2bh,20h,0ffhdb 33h,20h,3bh,20h,3bh,20h,40h,20h
20、,3bh,80h,0ffh,0ffhdat2:db 18h,30h,1ch,10h,20h,40h,1ch,10hdb 18h,10h,20h,10h,1ch,10h,18h,40hdb 1ch,20h,20h,20h,1ch,20h,18h,20hdb 20h,80h,0ffh,20h,30h,1ch,10h,18hdb 20h,15h,20h,1ch,20h,20h,20h,26hdb 40h,20h,20h,2bh,20h,26h,20h,20hdb 20h,30h,80h,0ffh,20h,20h,1ch,10hdb 18h,10h,20h,20h,26h,20h,2bh,20hdb
21、30h,20h,2bh,40h,20h,20h,1ch,10hdb 18h,10h,20h,20h,26h,20h,2bh,20hdb 30h,20h,2bh,40h,20h,30h,1ch,10hdb 18h,20h,15h,20h,1ch,20h,20h,20hdb 26h,40h,20h,20h,2bh,20h,26h,20hdb 20h,20h,30h,80h,20h,30h,1ch,10hdb 20h,10h,1ch,10h,20h,20h,26h,20hdb 2bh,20h,30h,20h,2bh,40h,20h,15hdb 1fh,05h,20h,10h,1ch,10h,20h,
22、20hdb 26h,20h,2bh,20h,30h,20h,2bh,40hdb 20h,30h,1ch,10h,18h,20h,15h,20hdb 1ch,20h,20h,20h,26h,40h,20h,20hdb 2bh,20h,26h,20h,20h,20h,30h,30hdb 20h,30h,1ch,10h,18h,40h,1ch,20hdb 20h,20h,26h,40h,13h,60h,18h,20hdb 15h,40h,13h,40h,18h,80h,00hdat3:db 26h,20h,20h,20h,20h,20h,26h,10h,20h,10h,20h,80h,26h,20h,30h,20hdb 30h,20h,39h,10h,30h,10h,30h,80h,26h,20h,20h,20h,20h,20h,1ch,20hdb 20h,80h,2bh,20h,26h,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海市金山區(qū)九年級(jí)歷史下冊(cè) 第四單元 和平與發(fā)展 第17課 干戈不息教學(xué)設(shè)計(jì) 北師大版
- 人教部編版道德與法治八年級(jí)下冊(cè)6.2中華人民共和國(guó)主席 教學(xué)設(shè)計(jì)
- 婦產(chǎn)復(fù)習(xí)測(cè)試有答案(一)
- 2025年山東省泰安市泰山區(qū)中考一模道德與法治試題(原卷版+解析版)
- 校長(zhǎng)在師德師風(fēng)專題培訓(xùn)會(huì)上講話:牢記“三條底線”踐行“四項(xiàng)原則”做靠譜好老師
- 綠色農(nóng)業(yè)卓越品質(zhì)
- 旅游業(yè)務(wù)全景解析
- 2025四川省房屋買(mǎi)賣(mài)合同書(shū)范本
- 部編版道德與法治五年級(jí)下冊(cè)第12課《富起來(lái)到強(qiáng)起來(lái)》精美課件送期末復(fù)習(xí)(第1課時(shí))
- 部編版道德與法治五年級(jí)下冊(cè)第6課《我參與 我奉獻(xiàn)》精美課件送期末復(fù)習(xí)
- 2024年平頂山職業(yè)技術(shù)學(xué)院高職單招語(yǔ)文歷年參考題庫(kù)含答案解析
- 2025年北師大版數(shù)學(xué)六年級(jí)下冊(cè)教學(xué)計(jì)劃(含進(jìn)度表)
- 2025社保政策培訓(xùn)
- 2025年蘇州工業(yè)園區(qū)國(guó)企招聘筆試參考題庫(kù)含答案解析
- 2025年上海市規(guī)劃和國(guó)土資源管理局所屬事業(yè)單位工作人員招考高頻重點(diǎn)提升(共500題)附帶答案詳解
- 資產(chǎn)管理崗管理制度內(nèi)容
- 超聲檢查的臨床義及超聲報(bào)告的解讀課件
- 《空心膠囊規(guī)格尺寸及外觀質(zhì)量》(T-CNPPA 3008-2020)
- 2024年江蘇省常州市中考英語(yǔ)真題卷及答案解析
- 售前售中售后服務(wù)培訓(xùn)
- 彼得 卒姆托簡(jiǎn)介 彼得 卒姆托的建筑解讀 彼得 卒姆托的建筑思想解讀 小32課件講解
評(píng)論
0/150
提交評(píng)論