【正文】
,22H,12H,24H,32H,52H,52H,32H,62H,52H,61H,51H,31H,21H,21H,31H,21H,11H,1CH DB 21H,31H,22H,23H,31H,21H,18H,02H,0B2H,0BCH,0B4H,72H,61H,51H,72H,61H,71H,61H,51H,61H,71H,61H,6FH DB 86H,94H,12H,22H,32H,52H,64H,62H,51H,31H,52H,21H,31H,21H,33H,62H,0B2H,0B2H,62H,51H,61H,51H,31H,54H DB 62H,0B2H,72H,61H,51H,51H,61H,51H,31H,54H,61H,0B2H,72H,61H,51H,51H,61H,51H,31H,32H,21H,11H,32H,51H,61H,54H DB 02H,32H,24H,32H,52H,52H,32H,22H,31H,21H,11H,24H,32H,52H,62H,0B2H,72H,61H,51H,61H,51H,31H,32H,52H,52H,32H,62H DB 51H,31H,31H,21H,11H,91H,23H,31H,21H,1CH,12H,24H,32H,62H,51H,31H,34H,0B4H,72H,61H,51H,63H,71H,64H DB 0B2H,54H,72H,62H,71H,61H,54H,61H,51H,31H,21H,34H,73H,61H,54H,22H,32H,52H,22H,36H,52H,62H,61H,31H,32H,21H,11H,21H,11H,91H,81H DB 94H,52H,62H,52H,42H,32H,22H,32H,52H,0B4H,74H,64H,52H,61H,51H,41H,5CH,02H,52H,0B4H,74H,63H,51H,61H,51H,31H,21H DB 00。第九首十年。TABLE90: DB 02H,11H,21H,32H,32H,22H,32H,21H,11H,0A1H,91H,92H,0D1H,91H,83H,91H,0A2H,91H,81H,94H,11H,0A1H,91H,0A1H,98H,03H,81H,0A1H,0A1H,91H,0A1H DB 98H,04H,02H,11H,21H,32H,32H,22H,32H,21H,31H,51H,11H,13H,31H,22H,22H,21H,11H,0A1H,11H,13H,11H,11H,0A1H,91H,0A1H DB 11H,93H,94H,03H,81H,11H,0A1H,91H,81H,92H,0A1H,91H,94H,08H,03H,81H,32H,21H,11H,22H,31H,21H,21H,83H DB 01H,11H,91H,0A1H,11H,61H,51H,11H,34H,01H,31H,21H,31H,48H,23H,31H,32H,42H,38H,03H,11H,21H,52H,31H DB 33H,31H,31H,41H,51H,61H,23H,21H,21H,41H,31H,21H,13H,0D1H,0D1H,21H,11H,0A1H,11H,91H,92H,91H,11H,0A1H,91H DB 0A1H,31H,31H,22H,0A1H,11H,14H,01H,11H,21H,31H,63H,31H,42H,51H,31H,31H,22H,11H,21H,52H,31H,33H,31H,31H,41H DB 51H,61H,23H,21H,21H,41H,31H,21H,13H,0D1H,0D1H,21H,11H,0A1H,11H,91H,92H,91H,11H,0A1H,91H DB 0A2H,41H,31H,22H,31H,21H,12H,12H,11H,11H,21H,31H,63H,51H,32H,11H,21H,26H,11H,0A1H,18H DB 00。第十首你的愛給了誰。TABLE100: DB 02H,91H,0A1H,16H,21H,11H,0A6H,81H,0A1H,9CH,02H,91H,0A1H,16H,21H,31H,24H,21H,0A1H,11H,0A1H DB 9CH,02H,11H,21H,36H,32H,24H,21H,0A1H,11H,0A1H,9CH,02H,91H,0A1H,14H,11H,11H,21H,11H,0A4H,04H,04H,02H,0A1H,11H,0A1H,93H,92H DB 02H,61H,71H,0B4H,0B2H,0B1H,0B1H,76H,0B1H,71H,6CH,02H,61H,71H,0B6H,0B1H,0B1H,76H,0B1H,71H,6CH,02H,51H,61H,56H,61H,51H,54H,51H,0B1H,71H,0B1H DB 72H,62H,68H,02H,61H,51H,66H,62H,58H,0CH,02H,51H,41H,5FH DB 02H,91H,0A1H,16H,21H,11H,0A6H,81H,0A1H,9CH,02H,91H,0A1H,16H,21H,31H,24H,21H,0A1H,11H,0A1H DB 9CH,02H,11H,21H,36H,32H,24H,21H,0A1H,11H,0A1H,9CH,02H,91H,0A1H,14H,11H,11H,21H,11H,0A4H,04H,04H,02H,0A1H,11H,0A1H,93H,92H DB 02H,61H,71H,0B4H,0B2H,0B1H,0B1H,76H,0B1H,71H,6CH,02H,61H,71H,0B6H,0B1H,0B1H,76H,0B1H,71H,6CH,02H,51H,61H,56H,61H,51H,54H,51H,0B1H,71H,0B1H DB 66H,62H,54H,0B2H,71H,61H,6CH DB 00 END 實驗控制流程圖如下:初始化變量及LCD接口初始化計數(shù)器T0,定時器T1LCD顯示英文歡迎字符等待按鍵,是否有按鍵?包括播放鍵,暫停鍵,停止鍵歌曲號及播放時間顯示在LCD上主程序開始依據(jù)按鍵碼演奏對應的歌曲YN使用說明:鍵盤如下:0123456789ABCDEF按鍵功能說明:1~A:十首歌曲C:上一首歌曲D:下一首歌曲E:歌曲暫停F:開機畫面四、調試程序調試中出現(xiàn)的問題及解決的辦法:1. 有時會出現(xiàn)程序一點錯誤也沒有,但就是不能正常運行的現(xiàn)象,最后我們發(fā)行是因為程序中有的指令書寫得不規(guī)范導致的,例如有的RET返回指令一定要按正確格式書寫或在兩行指令間最好不要留空行。2. 程序中的跳轉指令的運用很重要,為保險起見,都用LJMP,我們就遇到過跳轉指令用錯程序無法正常運行的現(xiàn)象。當用JNZ指令時,跳轉范圍比較少,這時要用一個標號中轉。3. 編程時要注意,在程序開始時,要寫入各定時器中斷的入口地址。4. 編程過程中要注意加注釋或分割線,否則,在程序過長時容易變得很亂,不便于查找或更改。5. 程序的結構要設計的合理,避免上下亂調用的現(xiàn)象,這樣會使程序更加清晰化。6. 編程前要加流程圖,這樣會使思路清晰,例如數(shù)字音樂盒的設計思路完全可以按著MP3的工作方式列寫流程圖。7. LCD計時正常顯示的解決辦法:a. 兩個定時器同時工作,存在中斷時序問題,剛開始時我們把定時器1設定在方式3,計250us,由于定時中斷過于頻繁,使CPU負載過大,導致音樂不能正常播放,時間不能正常顯示。解決辦法:將定時器1設定在工作方式1,16位計數(shù),計50ms,效果有很大改觀。但還有問題。b. 當音樂為全4拍起始時,此時音樂節(jié)奏與定時器T1中斷頻率錯開,LCD顯示和音樂播放都會好一些。c. 另外,在歌曲中,當遇到一個音符發(fā)音為4拍,在編曲中為*CH,托因時間較長,當定時器T1此時來中斷時,就會對歌曲播放產(chǎn)生影響,若改為發(fā)音一拍,中斷對歌曲播放影響減弱,但音樂效果變差。d. 改進方案:若采用可以定時時間更長的單片機,可以避免所有問題。五、收獲,體會與建議:1. 本學期學習單片機的時間只有8周時間,對單片機的硬件設計,軟件設計掌握的深度不夠,但通過此次課程設計,卻改變了很多,首先對于硬件電路的工作原理有了進一步的學習,同樣就有了進一步的認識;其次軟件方面,在程序的設計,程序的調試方面都學到了很多東西,這是第一次編寫單片機的大程序,很有成就感。2. 在一個好的氛圍里才能踏下心來做東西,在這幾天課設的時間里,實驗室的氛圍對我們的影響很大,大家一起努力,這也是我們能完成課設的動力。另外在編程中出現(xiàn)問題時,一定要戒驕戒躁,腳踏實地,認真看書,仔細分析,仔細調試,就一定會發(fā)現(xiàn)錯誤,克服困難,我們也是這么做的,這在課設中十分重要。3. 最后要提一點建議,希望下一次課程設計中,每個人都能有一塊實驗開發(fā)板,這樣能使每個人都能得到充分的鍛煉!六、參考文獻[1]徐泳龍. 單片機原理及應用. 機械工業(yè)出版社 [2]曹天漢. 單片機原理與接口技術. 電子工業(yè)出版社 [3]張有德,趙志英,涂時亮. 單片微型機. 復旦大學出版社25