【正文】
,24H,64H,72H,72H,72H,94H,92H,94H,0A4H,58H,58H,54H,44H 94H,98H,98H,08H 84H,82H,82H,82H,82H,94H,0A2H,94H,92H,82H,74H,72H,74H,72H,72H,72H,72H,92H,91H,91H,94H,54H,74H,94H 02H DB 0A4H,0A2H,0B2H,0B4H,0C4H,84H,82H,92H,94H,0A4H,04H,0C2H,0C2H,0D4H,0D8H,0D4H,0D2H,92H 02H DB 0A4H,0A2H,0B2H,0B4H,0C4H,84H,82H,92H,94H,0A4H,04H,0C2H,0C2H,0D4H,0D8H,0D4H,0D2H,92HDB 0A4H,0A2H,0B2H,0B3H,0C4H,0E8H,0D8H DB 0C8H,0C8H,0C8H,08H DB 00H DB 0E8H,0E4H,0E4H,0E8H,0E4H,0F4H,0D4H,0C4H,0B4H,84H,84H,92H,92H,94H,92H,DB 0E8H,0E4H,0E4H,0E8H,0E4H,0F4H,0D4H,0C4H,0B4H,84H,84H,92H,92H,94H,92H,TABLE3: DW 64898,64968,65030,65086,65135,65158,65199,64260,64400,64524,64580,64684,64777,64862 SONG3: DB 03H DB 2804H,04H,0C2H,14H,12H,12H,12H,11H,11H,0C2H,0D1H,0E1H,14H,14H,02H,32H,12H,21H,31H,52H,51H,51H,54H DB 32H,31H,31H,12H,11H,31H,52H,51H,31H,24H,24H,24H,64H,54H,24H,34H,52H,34H,52H,32H,21H,31H,12H,11H,21H,34H,04H DB 52H,51H,0D1H,12H,12H,32H,31H,31H,52H,51H,51H,22H,22H,22H,0D2H,0D1H,0D1H,24H,22H,0C2H,14H,12H,12H,34H,32H,32H,54H,54H,54H,54H DB 12H,11H,31H,52H,51H,51H,64H,54H,32H,31H,11H,52H,52H,52H,32H,02H,12H,02H,0C4H,14H DB 0A2H,0A1H,11H,52H,52H,52H,32H,02H,12H,02H,0C4H,14H,0C4H,14H,0C4H,14H,14H,04H DB 04H,04H,04H,04H DB 00H TABLE4: DW 64260,64400,64524,64580 ,64684,64777,64280,64898,64968,65030,65058,65110,65157,65178,65217 SONG4: DB 04HDB 82H,01H,81H,94H,84H DB 0B4H,0A4H,04H DB 82H,01H,81H,94H,84H DB 0C4H,0B4H,04H DB 82H,01H,81H,94H,84H DB 0B4H,0A4H,04H DB 82H,01H,81H,94H,84H DB 0C4H,0B4H,04H DB 82H,01H,81H,94H,84H DB 0B4H,0A4H,04H DB 82H,01H,81H,94H,84H DB 0C4H,0B4H,04H 29DB 82H,01H,81H,94H,84H DB 0B4H,0A4H,04H DB 0C4H,0B4H,04H DB 00H DB 82H,01H,81H,94H,84H TABLE5: DW 64021,64103,64260,64400 ,64524,64580,64684,64777,64820,64898,64968,65030,64934 SONG5:DB 05H DB 42H,82H,82H,82H,84H,02H,72H DB 62H,72H,62H,52H,48H DB 0B2H,0B2H,0B2H,0B2H,0B4H,02H,0A2H DB 12H,0A2H,0D2H,92H,88H DB 82H,0B2H,0B2H,0A2H,84H,02H,72H DB 62H,72H,62H,52H,44H,02H,12H DB 12H,62H,62H,52H,44H,02H,82H DB 72H,62H,52H,32H,48H DB 00H TABLE6: 64021,6103,64260,64400,64524,64580,64624,64777,64820,64898,64958,65030,65058,65110,65157 SONG6: DB 06HDB 0A2H,0B2H,0D2H,0B2H,0A4H,0B2H,0D2H DB 0B2H,0A2H,82H,72H,88H DB 72H,82H,0A2H,82H,72H,62H,42H,62H DB 0A4H,02H,0B2H,0A4H,84H DB 72H,82H,72H,62H,72H,84H,72H DB 64H,62H,12H,34H,02H,42H DB 38H,38H DW DB 38H,38H 30DB 44H,02H,32H,44H,64H DB 72H,74H,82H,0A4H,02H,062H DB 0A8H,0A8H DB 0B2H,0B4H,0A2H,84H,82H,72H DB 62H,72H,82H,0A2H,88H DB 72H,74H,62H,42H,32H,32H,62H DB 78H,78H DB 82H,84H,72H,82H,0A2H,84H DB 72H,82H,72H,62H,48H DB 32H,0A2H,82H,0F2H,0A2H,0B2H,82H,72H DB 68H,68H DB 0B2H,0B2H,0B2H,0A2H,82H,84H,02H DB 72H,74H,62H,42H,32H,42H,62H DB 78H,78H DB 0A2H,0B2H,0A2H,72H,82H,84H,82H DB 72H,74H,62H,44H,64H DB 0A8H,0A4H,02H,0A2H DB 0A2H,0B1H,0A1H,82H,0A2H,0B4H,0B2H,0C2H DB 0A2H,0B2H,0A2H,82H,78H DB 84H,72H,62H,44H,02H,62H DB 72H,81H,71H,62H,72H,84H,02H,0A2H DB 0B4H,02H,82H,74H,82H,72H DB 68H,68H DB 00H END DB 72H,82H,72H,62H,72H,84H,0A2H 31。當(dāng)你馬虎的對待學(xué)習(xí),學(xué)業(yè)也會馬虎的對待你,這樣吃虧的還是自己,學(xué)業(yè)本來就是自己的,自己不努力,難道就會白白得來嗎?所以以后的學(xué)習(xí)中不能有一絲的馬虎大意,就算是為了自己也要學(xué)下去。所以我要感謝在這次課設(shè)里幫助過我的所有同學(xué)。參考文獻[1][M].:北京航空航天大學(xué)出版社,.[2](C51編程)[M].北京:高等教育出版社,.[3][M].北京:北京航空航天大學(xué)出版社,.[4][M].北京:清華大學(xué)出版社,.[5][M].北京:北京航空航天大學(xué)出版社,謝這次的設(shè)計可以說是給了我很多,不僅僅是學(xué)習(xí)上的,更多的是精神上和生活中的首先要感謝老師的教育,讓我學(xué)到了這么多的知識,在這段制作單片機課設(shè)的時候更是有感觸,當(dāng)聽到設(shè)計的音樂盒發(fā)出聲音的時候,第一感覺是好舒暢,因為第一次可以看到自己制作出這樣的東西,在這些自豪中,更能感覺到老師對我們的栽培是那么的重要。最后,了解了單片機的方便性,和強大性。運用課堂上學(xué)到的定時,中斷,循環(huán),以及數(shù)碼管顯示和按鍵程序,可以比較完整的制作出這次的課題。其次對這次制作課程設(shè)計的感想。實驗成功,實驗成品如圖11所示。圖10 設(shè)計仿真圖將KEIL中寫好的程序?qū)氲絾纹瑱C中,開始檢測,首先檢測是否能夠清晰的播放出音樂,其次通過控制三個按鍵來檢測上一首,下一首和暫停的功能是否實現(xiàn),觀察數(shù)碼管的數(shù)字是否隨著按鍵的變化,通過以上檢測,發(fā)現(xiàn)程序和仿真完全符合標(biāo)準(zhǔn),表示仿真和程序檢測通過,可以制作實物。根據(jù)要求,可以畫出仿真圖。下面為數(shù)碼管顯示模塊的流程圖。圖8 中斷程序流程圖 數(shù)碼管顯示模塊本次設(shè)計采用的是共陽極的數(shù)碼管,因此要采用相應(yīng)的數(shù)值來控制數(shù)碼管的亮滅。在此僅具體介紹上一曲的功能。不同的中斷有不同的程序。圖6 定時器模塊流程圖 延時模塊此處的延時模塊并不是固定的延時程序,而是將節(jié)拍表中的接拍數(shù)存放在固定的單元中,再將固定單元中的內(nèi)容送給延時程序中,這樣空拍就可以將節(jié)拍分開,這樣,圖7為延時程序流程圖。定時器模塊的程序清單見附錄。圖5 主程序流程圖 各個模塊及功能介紹 定時器模塊單片機中有兩個16位的可編程計數(shù)器/定時器,他們具有定時和計數(shù)的功能,可用于定時控制,延時,對外部的事件檢測和計數(shù)。主程序要開始定義音頻輸出端口,歌曲總數(shù)以及每首歌的入口地址;然后對定時器初始化,確定工作方式,賦初值,開放中斷啟動定時器工作;對音頻輸出端口初始化;設(shè)置音節(jié)起始位置和節(jié)拍間距,把音節(jié)和節(jié)拍的入口地址信息存放在固定存儲單元中,查詢音樂的節(jié)拍表;當(dāng)6首歌曲的節(jié)拍查詢結(jié)束后,音樂播放完畢,程序結(jié)束。本次用到的軟件設(shè)計選用課堂學(xué)到的匯編語言。同時軟件要根據(jù)硬件的連接來設(shè)計,來配合硬件的工作,例如,本次的設(shè)計用到的是P 0口和P3口。圖3 復(fù)位電路原理圖 揚聲器模塊揚聲器模塊最為重要,當(dāng)單片機輸出脈沖經(jīng)過揚聲器時,會是揚聲器發(fā)聲,不過因為設(shè)計中用到的元件較多,不能保證通過揚聲器的電流足夠大,所以要用三極管放大電路來放大電流,這樣才能讓揚聲器正常工作,具體的原理圖如圖4所示。 復(fù)位電路復(fù)位電路主要用于初始化程序,當(dāng)單片機音樂盒發(fā)生死機時,用復(fù)位電路初始化程序來重啟單片機。上一首按鍵和下一首按鍵接單片機的外部中斷0,外部中斷1。圖2 數(shù)碼管引腳 鍵盤模塊本次的鍵盤模塊采用按鍵開關(guān)這樣操作簡單,辨別容易的開關(guān)。這樣,單片機給予P0口的數(shù)值將會發(fā)生差異,也就是說,不同種類的數(shù)碼管,對應(yīng)的ASCII碼就會不同。硬件系統(tǒng) 數(shù)碼管模塊歌曲顯示部分用數(shù)碼管來顯示,LED顯示器件是通過發(fā)光二極管顯示字段的器件,該設(shè)計采用的是7段數(shù)碼管,原理是由P0口控制數(shù)碼管中的7端LED發(fā)光二極管,通過單片機給予P0口不同的數(shù)值來顯示不同