版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 《單片機(jī)原理及應(yīng)用》課程設(shè)計(jì)說(shuō)明書(shū)</p><p> 設(shè)計(jì)題目:基于AT89C52單片機(jī)的音樂(lè)盒的設(shè)計(jì)</p><p> 學(xué) 院: </p><p> 專(zhuān)業(yè)班級(jí): </p><p> 設(shè) 計(jì) 者: </p><p> 學(xué)
2、號(hào): </p><p> 指導(dǎo)老師: 目 錄 </p><p> 摘 要…………………………………………………………………4</p><p> 概述……………………………………………………………5</p><p> 音樂(lè)盒的發(fā)音原理……………………………………………6</p>&
3、lt;p> 2.1 播放音樂(lè)的原理……………………………………………6</p><p> 2.2 音符頻率的產(chǎn)生……………………………………………6</p><p> 2.3 節(jié)拍頻率的產(chǎn)生……………………………………………8</p><p> 硬件電路設(shè)計(jì)…………………………………………………9</p><p&g
4、t; 3.1 硬件電路……………………………………………………9</p><p> 3.2 整體硬件電路………………………………………………10</p><p> 3.3 原理說(shuō)明 …………………………………………………10</p><p> 3.4 鍵盤(pán)按鍵 …………………………………………………10</p><p>
5、; 軟件設(shè)計(jì)………………………………………………………11</p><p> 4.1 程序設(shè)計(jì)流程………………………………………………11</p><p> 4.2 設(shè)計(jì)源程序代碼……………………………………………12</p><p> 仿真及調(diào)試……………………………………………………16</p><p> 5.1 調(diào)
6、試 ………………………………………………………16</p><p> 5.2 仿真 ………………………………………………………16</p><p> 5.3 程序調(diào)試中出現(xiàn)的問(wèn)題及解決的辦法 ………………………17</p><p> 設(shè)計(jì)小結(jié)………………………………………………………18 附錄元件清單…………………………………………………19<
7、/p><p> 基于AT89C52單片機(jī)的音樂(lè)盒的設(shè)計(jì)</p><p> 【摘要】:隨著人類(lèi)社會(huì)的發(fā)展,人們對(duì)視覺(jué)、聽(tīng)覺(jué)方面的享受提出了越來(lái)越高的要求。小小的音樂(lè)盒可以給人們帶來(lái)美好的回憶,提高人們的精神文化享受。傳統(tǒng)的音樂(lè)盒多是機(jī)械型的,體積笨重,發(fā)音單調(diào),不能實(shí)現(xiàn)批量生產(chǎn)。本文設(shè)計(jì)的音樂(lè)盒是以單片機(jī)為核心元件的電子式音樂(lè)盒,體積小,重量輕,能演奏和旋音樂(lè),功能多,使用方便,可以批量生產(chǎn)
8、,具有一定的商業(yè)價(jià)值。</p><p> 【關(guān)鍵詞】:音樂(lè)盒;單片機(jī)</p><p><b> 概述</b></p><p> 傳統(tǒng)的音樂(lè)盒多是機(jī)械音樂(lè)盒,其工作原理是通過(guò)齒輪帶動(dòng)一個(gè)帶有鐵釘?shù)蔫F桶轉(zhuǎn)動(dòng),鐵桶上的鐵釘撞擊鐵片制成的琴鍵,從而發(fā)出聲音。但是,機(jī)械式的音樂(lè)盒體積比較大,比較笨重,且發(fā)音單調(diào)。水、灰塵等外在因素,容易使內(nèi)部金屬發(fā)
9、音條變形,從而造成發(fā)音跑調(diào)。另外,機(jī)械音樂(lè)盒放音時(shí)為了讓音色穩(wěn)定,必須放平不能動(dòng)搖,而且價(jià)格昂貴,不能實(shí)現(xiàn)大批量生產(chǎn)。</p><p> 本文設(shè)計(jì)的音樂(lè)盒,是基于單片機(jī)設(shè)計(jì)制作的電子式音樂(lè)盒。與傳統(tǒng)的機(jī)械式音樂(lè)盒相比更小巧,音質(zhì)更優(yōu)美且能演奏和弦音樂(lè)。電子式音樂(lè)盒動(dòng)力來(lái)源是電池,制作工藝簡(jiǎn)單,可進(jìn)行批量生產(chǎn),所以?xún)r(jià)格便宜。基于單片機(jī)制作的電子式音樂(lè)盒,控制功能強(qiáng)大,可根據(jù)需要選歌,使用方便。所放歌曲的節(jié)奏可以根
10、據(jù)需要進(jìn)行設(shè)置,根據(jù)存儲(chǔ)容量的大小,可以盡可能多的存儲(chǔ)歌曲。另外,可以設(shè)計(jì)彩燈外觀效果,增設(shè)放歌時(shí)間、序號(hào)顯示燈功能,使音樂(lè)盒的功能更加豐富,如圖1-1所示。</p><p> 圖1-1 單片機(jī)音樂(lè)盒功能框圖</p><p> 第2章 音樂(lè)盒的發(fā)音原理</p><p> 2.1 播放音樂(lè)的原理</p><p> 發(fā)音原理
11、:播放一段音樂(lè)需要的是兩個(gè)元素,一個(gè)是音調(diào),另一個(gè)是音符。首先要了解對(duì)應(yīng)的音調(diào),音調(diào)主要由聲音的頻率決定,同時(shí)也與聲音強(qiáng)度有關(guān)。對(duì)一定強(qiáng)度的純音,音調(diào)隨頻率的升降而升降;對(duì)一定頻率的純音、低頻純音的音調(diào)隨聲強(qiáng)增加而下降,高頻純音的音調(diào)卻隨強(qiáng)度增加而上升。另外,音符的頻率有所不同?;谏厦娴膬?nèi)容,這樣就對(duì)發(fā)音的原理有了一些初步的了解。 </p><p> 音符的發(fā)音主要靠不同的音頻脈沖。利用單片機(jī)的內(nèi)部定時(shí)器/計(jì)
12、數(shù)器0,使其工作在模式1,定時(shí)中斷,然后控制P3.7引腳的輸出音樂(lè)。只要算出某一音頻的周期(1/頻率),然后將此周期除以2,即為半周期的時(shí)間,利用定時(shí)器計(jì)時(shí)這個(gè)半周期時(shí)間,每當(dāng)計(jì)時(shí)到后就將輸出脈沖的I/O反相,然后重復(fù)計(jì)時(shí)此半周期時(shí)間再對(duì)I/O反相,就可在I/O腳上得到此頻率的脈沖。</p><p> 2.2 音符頻率的產(chǎn)生</p><p> 音符及定時(shí)器初始值:</p>
13、;<p> 例如:中音1(do)的音頻=523HZ,周期T=1/523s=1912</p><p> 定時(shí)器/計(jì)數(shù)器0的定時(shí)時(shí)間為:T/2=1912/2=956</p><p> 定時(shí)器956的計(jì)數(shù)值=定時(shí)時(shí)間/機(jī)器周期=956/1=956(時(shí)鐘頻率=12MHZ)</p><p> 裝入T0計(jì)數(shù)器初值為65536-956=64580</p
14、><p> 將64580裝入T0寄存器中,啟動(dòng)T0工作后,每計(jì)數(shù)956次時(shí)將產(chǎn)生溢出中斷,進(jìn)入中斷服務(wù)時(shí),每次對(duì)P3.0引腳的輸出值進(jìn)行取反,就可得到中音DO(523HZ)的音符音頻。將51單片機(jī)內(nèi)部定時(shí)器工作在計(jì)數(shù)器模式1下,改變計(jì)數(shù)初值TH0,TL0以產(chǎn)生不同的頻率。下表2-1是C調(diào)各音符頻率與計(jì)數(shù)初值T的對(duì)照表: </p><p> 表2-1 C調(diào)各音符頻率與計(jì)數(shù)初值T的對(duì)照表&l
15、t;/p><p> 音符、音符編碼及定時(shí)器初始值:</p><p> 為了產(chǎn)生音符,必須求出音符低音5—高音5的計(jì)數(shù)初值。例如C調(diào)的低1DO的THTL=65536-50000/262=63627,中音DO的THTL=65536-500000/523=64580,高音DO的THTL=65536-500000/1042=65056。為了方便寫(xiě)譜,對(duì)其進(jìn)行簡(jiǎn)單的編碼,在編程時(shí),根據(jù)音符編碼查找對(duì)
16、應(yīng)的計(jì)數(shù)初值。比如說(shuō)音樂(lè)是C調(diào)的,那么出現(xiàn)低音的5SO,直接將代碼寫(xiě)為1;出現(xiàn)低音6LA,直接寫(xiě)一個(gè)2的代碼;出現(xiàn)低音7SI,直接寫(xiě)一個(gè)3代碼。</p><p> 表2-2 音符編碼表</p><p> 2.3 節(jié)拍頻率的產(chǎn)生</p><p><b> 節(jié)拍的產(chǎn)生與編碼:</b></p><p> 音樂(lè)中的
17、節(jié)拍用延時(shí)時(shí)間產(chǎn)生。例如,1拍=0.4s,1/4拍=0.1s,以此類(lèi)推。假設(shè)1/4拍執(zhí)行一次延時(shí)程序,則1/2拍就執(zhí)行兩次延時(shí)程序,所以只要求出1/4拍的延時(shí)時(shí)間,其余節(jié)拍就是它的倍數(shù)。為了方便,將節(jié)拍數(shù)也進(jìn)行了編碼,并且計(jì)算了樂(lè)譜節(jié)拍編程時(shí)的延時(shí)時(shí)間,如表2-3和表2-4所示。</p><p> 表2-3 節(jié)拍數(shù)編碼表</p><p> 表2-4 樂(lè)譜節(jié)拍編程時(shí)的時(shí)間延時(shí)表<
18、;/p><p> 音符編碼和節(jié)拍編碼完成后,在編程時(shí),每個(gè)音符占一個(gè)字節(jié),高四位是音符編碼,低四位是節(jié)拍編碼。</p><p> 第3章 硬件電路設(shè)計(jì)</p><p><b> 3.1 硬件電路</b></p><p> 設(shè)計(jì)中用到了AT89C52單片機(jī),3*3鍵盤(pán),蜂鳴器等硬件電路常用元器件。</p&g
19、t;<p> 3.1.1 時(shí)鐘復(fù)位電路</p><p> 時(shí)鐘電路由單片機(jī)XTAL1、 XTAL2引腳外接晶振(12MHz)及起振電容C1、C2(均為30pf)組成。如圖3-1所示:</p><p> 圖3-1 時(shí)鐘復(fù)位電路</p><p> 3.1.2 按鍵輸入電路</p><p> 按鍵輸入電路由3*3
20、矩陣鍵盤(pán)組成, P3口作為輸入控制按鍵,其中P3.4~P3.6掃描行,P3.0~P1.2掃描列。</p><p> 圖3-2 按鍵輸入電路</p><p> 3.2 整體硬件電路</p><p><b> 如圖3-3所示:</b></p><p> 圖3-3 音樂(lè)盒硬件電路原理圖</p>
21、<p> 3.3 原理說(shuō)明:</p><p> 當(dāng)鍵盤(pán)有鍵按下時(shí),判斷鍵值,啟動(dòng)計(jì)數(shù)器T0,產(chǎn)生一定頻率的脈沖,驅(qū)動(dòng)蜂鳴器,放出樂(lè)曲。</p><p> (1) 硬件電路中用P3口控制按鍵,其中P3.0~P3.2掃描列,P3.4~P1.6掃描行;</p><p> ?。?) 用P1.0口控制蜂鳴器;</p>&l
22、t;p> ?。?) 電路為12MHz晶振頻率工作,起振電路中C1,C2均為30pf。 </p><p> 3.4 鍵盤(pán)按鍵</p><p> 鍵盤(pán)按鍵分布如下: 按鍵功能說(shuō)明:</p><p> 第4章 軟件設(shè)計(jì)</p><p> 本程序可以實(shí)現(xiàn)該課程設(shè)計(jì)的基本要求,并可以通過(guò)
23、按鍵播放達(dá)10首歌曲。</p><p> 4.1 程序設(shè)計(jì)流程</p><p> 程序設(shè)計(jì)流程圖如圖4-1所示:</p><p> 圖4-1 程序設(shè)計(jì)流程圖</p><p> 4.2 設(shè)計(jì)源程序代碼</p><p> ORG 0000H </p>&
24、lt;p><b> LJMP MAIN</b></p><p> ORG 000BH </p><p> ;定時(shí)器T0溢出中斷入口地址 </p><p><b> LJMP TT0</b></p><p> ORG 001BH </p><p> ;定時(shí)器
25、T1溢出中斷入口地址</p><p> LJMP T1INT</p><p><b> ORG 1000H</b></p><p> MAIN: MOV SP,#70H </p><p> LCALL INITIL ;內(nèi)存初始化<
26、/p><p> WAIT: LCALL KEY </p><p> LJMP WAIT </p><p> KEY: ;鍵盤(pán)掃描</p><p> NOP</p><p><b> NOP<
27、;/b></p><p><b> LCALL KS</b></p><p> JNZ K1 ;有按鍵轉(zhuǎn)到K1 </p><p> MOV A,37H </p><p><b> LCALL SOP</b></p><p> XN:
28、 LJMP KEY</p><p> K1: LCALL KS</p><p><b> JNZ K2</b></p><p><b> LJMP KEY</b></p><p> K2: ;讀鍵盤(pán)</p><p>
29、MOV R2,#0FEH </p><p> MOV R4,#00H</p><p> K3: MOV A,R2</p><p><b> MOV P3,A</b></p><p><b> MOV A,P3</b></p><p&
30、gt; JB ACC.4,L1</p><p> ;為1跳轉(zhuǎn),第一行無(wú)按鍵</p><p> MOV A,#01H</p><p><b> LJMP LK</b></p><p> L1: JB ACC.5,L2</p><p> MOV A,#04H</p>
31、<p><b> LJMP LK</b></p><p> L2: JB ACC.6,NEXT1</p><p> MOV A,#07H</p><p> LK: ADD A,R4</p><p><b> PUSH ACC</b></p>&
32、lt;p> K4: LCALL DELAY1 </p><p><b> LCALL KS</b></p><p> JNZ K4 </p><p> ;若同時(shí)有其他按鍵,則等待(同時(shí)按視為無(wú)效)</p><p> MOV R3,#07H </p><p>
33、;<b> CLR A</b></p><p> MOV R0,#30H</p><p> MOV R1,#31H</p><p> MM1: MOV A,@R1 ;鍵值給37H</p><p><b> MOV @R0,A</b></p><p>
34、;<b> INC R0</b></p><p><b> INC R1</b></p><p> DJNZ R3,MM1</p><p><b> POP ACC</b></p><p> MOV @R0,A </p><p><b&g
35、t; RET</b></p><p> NEXT1: INC R4 ;列掃描</p><p><b> MOV A,R2</b></p><p> JNB ACC.2,N2</p><p><b> LJMP N1</b></p><p
36、> N2: LJMP KEY</p><p> N1: RL A</p><p><b> MOV R2,A</b></p><p><b> LJMP K3</b></p><p> KS: MOV A,#0F0H ;判斷P1口</p&
37、gt;<p><b> MOV P3,A</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> MOV A,P3</b></p><p><b> CPL A
38、</b></p><p> ANL A,#0F0H</p><p><b> RET</b></p><p><b> DELAY1:</b></p><p> ;延時(shí)2.55ms 63×4×1us×10+10×3×1us<
39、/p><p><b> SETB RS0</b></p><p> DL: MOV R5,#0AH</p><p> DL2: MOV R6,#63</p><p> DL3: NOP </p><p><b> NOP</b></p&g
40、t;<p> DJNZ R6,DL3</p><p> DJNZ R5,DL2 </p><p> CLR RS0 </p><p><b> RET </b></p><p> INITIL: ;30H~37H初值為零</p><p> MOV R
41、3,#08H</p><p> MOV R0,#30H</p><p> M1: MOV @R0,#00H</p><p><b> INC R0</b></p><p> DJNZ R3,M1</p><p> CLR P1.0 </p><p&g
42、t;<b> RET</b></p><p><b> ;按鍵值播放歌曲</b></p><p> SOP: MOV A,37H</p><p> CJNE A,#01H,A11</p><p> MOV 52H,#HIGH TABLE10</p><p>
43、 MOV 53H,#LOW TABLE10</p><p> LCALL MAIN0</p><p> A11: CJNE A,#02H,A22</p><p> MOV 52H,#HIGH TABLE20</p><p> MOV 53H,#LOW TABLE20 </p><p> LCALL
44、MAIN0</p><p> A22: CJNE A,#03H,A33</p><p> MOV 52H,#HIGH TABLE30</p><p> MOV 53H,#LOW TABLE30 </p><p> LCALL MAIN0 </p><p> A33: CJNE A,
45、#04H,A44</p><p> MOV 52H,#HIGH TABLE40</p><p> MOV 53H,#LOW TABLE40 </p><p> LCALL MAIN0</p><p> A44: CJNE A,#05H,A55</p><p> MOV 52H,#HIGH TABLE5
46、0</p><p> MOV 53H,#LOW TABLE50 </p><p> LCALL MAIN0 </p><p> A55: RET </p><p> DELAY: MOV R4,#05</p><p> D1: MOV R5,#0FFH</p
47、><p><b> DJNZ R5,$</b></p><p> DJNZ R4,D1</p><p><b> RET </b></p><p> MAIN0: MOV TMOD,#11H ; 播放歌曲程序</p><p> MOV IE,#8AH <
48、/p><p> MOV TH1,#3CH</p><p> MOV TL1,#0B0H </p><p><b> LCALL KS</b></p><p> JNZ TTM12 </p><p> MOV 40H,#00H</p><p>
49、 NEXT20: MOV A,40H</p><p> MOV DPH,52H</p><p> MOV DPL,53H</p><p> MOVC A,@A+DPTR</p><p><b> MOV R2,A</b></p><p><b> JZ STOP</b&
50、gt;</p><p> ANL A,#0FH</p><p><b> MOV R1,A</b></p><p><b> MOV A,R2</b></p><p><b> SWAP A</b></p><p> ANL A,#0FH<
51、;/p><p><b> JNZ SING</b></p><p><b> CLR TR0</b></p><p><b> JMP W1</b></p><p> SING: DEC A</p><p><b> MOV 22H
52、,A</b></p><p><b> RL A</b></p><p> MOV DPTR,#TABLE00</p><p> MOVC A,@A+DPTR</p><p><b> MOV TH0,A</b></p><p><b> MO
53、V 21H,A</b></p><p><b> MOV A,22H</b></p><p><b> RL A</b></p><p><b> INC A</b></p><p> MOVC A,@A+DPTR</p><p>&
54、lt;b> MOV TL0,A</b></p><p><b> MOV 20H,A</b></p><p><b> SETB TR0</b></p><p><b> SETB TR1</b></p><p> W1: LCALL D
55、ELAY30</p><p><b> INC 40H</b></p><p> LCALL KS ;有鍵跳出</p><p><b> JNZ STOP</b></p><p> LJMP NEXT20</p><p> STOP: CLR TR0<
56、;/p><p><b> CLR TR1</b></p><p><b> CLR P1.0</b></p><p> LJMP MAIN0 </p><p> TTM12: LCALL K2</p><p><b> MOV A,37H</b>
57、;</p><p> CJNE A,#08H,TTM13 ;暫停</p><p><b> CLR TR1</b></p><p><b> CLR P1.0</b></p><p> LCALL DELAY1</p><p> TTM120: LCALL
58、KS</p><p> LCALL DELAY1</p><p><b> JZ TTM120</b></p><p><b> LCALL K2</b></p><p><b> MOV A,37H</b></p><p> CJNE A,#
59、08H,TTM120</p><p><b> SETB TR1</b></p><p> LJMP NEXT20</p><p> TTM13: CJNE A,#09H,TTM14 ;下一曲</p><p><b> MOV A,52H</b></p><p
60、><b> INC A</b></p><p><b> MOV 52H,A</b></p><p><b> MOV A,53H</b></p><p><b> INC A</b></p><p><b> MOV 53H,A
61、</b></p><p><b> MOV A,36H</b></p><p><b> INC A</b></p><p><b> MOV 37H,A</b></p><p><b> LJMP TTM2</b></p>
62、<p> TTM14: CJNE A,#06H,TTM2 ; 上一曲</p><p><b> MOV A,52H</b></p><p><b> DEC A</b></p><p><b> MOV 52H,A</b></p><p><
63、;b> MOV A,53H</b></p><p><b> DEC A</b></p><p><b> MOV 53H,A</b></p><p><b> MOV A,36H</b></p><p><b> DEC A</b&
64、gt;</p><p> MOV 37H,A </p><p> TTM2: RET</p><p> TT0: PUSH ACC ; 定時(shí)器中斷子程序0</p><p><b> PUSH PSW</b></p><p> MOV TL0,20H</p>
65、<p> MOV TH0,21H </p><p> CPL P1.0 ;獲得脈沖</p><p><b> POP PSW</b></p><p><b> POP ACC</b></p><p><b> RETI</b></p>
66、;<p> ;定時(shí)器中斷子程序1</p><p><b> T1INT: </b></p><p> MOV TH1, #3cH</p><p> MOV TL1, #0b0H</p><p><b> RETI</b></p><p> DELAY
67、30: </p><p><b> MOV R7,#2</b></p><p> W2: MOV R4,#125</p><p> W3: MOV R3,#248</p><p><b> DJNZ R3,$</b></p><p> DJN
68、Z R4,W3</p><p> DJNZ R7,W2</p><p> DJNZ R1,DELAY30</p><p><b> RET</b></p><p><b> TABLE00:</b></p><p> DW 64580,64684,64777,648
69、2 ;音符</p><p> DW 64898,64968,65030,64260</p><p> DW 64400,64524,65058,63835,64021</p><p> TABLE10: ;第一首《精忠報(bào)國(guó)》</p><p> DB 66H,52H,36H,22H,12H,12H,22H,32H,98H,84H,8
70、2H,92H,14H,12H,22H</p><p> DB 32H,52H,22H,42H,38H,66H,52H,36H,22H,12H,22H,22H,32H,98H</p><p> DB 24H,22H,32H,54H,52H,32H,92H,12H,92H,82H,98H,66H,52H,36H,22H</p><p> DB 12H,12H,22
71、H,32H,98H,84H,82H,92H,14H,12H,22H,32H,52H,22H,42H,38H</p><p> DB 66H,52H,36H,22H,12H,22H,22H,32H,98H,24H,22H,32H,54H,52H,32H</p><p> DB 22H,12H,92H,82H,98H,14H,24H,34H,44H,64H,0B4H,64H,32H,52H
72、</p><p> DB 62H,0B2H,62H,52H,38H,24H,22H,32H,54H,52H,62H,52H,32H,32H,22H,38H</p><p> DB 64H,0B4H,64H,32H,52H,62H,0B2H,62H,52H,38H,22H,22H,22H,32H,52H,52H</p><p> DB 52H,62H,7FH,7
73、4H,04H,58H,6FH</p><p><b> DB 00</b></p><p> TABLE20:;第二首《月亮代表我的心》</p><p> DB 02H,82H</p><p> DB 16H,32H,54H,02H,52H</p><p> DB 0A6H,32H,5
74、4H,02H,52H</p><p> DB 64H,74H,0B6H,64H</p><p> DB 52H,5CH,32H,22H</p><p> DB 16H,12H,14H,32H,22H</p><p> DB 16H,12H,14H,22H,32H</p><p> DB 26H,12H,94H
75、,22H,32H</p><p><b> DB 2CH</b></p><p> DB 32H,52H</p><p> DB 36H,22H,14H,54H</p><p> DB 0ACH,92H,0A2H</p><p> DB 96H,0A2H,96H,82H</p>
76、;<p> DB 3CH,54H</p><p> DB 36H,22H,14H,54H</p><p> DB 0ACH,92H,0A2H</p><p> DB 16H,12H,14H,22H,32H</p><p> DB 2CH,02H,82H</p><p> DB 16H,32H,
77、56H,12H</p><p> DB 0A6H,32H,56H,52H</p><p> DB 66H,72H,0B6H,62H</p><p> DB 62H,52H,58H,32H,22H</p><p> DB 16H,12H,14H,32H,22H</p><p> DB 16H,12H,14H,2
78、2H,32H</p><p> DB 26H,92H,0A4H,12H,22H</p><p><b> DB 1CH</b></p><p><b> DB 00</b></p><p> TABLE30: ; 第三首《大?!?lt;/p><p> DB 82H,9
79、2H,12H,14H,12H,14H,92H,82H,12H,14H,22H,14H,92H,12H,22H,24H </p><p> DB 22H,24H,12H,92H,22H,24H,32H,24H,32H,52H,62H,54H,52H,64H,52H,32H</p><p> DB 22H,32H,22H,12H,94H,82H,92H,12H,14H,12H,14H,94
80、H,1CH</p><p> DB 82H,92H,12H,14H,12H,14H,92H,82H,12H,14H,22H,14H,92H,12H,22H,24H</p><p> DB 22H,24H,12H,92H,22H,24H,32H,24H,32H,52H,62H,54H,52H,64H,52H,32H</p><p> DB 22H,32H,22H
81、,12H,94H,82H,92H,12H,14H,12H,14H,22H,12H,1CH,32H,52H</p><p> DB 62H,64H,62H,64H,0B2H,62H,52H,54H,62H,54H,32H,22H</p><p> DB 12H,14H,12H,14H,24H,3CH,32H,22H,12H,14H,12H,14H,0B2H,62H,52H,54H,62H
82、,54H,32H,52H</p><p> DB 66H,0B2H,0B4H,62H,52H,5CH,32H,52H,62H,64H,62H,64H,0B2H,62H,52H,54H</p><p> DB 62H,54H,32H,22H,12H,14H,12H,14H,54H,3CH,32H,22H,12H,14H,12H,14H,22H,32H</p><p&g
83、t; DB 52H,54H,32H,54H,32H,52H,6FH,04H,02H,92H,32H,24H,12H,1FH</p><p><b> DB 00</b></p><p> TABLE40: ;第四首《彩云追月》 </p><p> DB 86H,92H,12H,22H,32H,52H,68H,63H,5
84、2H,34H,62H,0B2H,0B2H,62H,51H,61H,51H,31H,54H </p><p> DB 62H,0B2H,0B2H,62H,52H,32H,52H,52H,51H,61H,51H,31H,34H,52H,62H,74H,32H,52H,52H,32H</p><p> DB 21H,31H,21H,11H,24H</p><p>
85、DB 32H,52H,52H,32H,22H,12H,24H,32H,52H,52H,32H,62H,52H,61H,51H</p><p> DB 31H,21H,21H,31H,21H,11H,1CH</p><p> DB 21H,31H,22H,23H,31H,21H,18H,02H,0B2H,0BCH,0B4H,72H,61H,51H,72H,61H</p>&
86、lt;p> DB 71H,61H,51H,61H,71H,61H,6FH</p><p> DB 86H,94H,12H,22H,32H,52H,64H,62H,51H,31H,52H,21H,31H,21H,33H,62H,0B2H,0B2H,62H</p><p> DB 51H,61H,51H,31H,54H</p><p> DB 62H,0B
87、2H,72H,61H,51H,51H,61H,51H,31H,54H,61H,0B2H,72H,61H,51H,51H,61H,51H,31H,32H</p><p> DB 21H,11H,32H,51H,61H,54H</p><p> DB 02H,32H,24H,32H,52H,52H,32H,22H,31H,21H,11H,24H,32H,52H,62H,0B2H,72H,6
88、1H,51H,61H</p><p> DB 51H,31H,32H,52H,52H,32H,62H</p><p> DB 51H,31H,31H,21H,11H,91H,23H,31H,21H,1CH,12H,24H,32H,62H,51H,31H,34H,0B4H,72H</p><p> DB 61H,51H,63H,71H,64H</p>
89、<p> DB 0B2H,54H,72H,62H,71H,61H,54H,61H,51H,31H,21H,34H,73H,61H,54H,22H,32H,52H,22H,36H</p><p> DB 52H,62H,61H,31H,32H,21H,11H,21H,11H,91H,81H</p><p> DB 94H,52H,62H,52H,42H,32H,22H,3
90、2H,52H,0B4H,74H,64H,52H,61H,51H,41H,5CH,02H,52H,0B4H,74H</p><p> DB 63H,51H,61H,51H,31H,21H</p><p><b> DB 00</b></p><p> TABLE50: ;第五首《看我七十二變》</p><p&
91、gt; DB 0D4H,84H,94H,82H,92H</p><p> DB 12H,22H,82H,92H,02H,92H,82H,0D2H</p><p> DB 82H,92H,14H,84H,02H,0D1H,0D1H</p><p> DB 0C2H,0D2H,84H,0D2H,0D2H,82H,82H</p><p>
92、 DB 84H,82H,82H,94H,82H,0D2H</p><p> DB 82H,82H,82H,92H,02H,82H,82H,0D2H</p><p> DB 0C4H,84H,0D4H,92H,0D2H</p><p> DB 82H,0D2H,82H,92H,98H</p><p> DB 04H,94H,88H<
93、;/p><p> DB 04H,94H,88H</p><p> DB 04H,94H,88H</p><p> DB 04H,94H,88H,04H</p><p> DB 32H,32H,22H,12H,02H,92H,12H,92H</p><p> DB 32H,32H,22H,12H,02H,92H,1
94、2H,92H</p><p> DB 32H,32H,22H,12H,02H,92H,12H,22H</p><p> DB 54H,44H,34H,12H,22H</p><p> DB 34H,22H,12H,02H,92H,12H,92H</p><p> DB 32H,32H,22H,12H,02H,92H,12H,92H&l
95、t;/p><p> DB 32H,32H,22H,12H,02H,92H,12H,22H</p><p> DB 54H,44H,32H,22H,12H,92H</p><p><b> DB 00</b></p><p><b> END</b></p><p>
96、 第5章 仿真及調(diào)試</p><p><b> 5.1 調(diào)試:</b></p><p> ?。?)按照第2章設(shè)計(jì)的硬件電路在proteus軟件內(nèi)畫(huà)好電路圖。</p><p> ?。?)打開(kāi)單片機(jī)軟件開(kāi)發(fā)系統(tǒng)keil,選擇AT89C51單片機(jī),在其中編寫(xiě)程序,運(yùn)行生成一個(gè)hex文件。</p><p> (3)
97、電路檢查無(wú)誤后,雙擊AT89C51單片機(jī),打開(kāi)編輯元件對(duì)話(huà)框(如圖5-1所示),將已經(jīng)在keil環(huán)境下調(diào)試好的程序hex文件加載到單片機(jī)上。</p><p> 圖5-1 加載單片機(jī)程序</p><p><b> 5.2 仿真:</b></p><p> ?。?)按下1-5中的某一按鍵,蜂鳴器播放當(dāng)前樂(lè)曲。</p>&l
98、t;p> ?。?)按下6鍵,則蜂鳴器響起上一首樂(lè)曲。</p><p> ?。?)按下9鍵,則蜂鳴器響起下一首樂(lè)曲。</p><p> ?。?)按下8鍵,則蜂鳴器停止當(dāng)前音樂(lè)的播放再次按下8鍵后,音樂(lè)繼續(xù)播放。</p><p> 5.3 程序調(diào)試中出現(xiàn)的問(wèn)題及解決的辦法:</p><p> 有時(shí)會(huì)出現(xiàn)程序一點(diǎn)錯(cuò)誤也沒(méi)有,但就是不能
99、正常運(yùn)行的現(xiàn)象,最后我們發(fā)現(xiàn)是因?yàn)槌绦蛑杏械闹噶顣?shū)寫(xiě)得不規(guī)范導(dǎo)致的,例如有的RET返回指令一定要按正確格式書(shū)寫(xiě)或在兩行指令間最好不要留空行。</p><p> 程序中的跳轉(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)。</p><p> 編程時(shí)要注意,在程序開(kāi)始時(shí),要寫(xiě)入各定時(shí)器中斷的
100、入口地址。</p><p> 編程過(guò)程中要注意加注釋或分割線(xiàn),否則,在程序過(guò)長(zhǎng)時(shí)容易變得很亂,不便于查找或更改。</p><p> 程序的結(jié)構(gòu)要設(shè)計(jì)的合理,避免上下亂調(diào)用的現(xiàn)象,這樣會(huì)使程序更加清晰化。</p><p> 編程前要加流程圖,這樣會(huì)使思路清晰,如設(shè)計(jì)思路完全可以按著MP3的工作方式列寫(xiě)流程圖。</p><p> 兩個(gè)定時(shí)
101、器同時(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,效果有很大改觀。</p><p> 在歌曲中,當(dāng)遇到一個(gè)音符發(fā)音為4拍,在編曲中為*CH,托因時(shí)間較長(zhǎng),當(dāng)定時(shí)器T1此時(shí)來(lái)中斷時(shí),就會(huì)對(duì)歌曲播放產(chǎn)生影響,若改為發(fā)音一拍,中斷對(duì)歌曲播放影響減弱
102、,但音樂(lè)效果變差。</p><p> 改進(jìn)方案:若采用可以定時(shí)時(shí)間更長(zhǎng)的單片機(jī),可以避免其中的一些問(wèn)題。</p><p> 第6章 設(shè)計(jì)小結(jié)</p><p> 1. 本學(xué)期學(xué)習(xí)單片機(jī)的時(shí)間很短,對(duì)單片機(jī)的硬件設(shè)計(jì),軟件設(shè)計(jì)掌握的深度不夠,但通過(guò)此次課程設(shè)計(jì),卻改變了很多。 首先,對(duì)于硬件電路的工作原理有了進(jìn)一步的學(xué)習(xí),同樣就有了進(jìn)一步的認(rèn)識(shí);其次,軟件方
103、面,在程序的設(shè)計(jì),程序的調(diào)試方面都學(xué)到了很多東西。</p><p> 2. 在一個(gè)好的氛圍里才能踏下心來(lái)做東西,在這幾天課程設(shè)計(jì)的時(shí)間里,大家努力的氛圍對(duì)我的影響很大,這也是我能完成課程設(shè)計(jì)的動(dòng)力。另外在編程中出現(xiàn)問(wèn)題時(shí),一定要戒驕戒躁,腳踏實(shí)地,認(rèn)真看書(shū),仔細(xì)分析,仔細(xì)調(diào)試,就一定會(huì)發(fā)現(xiàn)錯(cuò)誤,克服困難,我也是這么做的,這在課程設(shè)計(jì)中十分重要。</p><p> 3.
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 1基于at89c51單片機(jī)的音樂(lè)盒的設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于at89c51單片機(jī)的音樂(lè)盒設(shè)計(jì)
- 基于at89c51單片機(jī)音樂(lè)盒設(shè)計(jì)含程序設(shè)計(jì)
- 基于51單片機(jī)音樂(lè)盒課程設(shè)計(jì)
- 基于at89c51的lcd音樂(lè)盒課程設(shè)計(jì)論文
- 基于at89c51的lcd音樂(lè)盒課程設(shè)計(jì)論文【最新】
- 單片機(jī)音樂(lè)盒課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--音樂(lè)盒
- 音樂(lè)盒單片機(jī)課程設(shè)計(jì)
- 單片機(jī)音樂(lè)盒課程設(shè)計(jì)
- 單片機(jī)音樂(lè)盒課程設(shè)計(jì)
- 課程設(shè)計(jì)--基于at89c51單片機(jī)控制步進(jìn)電機(jī)
- 單片機(jī)at89c51
- at89c51單片機(jī)課程設(shè)計(jì)-----搶答器
- 基于at89c51單片機(jī)的電機(jī)控制綜合課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告 音樂(lè)盒設(shè)計(jì)
- at89c51單片機(jī)課程設(shè)計(jì)說(shuō)明書(shū)
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的數(shù)字音樂(lè)盒
- 課程設(shè)計(jì)---基于at89s52單片機(jī)數(shù)字音樂(lè)盒設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-基于單片機(jī)的數(shù)字音樂(lè)盒設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論