




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
金貶粵孩HEFEIUNIVERSITYFPGA綜述報(bào)告系別電子信息與電氣工程系任課教師汪濟(jì)洲班級(jí)姓名成績(jī)?nèi)掌赪ordWord資料WordWord資料數(shù)字音樂(lè)盒設(shè)計(jì)摘要:本設(shè)計(jì)是一個(gè)基于STC89C51系列單片機(jī)的音樂(lè)盒,依據(jù)單片機(jī)技術(shù)原理,通過(guò)硬件電路制作以及軟件編譯,設(shè)計(jì)制作出一個(gè)多功能音樂(lè)盒。該音樂(lè)盒主要由按鍵電路、復(fù)位電路、時(shí)鐘電路以及蜂鳴器組成。使用兩個(gè)按鍵控制音樂(lè)盒,一個(gè)用來(lái)切換歌曲,另一個(gè)用來(lái)切換8路LED的變化花樣,本音樂(lè)盒共有兩首歌曲,花樣燈花樣共計(jì)4種。播放歌曲時(shí),蜂鳴器發(fā)出某個(gè)音調(diào),與之對(duì)應(yīng)的LED亮起。本設(shè)計(jì)利用KEIL編程軟件對(duì)音樂(lè)盒源程序進(jìn)行編程并調(diào)試,配合PROTEUS仿真軟件對(duì)硬件進(jìn)行仿真調(diào)試,節(jié)約了設(shè)計(jì)時(shí)間。關(guān)鍵字:音樂(lè)盒STC89C51單片機(jī)KEILPROTEUS音調(diào)TOC\o"1-5"\h\z1概述31.1設(shè)計(jì)方案31.2研究?jī)?nèi)容32硬件設(shè)計(jì)42.1總體設(shè)計(jì)框圖42.2各部分硬件設(shè)計(jì)及其原理4STC89C51簡(jiǎn)介4LED顯示電路設(shè)計(jì)與原理52.2.3時(shí)鐘振蕩電路52.3硬件電路圖及功能63軟件設(shè)計(jì)73.1音調(diào)、節(jié)拍以及編碼的確定方法74.1.1音調(diào)的確定74.1.2節(jié)拍的確定8編碼94.2軟件程序設(shè)計(jì)104.2.1程序流程圖及相應(yīng)代碼塊104.2.2程序源代碼(見附錄A)145調(diào)試145.1檢查硬件連接145.2檢查軟件系統(tǒng)145.3測(cè)試結(jié)果14總體運(yùn)行圖14花樣燈4種花樣圖15參考文獻(xiàn)16附錄A程序源代碼及注釋161概述本設(shè)計(jì)是以STC89C51芯片的電路為基礎(chǔ),外部加上放音設(shè)備,以此來(lái)實(shí)現(xiàn)音樂(lè)演奏控制器的硬件電路,通過(guò)軟件程序來(lái)控制單片機(jī)內(nèi)部的定時(shí)器使其演奏出優(yōu)美動(dòng)聽的音樂(lè)。用戶可以按照自己的喜好選擇音樂(lè)并將其轉(zhuǎn)化成機(jī)器碼存入單片機(jī)的存儲(chǔ)器中。對(duì)于不同型號(hào)的單片機(jī)只需要相應(yīng)的改變一下地址即可.1.1設(shè)計(jì)方案設(shè)計(jì)一個(gè)基于STC89C51系列單片機(jī)的音樂(lè)盒,利用按鍵切換演奏出不同的樂(lè)曲。蜂鳴器發(fā)出某個(gè)音調(diào),與之相對(duì)應(yīng)的LED亮起。使用兩個(gè)按鍵,一個(gè)用來(lái)切換歌曲,另一個(gè)切換八路LED的變化花樣。1.2研究?jī)?nèi)容1)電路有兩種工作模式:演奏音樂(lè)模式和花樣燈模式。演奏音樂(lè)模式:演奏完整的一首的歌曲,八路LED隨著音樂(lè)變化?;訜裟J剑喊寺稬ED變化出各種花樣,蜂鳴器隨著發(fā)出“嘀嘀”聲。2)按下按鍵1進(jìn)入花樣燈模式,再按切換LED花樣,共四種花樣。3)按下按鍵2進(jìn)入演奏音樂(lè)模式,再按切換歌曲,共兩首歌曲。1?3音樂(lè)盒的功能結(jié)構(gòu)圖音樂(lè)盒的功能結(jié)構(gòu)如圖2.2所示。Keyl負(fù)責(zé)切換LED顯示花樣,顯示花樣共4種。Key2負(fù)責(zé)切換播放歌曲,播放歌曲共2首,分別是千年之戀和寂寞沙洲冷。圖1.1音樂(lè)盒功能結(jié)構(gòu)圖2硬件設(shè)計(jì)2.1總體設(shè)計(jì)框圖圖2.1總體設(shè)計(jì)框圖2?2各部分硬件設(shè)計(jì)及其原理2.2.1STC89C51簡(jiǎn)介STC89C51是一種帶4K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。STC89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的STC89C51是一種高效微控制器,STC89C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。外形及引腳排列如圖3.2所示。
STInT-?t0UB1cSTInT-?t0UB1cI-V-I-LbT223weFDDi'CibHFt.中Jiftkiro.rudiirs.i.-up?imi.1i.uk"H^P?riv-DHiTLti.'UUlMS.'dJtlJ)?1.JTdJIU也TS卽P?ap<^f圖2.2STC89C51系列單片機(jī)2.2.2LED顯示電路設(shè)計(jì)與原理LED顯示電路是由8個(gè)LED發(fā)光二極管組成,連接方式為共陽(yáng)極,LED接到單片機(jī)的P1口,若為低電平,可使LED亮起。發(fā)光二極管的亮、滅由內(nèi)部程序控制,8個(gè)LED發(fā)光二極管分別對(duì)應(yīng)不同的音階,所以LED會(huì)隨著音階的變化按規(guī)律亮、滅。2.2.3時(shí)鐘振蕩電路AT89C51中有一個(gè)用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個(gè)放大器與作為反饋元件的片外石英晶體或者陶瓷諧振器一起構(gòu)成自然振蕩器。外接石英晶體及電容Cl、C2接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。對(duì)外接電容C1,C2雖然沒有什么嚴(yán)格的要求,但電容容量的大小會(huì)輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性。如果使用石英晶體,我們推薦電容使用30PF土10PF,而如果使用陶瓷振蕩器建議選擇40PF土10PF。用戶也可以采用外部時(shí)鐘。采用外部時(shí)鐘的電路如圖示。這種情況下,外部時(shí)鐘脈沖接到XTAL1端,即內(nèi)部時(shí)鐘發(fā)生器的輸入端,XTAL2則懸空。由于外部時(shí)鐘信號(hào)是通過(guò)一個(gè)2分頻觸發(fā)器后作為內(nèi)部時(shí)鐘信號(hào)的,所以對(duì)外部時(shí)鐘信號(hào)的占空比沒有特殊要求,但最小高電平持續(xù)時(shí)間和最大的低電平持續(xù)時(shí)間應(yīng)符合產(chǎn)品技術(shù)條件的要求。振蕩器電路圖如下:gNCX7AL1EXTERNALOSCILLATORSIGNALHDXTAL2XTAL1GND圖2.3單片機(jī)內(nèi)部、外部振蕩電路2.3硬件電路圖及功能總體硬件電路實(shí)現(xiàn)功能如下,如圖2.4所示電路中用P3.2、P3.3分別控制按鍵Keyl和Key2。P1.0~P1.7控制LED。P2.3控制蜂鳴器。電路為12MHZ晶振頻率工作,起振電路中Cl、C2均為30PF。VCC圖2.4硬件電路圖3軟件設(shè)計(jì)在本程序中設(shè)置了兩個(gè)標(biāo)志countl和count2,分別初始化為1和0。按鍵1使得count2在1~4之間切換,按鍵2使得countl在1和2之間切換,程序檢測(cè)countl的值,countl的值來(lái)切換LED的花樣。另一方面根據(jù)count2等于1時(shí)播放第一首歌曲,等于2時(shí)播放第二首。count1和count2的值是互斥的,設(shè)置count2等于1、2時(shí),count2同時(shí)設(shè)置為0;設(shè)置count1等于1~4時(shí),count2也同時(shí)設(shè)置為0。3.1音調(diào)、節(jié)拍以及編碼的確定方法一般說(shuō)來(lái),單片機(jī)演奏音樂(lè)基本都是單音頻率,它不包含相應(yīng)幅度的諧波頻率,也就是說(shuō)不能像電子琴那樣能奏出多種音色的聲音。因此單片機(jī)奏樂(lè)只需弄清楚兩個(gè)概念即可,也就是“音調(diào)”和節(jié)拍表示一個(gè)音符唱多長(zhǎng)的時(shí)間。4.1.1音調(diào)的確定不同音高的樂(lè)音是用C、D、E、F、G、A、B來(lái)表示,這7個(gè)字母就是音樂(lè)的音名,它們一般依次唱成DO、RE、MI、FA、SO、LA、SI,即唱成簡(jiǎn)譜的1、2、3、4、5、6、7,相當(dāng)于漢字“多來(lái)米發(fā)梭拉西”的讀音,這是唱曲時(shí)樂(lè)音的發(fā)音,所以叫“音調(diào)”,即Tone。把C、D、E、F、G、A、B這一組音的距離分成12個(gè)等份,每一個(gè)等份叫一個(gè)“半音”。兩個(gè)音之間的距離有兩個(gè)“半音”,就叫“全音”。在鋼琴等鍵盤樂(lè)器上,C-D、D-E、F-G、G-A、A-B兩音之間隔著一個(gè)黑鍵,他們之間的距離就是全音;E-F、B-C兩音之間沒有黑鍵相隔,它們之間的距離就是半音。通常唱成1、2、3、4、5、6、7的音叫自然音,那些在它們的左上角加上#號(hào)或者b號(hào)的叫變化音。#叫升記號(hào),表示把音在原來(lái)的基礎(chǔ)上升高半音,b叫降記音,表示在原來(lái)的基礎(chǔ)上降低半音。例如高音DO的頻率(1046Hz)剛好是中音DO的頻率(523Hz)的一倍,中音DO的頻率(523Hz)剛好是低音DO頻率(266Hz)的一倍;同樣的,高音RE的頻率(1175Hz)剛好是中音RE的頻率(587Hz)的一倍,中音RE的頻率(587Hz)剛好是低音RE頻率(294Hz)的一倍。1)要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),然后將此周期除以2,即為半周期的時(shí)間。利用定時(shí)器計(jì)時(shí)這半個(gè)周期時(shí)間,每當(dāng)計(jì)時(shí)到后就將輸出脈沖的I/O反相,然后重復(fù)計(jì)時(shí)此半周期時(shí)間再對(duì)I/O反相,就可在I/O腳上得到此頻率的脈沖。2)利用AT89C51的內(nèi)部定時(shí)器使其工作在計(jì)數(shù)器模式MODE1下,改變計(jì)數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法。此外結(jié)束符和休止符可以分別用代碼00H和FFH來(lái)表示,若查表結(jié)果為00H,則表示曲子終了;若查表結(jié)果為FFH,則產(chǎn)生相應(yīng)的停頓效果。3)例如頻率為523Hz,其周期T=1/523=1912us,因此只要令計(jì)數(shù)器計(jì)時(shí)956us/1us=956,在每次技術(shù)956次時(shí)將I/O反相,就可得到中音DO(523Hz)。計(jì)數(shù)脈沖值與頻率的關(guān)系公式如下:N=Fi-2-FrN:計(jì)算值;Fi:內(nèi)部計(jì)時(shí)一次為1us,故其頻率為1MHz;4)其計(jì)數(shù)值的求法如下:T=65536-N=65536-Fi-2-Fr例如:設(shè)K=65536,F=1000000二Fi=lMHz,球低音DO(261Hz)。中音DO(523Hz)。高音的DO(1046Hz)的計(jì)算值T=65536-N=65536-Fi-2-Fr=65536T000000-2-Fr=65536-500000/Fr低音DO的T=65536-500000/262=63627低音DO的T=65536-500000/523=64580低音DO的T=65536-500000/1047=65059C調(diào)各音符頻率與計(jì)數(shù)值T的對(duì)照表如表4.1所示。表4.1C調(diào)各音符頻率與計(jì)數(shù)值T的對(duì)照表低音頻率T參數(shù)中音頻率T參數(shù)高音頻率T參數(shù)Do2621908229Do523956115Do10465757Do#2771805217Do#554903108Do#11095454Re2941701204Re587852102Re11755151Re#3111608193Re#62280497Re#12454848Mi3301515182Mi65975991Mi13184545Fa3491433172Fa69871686Fa13974343Fa#3701351162Fa#74067681Fa#14804141So3921276153So78463877So15683838So#4151205145So#83160272So#16613636La4401136136La88056868La17603434La#4641078129La#93253664La#18653232Si4941012121Si98850661Si197630304.1.2節(jié)拍的確定若要構(gòu)成音樂(lè),光有音調(diào)是不夠的,還需要節(jié)拍,讓音樂(lè)具有旋律(固定的律動(dòng)),而且可以調(diào)節(jié)各個(gè)音的快滿度?!肮?jié)拍”,即Beat,簡(jiǎn)單說(shuō)就是打拍子,就像我們聽音樂(lè)不自主的隨之拍手或跺腳。若1拍實(shí)0.5s,則1/4拍為0.125s。至于1拍多少s,并沒有嚴(yán)格規(guī)定,就像人的心跳一樣,大部分人的心跳是每分鐘72下,有些人快一點(diǎn),有些人慢一點(diǎn),只要聽的悅耳就好。音持續(xù)時(shí)間的長(zhǎng)短即時(shí)值,一般用拍數(shù)表示。休止符表示暫停發(fā)音。一首音樂(lè)是由許多不同的音符組成的,而每個(gè)音符對(duì)應(yīng)著不同頻率,這樣就可以利用不同的頻率的組合,加以與拍數(shù)對(duì)應(yīng)的延時(shí),構(gòu)成音樂(lè)。了解音樂(lè)的一些基礎(chǔ)知識(shí),我們可知產(chǎn)生不同頻率的音頻脈沖即能產(chǎn)生音樂(lè)。對(duì)于單片機(jī)來(lái)說(shuō),產(chǎn)生不同頻率的脈沖是非常方便的,利用單片機(jī)的定時(shí)/計(jì)數(shù)器來(lái)產(chǎn)生這樣的方波頻率信號(hào)。因此,需要弄清楚音樂(lè)中的音符和對(duì)應(yīng)的頻率,以及單片機(jī)定時(shí)計(jì)數(shù)的關(guān)系。表4.2節(jié)拍與節(jié)拍碼對(duì)照節(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拍8282拍81拍A2又1/2拍A1又1/4拍C3拍C1又1/2拍F3又3/4拍8282拍81拍A2又1/2拍A1又1/4拍C3拍C1又1/2拍F3又3/4拍WordWord資料WordWord資料每個(gè)音符使用1個(gè)字節(jié),字節(jié)的高4位代表音符的高低,低4位代表音符的節(jié)拍,圖5.2為節(jié)拍碼的對(duì)照。如果1拍為0.4秒,1/4拍實(shí)0.1秒,只要設(shè)定延遲時(shí)間就可求得節(jié)拍的時(shí)間。假設(shè)1/4拍為1DELAY,則1拍應(yīng)為4DELAY,以此類推。所以只要求得1/4拍的DELAY時(shí)間,其余的節(jié)拍就是它的倍數(shù),如圖5.3為1/4和1/8節(jié)拍的時(shí)間設(shè)定。表4.31/4和1/8節(jié)拍的時(shí)間設(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毫秒4.1.3編碼doremifasolasi分別編碼為1~7,重音do編為&重音re編為9,停頓編為0。播放長(zhǎng)度以十六分音符為單位(在本程序中為165ms),—拍即四分音符等于4個(gè)十六分音符,編為4,其它的播放時(shí)間以此類推。音調(diào)作為編碼的高4位,而播放時(shí)間作為低4位,如此音調(diào)和節(jié)拍就構(gòu)成了一個(gè)編碼。以0xff作為曲譜的結(jié)束標(biāo)志。舉例1:音調(diào)do,發(fā)音長(zhǎng)度為兩拍,即二分音符,將其編碼為0x18。舉例2:音調(diào)re,發(fā)音長(zhǎng)度為半拍,即八分音符,將其編碼為0x22歌曲播放的設(shè)計(jì)。先將歌曲的簡(jiǎn)譜進(jìn)行編碼,儲(chǔ)存在一個(gè)數(shù)據(jù)類型為unsignedchar的數(shù)組中。程序從數(shù)組中取出一個(gè)數(shù),然后分離出高4位得到音調(diào),接著找出相應(yīng)的值賦給定時(shí)器0,使之定時(shí)操作蜂鳴器,得出相應(yīng)的音調(diào);接著分離出該數(shù)的低4位,得到延時(shí)時(shí)間,接著調(diào)用軟件延時(shí)。表4.4簡(jiǎn)譜對(duì)應(yīng)的簡(jiǎn)譜碼、T值、節(jié)拍數(shù)簡(jiǎn)譜發(fā)音簡(jiǎn)譜碼T值節(jié)拍碼節(jié)拍數(shù)5低音SO16426011/4拍6低音LA26440022/4拍7低音TI36452433/4拍1中音DO46458041拍2中音RE56468451又1/4拍3中音MI66477761又1/2拍4中音FA76482082拍5中音SO864898A2又1/2拍6中音LA964968C3拍7中音TIA65030F3又3/4拍1高音DOB650582高音REC651103高音MID651574高音FAE651785高音SOF65217WordWord資料WordWord資料4.2軟件程序設(shè)計(jì)4.2.1程序流程圖及相應(yīng)代碼塊主程序流程圖:左存訂2走岸訂3花樣燈4圖4.1主程序流程圖主程序代碼:main(){ucharx;countl=0;//流水燈無(wú)花樣count2=l;//唱第一首歌EA=1;//開總中斷EXO=1;//開外部中斷0IT0=1;//外部中斷0下降沿觸發(fā)方式EX1=1;//開外部中斷1IT1=1;//外部中斷1下降沿觸發(fā)方式TM0D=0x01;//定時(shí)器0工作在方式1TH0=0;TL0=0;ET0=1;while(l){if(countl!=O)//音樂(lè)停止,花樣燈開始按照花樣閃爍{switch(countl){case1:for(x=0;x〈14;x++){Pl二huayangl[x];beep();delay1(300);if(count1!=1)break;}break;case2:for(x=0;x〈14;x++){P1=huayang2[x];beep();delay1(300);辻(count1!=2)break;}break;case3:for(x=0;x〈16;x++){P1=huayang3[x];beep();delay1(300);if(countl!=3)break;}break;}}else{song();delayl(lOOO);}}}播放音樂(lè)子程序流程圖temp二qnzl[i];//播放千年之戀if(count2==2)temp=jmszl[i];//播放寂寞沙洲冷if(temp==Oxff)//結(jié)束標(biāo)志break;WordWord資料IWord資料IWord資料30pjp=temp/16;//取數(shù)的高4位duan=l;Pl=yinyue[jp];duan=O;if(jp!=O){timeh二cuzhi[jp*2];timel=cuzhi[jp*2+1];}else{TRO=O;fm=1;//關(guān)蜂鳴器}delay(temp%16);//取數(shù)的低4位TR0=0;//唱完一個(gè)音停10MSfm=1;delayl(lO);TRO=1;i++;}TR0=0;fm=1;}延時(shí)程序代碼:voiddelay(uintz)//延時(shí)165MS,即十六分音符{uintx,y;for(x=z;x〉0;x—)for(y=19000;y〉0;y—);}voiddelay1(uintz)//延時(shí)1MS{uintx,y;for(x=z;x>0;x一)for(y=112;y>0;y--);}D8LEElFEDD8LEElFEDp醫(yī)匚I4.2.2程序源代碼(見附錄A)5調(diào)試5.1檢査硬件連接在PROTUES檢查各硬件管腳是否連接正確,線路邏輯是否正確,例如:晶振電路的連接,復(fù)位電路是否設(shè)計(jì)正確。5.2檢查軟件系統(tǒng)根據(jù)系統(tǒng)的原理結(jié)構(gòu)檢查各流程圖是否正確,再根據(jù)流程圖來(lái)檢查程序是否也正確。將所有程序組織起來(lái),在軟件環(huán)境下運(yùn)行,檢查程序是否正確。通過(guò)對(duì)硬件和軟件系統(tǒng)的認(rèn)真檢查,反復(fù)測(cè)試,如果沒有出現(xiàn)問(wèn)題即可把源程序編譯成HEX文件裝載到單片機(jī)中,對(duì)硬件進(jìn)行仿真。5.3測(cè)試結(jié)果5.3.1.總體運(yùn)行圖U1XTAL1<PD.TJAE7P0.3IAD3P02IAD2P0?1MD1P2HA15PS'fiiA.I-lP25IA13P24IA12P73W11P22IA1DP2倆gP2UIA3C2EAALEP^N…圖U1XTAL1<PD.TJAE7P0.3IAD3P02IAD2P0?1MD1P2HA15PS'fiiA.I-lP25IA13P24IA12P73W11P22IA1DP2倆gP2UIA3C2EAALEP^N…圖5.1系統(tǒng)總體運(yùn)行圖5.3.2.花樣燈4種花樣圖由于截圖只能看到靜態(tài)圖,不能看到整體圖樣,下面畫圖說(shuō)明:圖5.1花樣燈(1)第一種花樣燈顯示方式為:從D1移向D2,然后D1熄滅,再?gòu)腄2移向D3,然后D2熄滅,(2)第二種花樣燈顯示方式為:從兩邊向中間移動(dòng),首先從D1移向D8,再?gòu)腄8移向D2,以此類推,往復(fù)循環(huán)。具體如圖5.3。圖5.3第2種花樣(3)第三種花樣燈顯示方式為:從左向又移動(dòng)亮,首先D1燈亮,再D1,D2兩個(gè)燈亮,然后前3個(gè)燈亮,一直到8個(gè)燈全亮;從做向右熄滅,首先D1燈熄滅,再D1,D2兩個(gè)燈都熄滅,在前3個(gè)燈都滅,一直到8個(gè)燈全熄滅。這樣往復(fù)循環(huán)。圖5.4第3種花樣(4)第四種花樣燈顯示方式為:8個(gè)燈中,首先其中4個(gè)燈亮,另外4個(gè)燈滅;然后這4個(gè)亮的燈滅,另4個(gè)滅的燈亮。比如:開始D2,D4,D6,D8亮,D1,D3,D5,D7燈滅;然后D2,D4,D6,D8滅,D1,D3,D5,D7燈亮。以此類推,往復(fù)循環(huán)。WordWord資料WordWord資料6總結(jié)本次設(shè)計(jì)報(bào)告是基于單片機(jī)的音樂(lè)盒設(shè)計(jì),從功能上分析,我們要實(shí)現(xiàn)的音樂(lè)盒功能是,能夠切換歌曲,與此同時(shí)有花樣燈顯示。在進(jìn)行了長(zhǎng)達(dá)兩個(gè)星期的時(shí)間的摸索與實(shí)驗(yàn),幫助我們更好的學(xué)習(xí)單片機(jī)入門軟件與硬件的常用設(shè)計(jì)與功能,還使我對(duì)于一項(xiàng)設(shè)計(jì)研究的制作過(guò)程所需要的詳細(xì)步驟和具體的實(shí)現(xiàn)方法有了進(jìn)一步掌握?;貞涍@兩周,我們開始一點(diǎn)都不懂單片機(jī),但是在這兩周內(nèi)我們必須完成一個(gè)實(shí)體,并且要弄懂它的軟件,硬件。幾乎感覺都不可能,但還是必須去完成。我們選擇的是音樂(lè)盒,三人分組,一人負(fù)責(zé)硬件設(shè)計(jì),兩人負(fù)責(zé)軟件設(shè)計(jì)以及設(shè)計(jì)報(bào)告。通過(guò)網(wǎng)上資源,以及請(qǐng)教單片機(jī)學(xué)的很好的同學(xué),學(xué)習(xí)一些單片機(jī)教程,讓我們從一點(diǎn)都不懂單片機(jī)到對(duì)單片機(jī)有了一些初步了解,以及對(duì)我們所設(shè)計(jì)的音樂(lè)盒有了一定的了解,理解有它的原理,以及軟件的代碼實(shí)現(xiàn)。在這次寶貴的設(shè)計(jì)活動(dòng)中,我們最大的收獲是增強(qiáng)了自身對(duì)未知問(wèn)題以及對(duì)知識(shí)的深化認(rèn)識(shí)的能力,用受益匪淺這個(gè)詞語(yǔ)來(lái)概括這次難忘的活動(dòng)我覺得再合適不過(guò)了??傊?,這次設(shè)計(jì)從軟件編寫、調(diào)試到軟硬件聯(lián)機(jī)調(diào)試,我傾注了大量的時(shí)間和心血。真是曾經(jīng)為程序的編寫而冥思查找過(guò),曾經(jīng)為無(wú)法讀懂程序而郁悶苦惱過(guò),也曾經(jīng)為某一功能不能實(shí)現(xiàn)而猶豫彷徨過(guò),但最終我成功了。我不僅品味到了結(jié)果的喜悅,更明白了過(guò)程的彌足珍貴。參考文獻(xiàn)李建忠?單片機(jī)原理及應(yīng)用[M],西安電子科技大學(xué)出版社,2008.2.黃智偉?全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽系統(tǒng)設(shè)計(jì)[M],北京:北京航空航天大學(xué)出版社,2006.6.譚浩強(qiáng).C語(yǔ)言程序設(shè)計(jì)(第二版)[M],北京:清華大學(xué)出版社,1991.附錄A程序源代碼及注釋#include〈reg51.h〉#defineucharunsignedchar#defineuintunsignedintsbitkey1=P3"2;//按keyl可切換花樣sbitkey2=P3"3;//按key2可切換歌曲sbitfm=P3"7;//蜂鳴器連續(xù)的IO口ucharcodehuayang1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf};//花樣1ucharcodehuayang2[]={0x7f,0xfe,0xbf,0xfd,0xdf,0xfb,0xef,0xf7,0xef,0xfb,0xdf,0xfd,0xbf,0xfe};//花樣2ucharcodehuayang3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x0,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};//花樣3charcodehuayang4[]={0x55,0xaa,0xcc,0x33,0x99,0x66,0x0f,0xf0};花樣4ucharcountl;//花樣標(biāo)志ucharcount2;//歌曲標(biāo)志uchartimeh,timel,i;//簡(jiǎn)譜//編程規(guī)則:字節(jié)高位是簡(jiǎn)譜,低位是持續(xù)時(shí)間,//代表多少個(gè)十六分音符//1-7代表中央C調(diào),8-E代表高八度,0代表停頓//最后的0是結(jié)束標(biāo)志ucharcodeqnzl[]={//千年之戀0xl2,0x22,0x34,0x84,0x74,0x54,0x38,0x42,0x32,0x22,0x42,0x34,0x84,0x72,0x82,0x94,0xA8,0x08,//前奏0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62,//竹林的燈火到過(guò)的沙漠0x32,0x31,0x21,0x32,0x82,0x71,0x81,0x71,0x51,0x32,0x22,//七色的國(guó)度不斷飄逸風(fēng)中0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62,//有一種神秘灰色的旋渦0x32,0x31,0x21,0x32,0x83,0x82,0x71,0x72,0x02,//將我卷入了迷霧中0x63,0xA1,0xA2,0x62,0x92,0x82,0x52,//看不清的雙手0x31,0x51,0x63,0x51,0x63,0x51,0x63,0x51,0x62,0x82,0x7C,0x02,//一朵花傳來(lái)誰(shuí)經(jīng)過(guò)的溫柔0x61,0x71,0x82,0x71,0x62,0xA2,0x71,0x76,//穿越千年的傷痛0x61,0x71,0x82,0x71,0x62,0x52,0x31,0x36,//只為求一個(gè)結(jié)果0x61,0x71,0x82,0x71,0x62,0xA3,0x73,0x62,0x53,//你留下的輪廓指引我0x42,0x63,0x83,0x83,0x91,0x91,//黑夜中不寂寞0x61,0x71,0x82,0x71,0x62,0x0A2,0x71,0x76,//穿越千年的哀愁0x61,0x71,0x82,0x71,0x62,0x52,0x31,0x36,//是你在盡頭等我0x61,0x71,0x82,0x71,0x62,0xA3,0x73,0x62,0x53,//最美麗的感動(dòng)會(huì)值得0x42,0x82,0x88,0x02,0x74,0x93,0x89,0xff//結(jié)束標(biāo)志//用一生守候};ucharcodejmszl[]={//寂寞沙洲冷0x12,0x12,0x22,0x32,0x31,0x22,0x21,0x22,//自你走后心憔悴0x21,0x31,0x51,0x52,0x31,0x52,0x61,0x15,0x14,//白色油桐風(fēng)中紛飛0x51,0x52,0x31,0x52,0x62,0x13,0x11,0x13,0x32,0x28,0x08,0x28,//落花似人有情這個(gè)季節(jié)0x31,0x32,0x31,0x32,0x11,0x21,0x51,0x52,0x51,0x52,//河畔的風(fēng)放肆拼命地吹0x51,0x51,0x31,0x32,0x31,0x32,0x81,0x72,0x63,//不斷撥弄離人的眼淚0x62,0x71,0x81,0x72,0x61,0x61,0x52,0x31,0x21,0x32,0x51,0x54,//那樣濃烈的愛再也無(wú)法給0x22,0x12,0x11,0x12,0x11,0x12,0x12,0x14,0x26,0x32,0x26,//傷感一夜一夜0x32,0x61,0x51,0x51,0x31,0x31,0x21,0x31,0x51,0x61,0x51,0x31,0x51,//當(dāng)記憶的線纏繞過(guò)往支離破碎0x02,0x32,0x81,0x81,0x81,0x81,0x62,0x52,0x34,//是慌亂占據(jù)了心扉0x31,0x81,0x81,0x81,0x61,0x91,0x82,//有花兒伴著蝴蝶0x51,0x51,0x51,0x51,0x31,0x61,0x53,//孤雁可以雙飛0x21,0x11,0x21,0x11,0x22,0x11,0x21,0x26,//夜深人靜獨(dú)徘徊0x32,0x61,0x51,0x51,0x31,0x31,0x21,0x31,0x51,0x61,0x51,0x31,0x51,0x52,//當(dāng)幸福戀人寄來(lái)紅色分享喜悅0x31,0x31,0x81,0x81,0x81,0x61,0x91,0x81,0x61,0x31,0x56,//閉上雙眼難過(guò)頭也不敢回0x32,0x32,0x81,0x81,0x81,0x81,0x91,0x81,0x61,0x81,0x61,0x51,0x31,0x51,0x34,//仍然撿盡寒枝不肯安歇微帶著后悔0x21,0x31,0x51,0x31,0x21,0x11,0x61,0x21,0x16,//寂寞沙洲我該思念誰(shuí)0xff};//簡(jiǎn)譜音調(diào)對(duì)應(yīng)的定時(shí)器初值//適合11.0592M的晶振ucharcodecuzhi[]={0xff,0xff,//占位0xFC,0x8E,//中央C調(diào)1-70xFC,0xED,0xFD,0x43,0xFD,0x6A,0xFD,0xB3,0xFD,0xF3,0xFE,0x2D,0xFE,0x47,//高八度1-70xFE,0x76,0xFE,0xA1,0xFE,0xC7,0xFE,0xD9,0xFE,0xF9,0xFF,0x16};ucharyinyue[]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x0,0x0};//將音調(diào)轉(zhuǎn)化為對(duì)應(yīng)的LED樣式voiddelay1(uintz);//延時(shí)IMSvoiddelay(uintz);//延時(shí)165MS,即十六分音符voidsong();voidbeep();//蜂鳴器叫一聲main(){ucharx;count1=0;//流水燈無(wú)花樣count2=1;//唱第一首歌EA=1;//開總中斷EXO=1;//開外部中斷0IT0=1;//外部中斷0下降沿觸發(fā)方式EX1=1;//開外部中斷1IT1=1;//外部中斷1下降沿觸發(fā)方式TM
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中歐客機(jī)采購(gòu)合同范例
- 入學(xué)租房合同范例
- 使用天津市商品房合同范例
- 2025年宿遷中考試題及答案英語(yǔ)
- 會(huì)議服務(wù)策劃合同范例
- 借款房產(chǎn)合同范例
- 農(nóng)機(jī)新機(jī)銷售合同范例
- 農(nóng)村無(wú)證蓋房合同范例
- 關(guān)于賣車合同范例
- 代理藥品銷售合同范例
- 醫(yī)院醫(yī)用耗材SPD服務(wù)項(xiàng)目投標(biāo)方案
- 2025年保密知識(shí)試題庫(kù)附參考答案(精練)
- 全國(guó)普通高等學(xué)校2025屆高三第二次調(diào)研數(shù)學(xué)試卷含解析
- 南昌起義模板
- “互聯(lián)網(wǎng)+”大學(xué)生創(chuàng)新創(chuàng)業(yè)大賽計(jì)劃書一等獎(jiǎng)
- 2024年10月高等教育自學(xué)考試13015計(jì)算機(jī)系統(tǒng)原理試題及答案
- GB/T 3324-2024木家具通用技術(shù)條件
- 2024秋期國(guó)家開放大學(xué)本科《古代小說(shuō)戲曲專題》一平臺(tái)在線形考(形考任務(wù)4)試題及答案
- 血吸蟲病知識(shí)宣傳講座
- 詩(shī)經(jīng)的課件教學(xué)課件
- 人工智能講座模板
評(píng)論
0/150
提交評(píng)論