九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

單片機課程設(shè)計_基于89C51的數(shù)字音樂盒設(shè)計.doc

  • 資源ID:116550624       資源大?。?span id="24d9guoke414" class="font-tahoma">5.59MB        全文頁數(shù):33頁
  • 資源格式: DOC        下載積分:20積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要20積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

單片機課程設(shè)計_基于89C51的數(shù)字音樂盒設(shè)計.doc

課程設(shè)計單片機系統(tǒng)課程設(shè)計成績評定表設(shè)計課題基于89C51的數(shù)字音樂盒設(shè)計設(shè)計學(xué)院名稱: 電氣工程學(xué)院專業(yè)班級:學(xué)生姓名:學(xué)號:指導(dǎo)教師:設(shè)計地點 :設(shè)計時間 :指導(dǎo)教師意見:成績: 簽名: 年 月 日33單片機系統(tǒng)課程設(shè)計課程設(shè)計名稱:基于89C51的數(shù)字音樂盒設(shè)計 專業(yè)班級:學(xué)生姓名:學(xué)號:指導(dǎo)教師:課程設(shè)計地點:課程設(shè)計時間: 單片機系統(tǒng) 課程設(shè)計任務(wù)書學(xué)生姓名專業(yè)班級學(xué)號題目課題性質(zhì)工程設(shè)計課題來源自擬指導(dǎo)教師主要內(nèi)容(參數(shù))利用89C52設(shè)計數(shù)字音樂盒的控制系統(tǒng),實現(xiàn)以下功能:1按下開始鍵或停止鍵后能夠自動播放或停止音樂;2按下選擇鍵可以切換曲目;3LCD顯示當(dāng)前播放的曲目標(biāo)號和播放時間;4蜂鳴器發(fā)出某個音調(diào),與之相對應(yīng)的LED亮起;任務(wù)要求(進度)第1-2天:熟悉課程設(shè)計任務(wù)及要求,查閱技術(shù)資料,確定設(shè)計方案。第3-4天:按照確定的方案設(shè)計單元電路。要求畫出單元電路圖,元件及元件參數(shù)選擇要有依據(jù),各單元電路的設(shè)計要有詳細論述。第5-6天:軟件設(shè)計,編寫程序。第7-8天:實驗室調(diào)試。第9-10天:撰寫課程設(shè)計報告。要求內(nèi)容完整、圖表清晰、文理流暢、格式規(guī)范、方案合理、設(shè)計正確。主要參考資料1 張迎新單片微型計算機原理、應(yīng)用及接口技術(shù)(第2版)M北京:國防工業(yè)出版社,20042 譚浩強。C語言程序設(shè)計(第二版),北京:清華大學(xué)出版社,1991.3中國電子網(wǎng)http:/www.21IC.com4 康華光,模擬電子技術(shù)基礎(chǔ)(第四版)武漢:華中理工大學(xué)出版社,1999.審查意見系(教研室)主任簽字: 年月日目錄引言51 概述52 系統(tǒng)總體方案設(shè)計52.1硬件組成52.2.方案論證。62.3音樂盒的功能圖用框圖表示73硬件電路設(shè)計73.1單片機電路73.2 晶振電路83.3復(fù)位電路83.4鍵盤83.5蜂鳴器電路93.6 LCD液晶電路93.7電源電路104 軟件設(shè)計104.1 音調(diào)、節(jié)拍、及編碼的設(shè)置104.1.1音調(diào)104.1.2節(jié)拍的確定124.2144.3播放音樂子程序流程圖(包含了鍵盤掃描)154.4定時器0中斷服務(wù)子程序框圖:155,調(diào)試165.1 檢查硬件連接165.2 檢查軟件系統(tǒng)165.2.1165.2.2165.3測試結(jié)果175.3.1整體運行圖175.3.2LED燈運行圖186 總結(jié)187參考文獻18附錄A19附錄B20引言在電子信息技術(shù)飛速發(fā)展的今天,現(xiàn)代電子產(chǎn)品幾乎滲透了社會的各個領(lǐng)域,它不僅推動了社會的進步,而且為我們的生活帶來了諸多的便利。由于人們生活質(zhì)量的提高,人們對視覺、聽覺方面的享受提出了越來越高的要求。小小的音樂盒可以給人們帶來美好的回憶,提高人們的精神文化享受。傳統(tǒng)音樂盒多是機械型的,體積笨重,發(fā)音單調(diào),可以選擇的曲目較為單一。本文設(shè)計的音樂盒是以單片機為核心元件的電子式音樂盒,它體積小,重量輕,可以隨心添加自己喜歡的音樂,外觀效果多彩,使用方便,并且具有一定的商業(yè)價值。1概述本音樂盒的設(shè)計是以AT89C52芯片的電路為基礎(chǔ),外部以蜂鳴器作為發(fā)音器件,共同組成了音樂演奏控制器的硬件電路,通過軟件程序來控制單片機內(nèi)部的定時器使單片機I/O口發(fā)出相應(yīng)頻率的脈沖來驅(qū)動蜂鳴器發(fā)出某個音調(diào),與之相對應(yīng)的LED亮起,從而演奏出優(yōu)美動聽的音樂。利用按鍵切換演奏出不同的樂曲,并可以在LCD上顯示當(dāng)前曲目序號和時間。用戶可以按照自己的喜好選擇音樂并將其轉(zhuǎn)化成機器碼存入單片機的存儲器中。對于不同型號的單片機只需要相應(yīng)的改變一下地址和I/O管腳即可。該軟、硬件系統(tǒng)具有很好的通用性,很高的實際使用價值,為單片機DIY制作者和音樂愛好者具有一定的借鑒作用。2 系統(tǒng)總體方案設(shè)計2.1硬件組成按照數(shù)字是音樂盒對控制系統(tǒng)的技術(shù)要求,控制系統(tǒng)的硬件應(yīng)包括以下幾部分:(1)控制器。作為控制系統(tǒng)的核心,可以采用主流的51單片機,MSP430,或處理性能更為優(yōu)越的ARM來合理控制各個器件有條不紊的運行。(2)樂曲選擇器??梢圆捎冒存I或者觸摸屏來切換相應(yīng)的曲目。(3)音頻輸出器件。做為音樂盒的發(fā)聲設(shè)備,可以用蜂鳴器通過它可以將音樂代碼轉(zhuǎn)變?yōu)橐纛l信號發(fā)出來。(4)人機交互界面。可以運用LED或LCD在歌曲播放過程中用來對歌曲信息進行監(jiān)控顯示,反饋給使用者相應(yīng)的信息。硬件方框圖圖2-1-12.2.方案論證。本次設(shè)計以低成本,靈活方便為原則,所以控制器選用主流的51系列單片機,考慮到51內(nèi)部儲存空間的限制,故選用容量為51兩倍的AT89C52單片機作為總控制器,共有以下兩套方案可供選擇:方案一:以AT89C52單片機作為總控制器,以機械鍵盤作為樂曲選擇器,以蜂鳴器作為音頻輸出設(shè)備,以LCD1602液晶作為人機交互界面。 方案二:以AT89C52單片機作為總控制器,以機械鍵盤作為樂曲選擇器,以蜂鳴器作為音頻輸出設(shè)備,以LED數(shù)碼管作為人機交互界面。由于數(shù)碼管顯示內(nèi)容的單一,操作較為繁瑣且難以滿足大眾對主流時尚的需要,所以選用較為流行的顯示效果良好的1620液晶作為人機交互界面,最終確定方案一作為制作方案??傮w方案圖:圖2-2-12.3音樂盒的功能圖用框圖表示音樂盒的功能結(jié)構(gòu)如圖2.2所示。Start_pause鍵負責(zé)開始播放和暫停歌曲,播放歌曲共3首,分別是和兩只老虎和鈴兒響叮當(dāng)。Up鍵負責(zé)切換上一首曲目,down鍵用來切換下一首曲目。圖2-3-13硬件電路設(shè)計3.1單片機電路微控制器采用AT89C52。AT89C52是美國ATMEL公司生產(chǎn)的與MCS-51系列單片機完全兼容的高性能CMOS 8位單片機,MCS-51系列單片機以其推出時間早、配套資源豐富、開發(fā)手段完善、性價比高等特點而得到了廣泛的應(yīng)用,是單片機的主流品種。AT89C52的內(nèi)部資源主要包括:與MCS-51 系列完全兼容的高性能8位CPU;8K字節(jié)可重復(fù)編程的Flash存儲器;256字節(jié)的SRAM;4個8位的并行口,共32條I/O口線;3個16位的定時器/計數(shù)器;6個中斷源,2個中斷優(yōu)先級的中斷系統(tǒng);一個全雙工的串行口;內(nèi)部振蕩器。3.2 晶振電路單片機的正常工作是在時鐘的作用下完成的,晶振選用11.0592M的。圖3-2-13.3復(fù)位電路復(fù)位電路是為了在某些情況下需要單片機恢復(fù)到初始運行條件下而設(shè)計的,只要給RESET端大約10US的高電平,單片機就可以有效復(fù)位。圖3-3-13.4鍵盤該鍵盤電路是為了能夠更好地對音樂盒進行控制,選擇和切換曲目,開始和終止曲目,10K的上拉電阻保證鍵在沒按下時,I/O口輸出為高電平,鍵按下時防止按鍵杯燒壞。圖3-4-13.5蜂鳴器電路蜂鳴器作為音樂盒的發(fā)聲設(shè)備,當(dāng)I/O口數(shù)出一個低電平時,蜂鳴器能夠發(fā)聲,PNP三極管用來放大輸出電流,從而來驅(qū)動蜂鳴器。圖3-5-13.6 LCD液晶電路LCD液晶顯示電路用來進行人機交互,對1602的操作通過P0口發(fā)送數(shù)據(jù)來實現(xiàn)。圖3-6-1圖3-6-23.7電源電路通過變壓器將220V交流變?yōu)?V,再通過整流,濾波,穩(wěn)壓電路實現(xiàn)單片機可以使用的電源,其中LM7805使穩(wěn)壓電源。圖3-7-14 軟件設(shè)計4.1 音調(diào)、節(jié)拍、及編碼的設(shè)置4.1.1音調(diào)音調(diào)的確定不同音高的樂音是用C、D、E、F、G、A、B來表示,這7個字母就是音樂的音名,它們一般依次唱成DO、RE、MI、FA、SO、LA、SI,即唱成簡譜的1、2、3、4、5、6、7,相當(dāng)于漢字“多來米發(fā)梭拉西”的讀音,這是唱曲時樂音的發(fā)音,所以叫“音調(diào)”。每個音調(diào)都有它固有的頻率。如高音DO的頻率(1046Hz)剛好是中音DO的頻率(523Hz)的一倍,中音DO的頻率(523Hz)剛好是低音DO頻率(266 Hz)的一倍;同樣的,高音RE的頻率(1175Hz)剛好是中音RE的頻率(587Hz)的一倍,中音RE的頻率(587Hz)剛好是低音RE頻率(294 Hz)的一倍。1)要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),然后將此周期除以2,即為半周期的時間。利用定時器計時這半個周期時間,每當(dāng)計時到后就將輸出脈沖的I/O反相,然后重復(fù)計時此半周期時間再對I/O反相,就可在I/O腳上得到此頻率的脈沖。2)利用AT89C52的內(nèi)部定時器使其工作在計數(shù)器模式MODE1下,改變計數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法。此外結(jié)束符和休止符可以分別用代碼00H和FFH來表示,若查表結(jié)果為00H,則表示曲子終了;若查表結(jié)果為FFH,則產(chǎn)生相應(yīng)的停頓效果。3)例如頻率為523Hz,其周期T=1/523=1912us,因此只要令計數(shù)器計時956us/1us=956,在每次計數(shù)956次時將I/O反相,就可得到中音DO(523Hz)。計數(shù)脈沖值與頻率的關(guān)系公式如下:N=Fi2FrN:計算值;Fi:內(nèi)部計時一次為1us,故其頻率為1MHz;其計數(shù)值的求法如下:T=65536-N=65536-Fi2Fr例如:設(shè)K=65536,F(xiàn)=1000000=Fi=1MHz,求低音DO(261Hz)。中音DO(523Hz)。高音的DO(1046Hz)的計算值T=65536-N=65536-Fi2Fr=65536-10000002Fr=65536-500000/Fr低音DO的T=65536-500000/262=63627中音DO的T=65536-500000/523=64580高音DO的T=65536-500000/1047=650594) C調(diào)各音符頻率與計數(shù)值T的對照表如表4.1所示。表4.1 C調(diào)各音符頻率與計數(shù)值T的對照表低音頻率T參數(shù)中音頻率T參數(shù)高音頻率T參數(shù)Do2621908229Do523956115Do10465757Do2771805217Do554903108Do11095454Re2941701204Re587852102Re11755151Re3111608193Re62280497Re12454848Mi3301515182Mi65975991Mi13184545Fa3491433172Fa69871686Fa13974343Fa3701351162Fa74067681Fa14804141So3921276153So78463877So15683838So4151205145So83160272So16613636La4401136136La88056868La17603434La4641078129La93253664La18653232Si4941012121Si98850661Si197630304.1.2節(jié)拍的確定若要構(gòu)成音樂,光有音調(diào)是不夠的,還需要節(jié)拍,讓音樂具有旋律(固定的律動),而且可以調(diào)節(jié)各個音的快慢度。音持續(xù)時間的長短即時值,一般用拍數(shù)表示。休止符表示暫停發(fā)音,一排的時間并不確定,一般是400500MS,本次設(shè)計選擇一拍的時間是500MS。一首音樂是由許多不同的音符組成的,而每個音符對應(yīng)著不同頻率,這樣就可以利用不同的頻率的組合,加以與拍數(shù)對應(yīng)的延時,構(gòu)成音樂。對于單片機來說,產(chǎn)生不同頻率的脈沖是非常方便的,利用單片機的定時/計數(shù)器來產(chǎn)生這樣的方波頻率信號。因此,需要弄清楚音樂中的音符和對應(yīng)的頻率,以及單片機定時計數(shù)的關(guān)系。表4.2節(jié)拍與節(jié)拍碼對照節(jié)拍碼節(jié)拍數(shù)節(jié)拍碼節(jié)拍數(shù)11/4拍11/8拍22/4拍21/4拍33/4拍33/8拍41拍42/1拍51又1/4拍55/8拍61又1/2拍63/4拍82拍81拍A2又1/2拍A1又1/4拍C3拍C1又1/2拍F3又3/4拍每個音符使用1個字節(jié),字節(jié)的高4位代表音符的高低,低4位代表音符的節(jié)拍,圖4.2為節(jié)拍碼的對照。如果1拍為0.4秒,1/4拍實0.1秒,只要設(shè)定延遲時間就可求得節(jié)拍的時間。假設(shè)1/4拍為1DELAY,則1拍應(yīng)為4DELAY,以此類推。所以只要求得1/4拍的DELAY時間,其余的節(jié)拍就是它的倍數(shù),如圖5.3為1/4和1/8節(jié)拍的時間設(shè)定。表4.3 1/4和1/8節(jié)拍的時間設(shè)定曲調(diào)值DELAY曲調(diào)值DELAY調(diào)4/4125毫秒調(diào)4/462毫秒調(diào)3/4187毫秒調(diào)3/494毫秒調(diào)2/4250毫秒調(diào)2/4125毫秒編碼do re mi fa so la si分別編碼為17,重音do編為8,重音re編為9,停頓編為0。播放長度以十六分音符為單位(在本程序中為125ms),一拍即四分音符等于4個十六分音符,編為4,其它的播放時間以此類推。音調(diào)作為編碼的高4位,而播放時間作為低4位,如此音調(diào)和節(jié)拍就構(gòu)成了一個編碼。以0 xff作為曲譜的結(jié)束標(biāo)志。舉例1:音調(diào)do,發(fā)音長度為兩拍,即二分音符,將其編碼為0 x18。舉例2:音調(diào)re,發(fā)音長度為半拍,即八分音符,將其編碼為0 x22歌曲播放的設(shè)計。先將歌曲的簡譜進行編碼,儲存在一個數(shù)據(jù)類型為unsignedchar 的數(shù)組中。程序從數(shù)組中取出一個數(shù),然后分離出高4位得到音調(diào),接著找出相應(yīng)的值賦給定時器0,使之定時操作蜂鳴器,得出相應(yīng)的音調(diào);接著分離出該數(shù)的低4位,得到延時時間,接著調(diào)用軟件延時。表4.4 簡譜對應(yīng)的簡譜碼、T值、節(jié)拍數(shù)表4.4簡譜發(fā)音簡譜碼T值節(jié)拍碼節(jié)拍數(shù)5低音SO16426011/4拍6低音LA26440022/4拍7低音TI36452433/4拍1中音DO46458041拍2中音RE56468451又1/43中音MI66477761又1/24中音FA76482082拍5中音SO864898A2又1/26中音LA964968C3拍7中音TIA65030F3又3/41高音DOB650582高音REC651103高音MID651574高音FAE651785高音SOF652174.2本設(shè)計主程序較為簡單,流程圖如下:圖4-2-14.3播放音樂子程序流程圖(包含了鍵盤掃描)圖4-3-14.4定時器0中斷服務(wù)子程序框圖: 圖4-4-15調(diào)試5.1 檢查硬件連接在PROTUES檢查各硬件管腳是否連接正確,線路邏輯是否正確,例如:晶振電路的連接,復(fù)位電路是否設(shè)計正確.5.2 檢查軟件系統(tǒng)5.2.1根據(jù)系統(tǒng)的原理結(jié)構(gòu)檢查各流程圖是否正確,再根據(jù)流程圖來檢查程序是否也正確。5.2.2將所有程序組織起來,在軟件環(huán)境下運行,檢查程序是否正確。通過對硬件和軟件系統(tǒng)的認真檢查,反復(fù)測試,如果沒有出現(xiàn)問題即可把源程序編譯成HEX文件裝載到單片機中,對硬件進行仿真。5.3測試結(jié)果由于開發(fā)板上1602液晶遮擋住了LED燈,所以附上兩張圖5.3.1整體運行圖圖5-3-15.3.2LED燈運行圖圖5-3-26 總結(jié)經(jīng)過幾天的緊張工作,終于把本次設(shè)計完成了,總體下來,其中有苦有樂。比較喜歡電子制作的我,在這次設(shè)計當(dāng)中讓我學(xué)到了很多。在大二寒假期間自學(xué)了一點單片機編程,我想對本次的設(shè)計也帶來了一定的幫助。剛拿到題目,我很高興,因為我一直都想做一個屬于我自己的制作,由于學(xué)習(xí)較為繁忙就遲遲沒有親自動起手來,正好借著這次機會,讓我對自己的動手能力和自己所學(xué)有了一個很好地鍛煉和檢測的機會。由于音樂知識較為薄弱,所以在起初又感覺無從下手,在上網(wǎng)查找了與音樂相關(guān)的信息之后,我突然有了一點思路,就開始了我自己的制作之路。剛開始一切都很順利,就在編寫按鍵控制1602液晶切換曲目、暫停和開始音樂的時候耽誤了好久。剛開始是按鍵總是沒有反應(yīng),1602無法顯示按鍵的切換,經(jīng)過一番查找終于找到了原因,原來在給1602寫數(shù)據(jù)顯示的時候字符的編碼地址出現(xiàn)了錯誤。之后當(dāng)按下暫停鍵之后液晶上沒有及時,但是歌曲去一直在唱,剛開始找不到原因,就一直檢查按鍵的掃描程序,但始終沒有結(jié)果,最后,當(dāng)我把鍵盤的掃描程序放到歌曲的循環(huán)子程序當(dāng)中后,突然能夠正常運行了,我感到很開心,再經(jīng)過一系列的檢測與調(diào)試,最后終于能夠演奏我自己寫進去的音樂了,一個屬于我的設(shè)計就完成了。通過本次設(shè)計使我的動手能力有了一定的提高,更鍛煉了我的編程能力,分析問題和解決問題的能力,真的給了我很大的幫助,可以說是,本次設(shè)計收貨良多。 7參考文獻1)譚浩強。C語言程序設(shè)計(第二版),北京:清華大學(xué)出版社,1991.2)張維新。單片微型計算機原理應(yīng)用及接口技術(shù)(第二版),北京,國防工業(yè)出版社,2009.3)單片機播放音樂原理,百度文庫http:/ 康華光,模擬電子技術(shù)基礎(chǔ)(第四版)武漢:華中理工大學(xué)出版社,1999.5)千年之戀簡譜http:/ uint unsigned int #define uchar unsigned charsbit wela=P27;sbit dula=P26;sbit beep=P23;sbit up=P31; /曲目上一曲選擇鍵sbit start_pause=P32; /曲目開始和停止鍵sbit down=P33; /曲目下一曲選擇鍵sbit lcden=P34;sbit rs=P35;sbit rd=P37;void write_shijian(uchar,uchar);uchar shi,ge,fen,miao;uchar timeh,timel,i;uchar num=0,count=0;uchar code table0= xianzaiqumu:0 ;uchar code table1= 00:00 ;uchar yinyue=0 xff,0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f,0 x0,0 x0;/將音調(diào)轉(zhuǎn)化為對應(yīng)的LED樣式uchar code chuzhi= 0 xff,0 xff,/占位 0 xFC,0 x8E,/中央C調(diào)1-7 0 xFC,0 xED, 0 xFD,0 x43, 0 xFD,0 x6A, 0 xFD,0 xB3, /用于產(chǎn)生不同的音調(diào)的定時器中裝的初值 0 xFD,0 xF3, 0 xFE,0 x2D, 0 xFE,0 x47,/高八度1-7 0 xFE,0 x76, 0 xFE,0 xA1, 0 xFE,0 xC7, 0 xFE,0 xD9, 0 xFE,0 xF9, 0 xFF,0 x16 ;uchar code qumu1= /千年之戀0 x12,0 x22,0 x34,0 x84,0 x74,0 x54,0 x38,0 x42,0 x32,0 x22,0 x42,0 x34,0 x84,0 x72,0 x82,0 x94,0 xA8,0 x08,/前奏0 x32,0 x31,0 x21,0 x32,0 x52,0 x32,0 x31,0 x21,0 x32,0 x62,/竹林的燈火 到過的沙漠 0 x32,0 x31,0 x21,0 x32,0 x82,0 x71,0 x81,0 x71,0 x51,0 x32,0 x22,/七色的國度 不斷飄逸風(fēng)中 0 x32,0 x31,0 x21,0 x32,0 x52,0 x32,0 x31,0 x21,0 x32,0 x62,/有一種神秘 灰色的旋渦 0 x32,0 x31,0 x21,0 x32,0 x83,0 x82,0 x71,0 x72,0 x02,/將我卷入了迷霧中 0 x63,0 xA1,0 xA2,0 x62,0 x92,0 x82,0 x52,/看不清的雙手 0 x31,0 x51,0 x63,0 x51,0 x63,0 x51,0 x63,0 x51,0 x62,0 x82,0 x7C,0 x02,/一朵花傳來誰經(jīng)過的溫柔 0 x61,0 x71,0 x82,0 x71,0 x62,0 xA2,0 x71,0 x76,/穿越千年的傷痛 0 x61,0 x71,0 x82,0 x71,0 x62,0 x52,0 x31,0 x36,/只為求一個結(jié)果 0 x61,0 x71,0 x82,0 x71,0 x62,0 xA3,0 x73,0 x62,0 x53,/你留下的輪廓 指引我 0 x42,0 x63,0 x83,0 x83,0 x91,0 x91,/黑夜中不寂寞 0 x61,0 x71,0 x82,0 x71,0 x62,0 x0A2,0 x71,0 x76,/穿越千年的哀愁 0 x61,0 x71,0 x82,0 x71,0 x62,0 x52,0 x31,0 x36,/是你在盡頭等我 0 x61,0 x71,0 x82,0 x71,0 x62,0 xA3,0 x73,0 x62,0 x53,/最美麗的感動 會值得 0 x42,0 x82,0 x88,0 x02,0 x74,0 x93,0 x89,0 xff/結(jié)束標(biāo)志/用一生守候;uchar code qumu2=/兩只老虎0 x14,0 x24,0 x34,0 x14,0 x14,0 x24,0 x34,0 x14,/兩只老虎 兩只老虎0 x34,0 x44,0 x54,0 x54,0 x34,0 x44,0 x54,0 x54,/跑得快 跑得快0 x52,0 x51,0 x61,0 x52,0 x51,0 x41,0 x34,0 x14,/一只沒有眼睛0 x52,0 x51,0 x61,0 x52,0 x51,0 x41,0 x34,0 x14,/一直沒有尾巴0 x14,0 x54,0 x14,0 x14,0 x14,0 x54,0 x14,0 x14,/真奇怪 真奇怪0 xff;uchar code qumu3=/鈴兒響叮當(dāng)0 x32,0 x32,0 x34,0 x34,0 x34,0 x32,0 x52,0 x12,0 x21,0 x21,0 x34,0 x04,/叮叮當(dāng),叮叮當(dāng),鈴兒響叮當(dāng)0 x44,0 x42,0 x41,0 x42,0 x32,0 x32,0 x31,0 x31,0 x52,0 x32,0 x22,0 x12,0 x52,0 x52,0 x02,/我們滑雪多快樂, 我們沖破大風(fēng)雪0 x52,0 x52,0 x32,0 x22,0 x12,0 x62,0 x22,0 x64,/我們坐在雪橇上0 x62,0 x42,0 x32,0 x32,0 x22,0 x62,0 x04,0 x52,0 x52,0 x42,0 x22,0 x34,0 x04,0 x52,/奔馳過田野, 歡笑又歌唱0 x52,0 x32,0 x22,0 x12,0 x54,0 x52,0 x04,0 x52,0 x32,0 x22,0 x12,0 x64,0 x04,/鈴聲響叮當(dāng) 我們精神多歡暢0 x62,0 x42,0 x32,0 x22,0 x52,0 x02,0 x52,0 x52,0 x62,0 x52,0 x42,0 x22,0 x14,0 x04,/今晚滑雪多塊了, 把滑雪歌兒唱0 xff;void delay1(uint z)/延時125MS,即十六分音符uint x,y;for(x=z;x0;x-)for(y=14350;y0;y-);void delay2(uchar z)/延時1m秒uchar x,y;for(x=z;x0;x-)for(y=110;y0;y-);void write_common(uchar common)/LCD寫命令rs=0;P0=common;delay2(5);lcden=1;delay2(5);lcden=0;void write_data(uchar dat)/LCD寫數(shù)據(jù)rs=1;P0=dat;delay2(5);lcden=1;delay2(5);lcden=0;void init()/初始化函數(shù)uchar i,j;rd=0;TH0=0; /定時器T0和定時T1初始化TL0=0;TH1=(65535-10000)/256;TL1=(65535-10000)%256;EA=1;ET0=1;ET1=1;TMOD=0 x01;TMOD=0 x10;TR0=0;TR1=1;wela=1;/LCD初始化wela=0;dula=1;dula=0;lcden=0;write_common(0 x38);write_common(0 x0c);write_common(0 x06);write_common(0 x01);write_common(0 x80);for(i=0;i16;i+)write_data(table0i);delay2(10);write_common(0 x80+0 x40);for(j=0;j16;j+)write_data(table1j);void key_scan() /鍵盤掃描函數(shù)if(up=0)delay2(5);if(up=0)num+;if(num=4)num=0;miao=0;fen=0;while(!up);write_common(0 x80+13);write_data(0 x30+num);elseif(down=0)delay2(5);if(down=0)num-;miao=0;fen=0;if(num=-1)num=3; while(!down);write_common(0 x80+13);write_data(0 x30+num);elseif(start_pause=0)delay2(5);if(start_pause=0)count+;while(!start_pause);if(count=1)TR1=1;/啟動定時器1elseTR1=0;count=0;void timer1() interrupt 3 /定時器1中斷服務(wù)程序 TH1=(65535-10000)/256;TL1=(65535-10000)%256; count+;if(count=100)count=0;miao+;if(miao=60)miao=0;fen+;if(fen=60)fen=0; void timer0() interrupt 1 /定時器T0用于產(chǎn)生各種音調(diào)TH0=timeh;TL0=timel;beep=beep;void write_shijian(uchar dizhi,uchar date) /曲目時間計時顯示shi=date/10;ge=date%10;write_common(0 x80+0 x40+dizhi);write_data(0 x30+shi);write_data(0 x30+ge); void song() /歌曲子函數(shù)uint temp;uchar jianpu;/jianpu是簡譜i=0;while(1)if(num=0)/復(fù)位后液晶顯示write_shijian(8,0);write_shijian(5,0);elsewrite_shijian(8,miao); write_shijian(5,fen);key_scan(); if(num=0)break;if(num=1)/選擇曲目temp=qumu1i;while(!count )/ 如果鍵按下start_pause鍵,開始或暫停當(dāng)前的曲目key_scan();TR0=0;beep=1;if(count)break;if(num=2)/選擇曲目temp=qumu2i;while(!count )/ 如果鍵按下start_pause鍵,開始或暫停當(dāng)前的曲目key_scan();TR0=0;beep=1;if(count)break;if(num=3)/選擇曲目temp=qumu3i;while(!count )/ 如果鍵按下start_pause鍵,開始或暫停當(dāng)前的曲目key_scan();TR0=0;beep=1;if(count)break;if(temp=0 xff)/如果為終止符,結(jié)束曲目break;jianpu=temp/16; /取數(shù)的高4位P1=yinyuejianpu;/將取出的音符對應(yīng)的碼值送到P1口,使P1口的二極管對應(yīng)發(fā)光if(jianpu!=0)timeh=chuzhijianpu*2; /取出對應(yīng)的簡譜碼timel=chuzhijianpu*2+1;TR0=1;elseTR0=0;beep=1;delay1(temp%16); /取數(shù)的低4位TR0=0;beep=1;delay2(10);/取出每個音符后延時10m秒 TR0=1; i+;TR0=0;beep=1;void main()/主函數(shù)init();while(1)song();/唱歌子函數(shù)

注意事項

本文(單片機課程設(shè)計_基于89C51的數(shù)字音樂盒設(shè)計.doc)為本站會員(good****022)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!