版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
---..-總結(jié)資料本科課程設(shè)計課程名稱:單片機(jī)原理與接口技術(shù)設(shè)計項目:簡易電子琴設(shè)計實驗地點:跨越機(jī)房專業(yè)班級:通信0901學(xué)號:2009001330學(xué)生XX:田野同組人:李剛瑛梁邦爽指導(dǎo)教師:武娟萍2012年05月26日一、設(shè)計目的本設(shè)計以AT89C51單片機(jī)為核心,采用常用電子器件設(shè)計。要求最少8個按鍵,每個按鍵對應(yīng)一種音調(diào),按下按鍵發(fā)聲,松開按鍵后聲音延遲一段時間后停止,即帶余音的電子琴,延時時間可以設(shè)置,要求最少8個不同音調(diào),可以采用標(biāo)準(zhǔn)的音調(diào)設(shè)計。本次課程設(shè)計主要研究基于AT89C51單片機(jī)的簡易電子琴設(shè)計二、設(shè)計器材AT89C51,蜂鳴器,PNP型三極管,晶振,獨立按鍵三、總體設(shè)計方案1.設(shè)計思路此次設(shè)計硬件電路分四大模塊較為簡單,主要由獨立按鍵、單片機(jī)AT89C51、音頻功放及揚聲器構(gòu)成。以AT89C51為主控器件,對其進(jìn)行編譯,達(dá)到我們的設(shè)計要求。對于軟件部分下面有詳細(xì)介紹。2.電路總設(shè)計框圖如圖1:單片機(jī)單片機(jī)AT89C51按鍵功率放大電路揚聲器圖1電路總設(shè)計框圖3.音頻放大電路在一定頻率X圍內(nèi),具有固定頻率的振動就能產(chǎn)生音樂,但是單片機(jī)產(chǎn)生的音頻脈沖直接驅(qū)動揚聲器并不能產(chǎn)生所要實現(xiàn)的音樂,因為他沒有足夠的驅(qū)動能力,需要音頻功率放大電路。這里選用PNP型三極管來驅(qū)動蜂鳴器,是音響效果更為理想,音頻功放電路接口如圖2所示:圖2音頻放大電路4.音樂播放電路對于播放一首固定音樂,不僅要知道音符也要知道節(jié)拍,對應(yīng)節(jié)拍延時時間設(shè)定表,對單片機(jī)進(jìn)行編程就可以實現(xiàn)功能。放歌產(chǎn)生電路如圖3,其中單片機(jī)的P3.0口控制音樂開始播放控制端口,P3.2口是控制音樂停止播放的控制端口,當(dāng)小按鍵S10按下時P3.0口獲得低電平,音樂開始重復(fù)播放,當(dāng)小按鍵S9按下時,P3.2口獲得低電平,經(jīng)過單片機(jī)的處理,音樂停止播放,單片機(jī)回到最初工作狀態(tài)。而P2口的每個端口都連接一個按鍵,分別控制1,2,3,4,5,6,7,˙1八個不同的音符。圖3音樂播放電圖5.總體電路圖如下圖:圖4總體電路圖,四、設(shè)計原理分析1.產(chǎn)生聲音的方法:只要讓揚聲器通過產(chǎn)生大小變化的電流(脈動電流或交流),就能使揚聲器發(fā)出聲音,因此若以程序不斷的輸出1—0—1—0—1……就可以令揚聲器發(fā)出聲音,由于MCS—51系列的輸出端口輸出電流不夠大,所以必須加上晶體管把電流放大后再驅(qū)動揚聲器,如圖2所示。圖6則是產(chǎn)生聲音的基本流程圖,只要改變半周期t的時間,即可改變輸出頻率。開始開始P3.7=0延時tP3.7=1延時t圖6產(chǎn)生聲音的基本流程圖2.決定程序中參數(shù)的方法:C調(diào)各音階的參數(shù)及代碼如表1所示,根據(jù)此表中的頻率可計算出程序中所需的延時參數(shù),現(xiàn)在以中音DO說明如下:表1C調(diào)各音階的參數(shù)及代碼音階DOREMIFASOLASI音符高音1高音2高音3高音4高音5高音6高音7頻率/HZ522587659700780880988延時參數(shù)63565047423733音長參數(shù)6573828898110124音階代碼21222324252627音符中音1中音2中音3中音4中音5中音6中音7頻率/HZ262294330349392440494延時參數(shù)12611310095857567音長參數(shù)33374144495562音階代碼11121314151617音符低音1低音2低音3低音4低音5低音6低音7頻率/HZ131147165175196220247延時參數(shù)254226201190170150134音長參數(shù)16182122252831音階代碼01020304050607特殊功能休止符重復(fù)演奏停止演奏簡譜0音階代碼0040255DO的頻率為262HZ,所以周期T=1/f=1/262s=3816μs半周期t=T/2=1908μs若以程序:MOVR6,#DATA;1周ACALLDELAY;2周共需耗時3個機(jī)器周期,即耗時1μs×3=3μsDELAY:MOVB,R6;2周需耗時2個機(jī)器周期,即耗時1μs×2=2μsDL:MOVR7,#6;1周DJNZR7,$;2周DJNZR6,DL;2周此循環(huán)部分,每執(zhí)行一次共需耗時15個機(jī)器周期,即耗時1μs×15=15μsMOVR6,B;2周RET;2周共需耗時4機(jī)器周期,即耗時1μs×4=4μs來達(dá)成延時t的目的,則因t=1908μs,且MOVR6,#DATAACALLDELAYMOVB,R6MOVR6,BRET這5個指令共耗時9μs,所以在DELAY子程序中,循環(huán)的部分只能是:1908μs-9μs=1899μs循環(huán)的部分每執(zhí)行一次耗時15μs,故要延時1899μs需要執(zhí)行126次,即R6=126就可產(chǎn)生所需DO音調(diào)。其他音調(diào)所需的R6值,算法相同。(4)實際上,做電子琴時,程序必須不斷地判斷是哪一個鍵被按下,所以程序中還有其他的指令在消耗時間。因此實際采用的R6的值應(yīng)該比上述計算值少一點點,音階才會正確。但是要把R6的值計算很準(zhǔn)確,實在很費時間,況且判斷按鍵的狀態(tài)所耗時間與周期T比起來實在微不足道,所以在設(shè)計程序時只采用上述計算方法計算R6的值即可,程序在判斷是哪個鍵被按下所耗費的時間可忽略不計。3.音樂產(chǎn)生的原理:由于一首音樂是許多不同的音階組成的,而每個音階對應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率組合,即可構(gòu)成我們所想要的音樂了,當(dāng)然對于單片機(jī)來產(chǎn)生不同的頻率非常方便,我們可以利用單片機(jī)的延時時間產(chǎn)生這樣的方波頻率信號。除了音符以外,節(jié)拍也是音樂的關(guān)鍵組成部分,節(jié)拍實際上就是音持續(xù)時間的長短,在單片機(jī)系統(tǒng)中可以用延時時間的長短來實現(xiàn),如果1/4拍的延時時間是0.4秒,則1拍的延時時間就是1.6秒,只要知道1/4拍的延時時間,其余的節(jié)拍就是它的倍數(shù)。如果單片機(jī)要自己播放音樂,那么就必須在程序中考慮到節(jié)拍的設(shè)置。為了編寫計算機(jī)樂譜的方便,所以我們自己定義了音階代碼,例如用01代表低音DO,用11代表中音DO,用21代表高音DO,如表1所列。另外,我們用40代表重復(fù)演奏,用255代表停止演奏。在程序中編寫計算機(jī)樂譜時,就是用這些音階代碼來代替各音階。音階代碼可歲曲子的節(jié)奏快慢有自己決定,例如1拍定位04(就是音長的4倍),半拍就是02,2拍就是08,以此類推。各音拍的音拍代碼如表2所列。表2各音拍的音拍代碼音拍1/4拍1/2拍3/4拍1拍11/4拍11/2拍13/4拍2拍音拍代碼0102030405060708音拍21/4拍21/2拍23/4拍3拍31/4拍31/2拍33/4拍4拍音拍代碼0910111213141516音拍41/4拍41/2拍43/4拍5拍51/4拍51/2拍53/4拍6拍音拍代碼1718192021222324把樂譜改編為程序中的計算機(jī)樂譜時,必須按照“音階代碼在前,音拍代碼在后”的規(guī)則排列,樂譜結(jié)束時,必須以40(表示重復(fù)演奏)或255(表示只演奏一遍就停止)作結(jié)尾。4.程序流程圖:開始開始是音符鍵按下嗎是功能鍵按下嗎?否設(shè)定相應(yīng)的延時參數(shù)R6的值令揚聲器通電延時半周期令揚聲器斷電延時半周期DPTR指向樂譜的開頭讀取音樂代碼,并存入A中音節(jié)代碼等于40嗎音節(jié)代碼等255嗎把DPTR加1讀取音拍代碼,并存入R4中設(shè)定與A內(nèi)音階代碼相對應(yīng)的參數(shù)發(fā)出R4個音長的聲音靜音把DPTR加1停止播放是否是否否是是5.程序:ORG0000HMOVP2,#11111111BMOVP3,#11111111BTEST:JNBP2.0,DO1;P2.0=0嗎?JNBP2.1,RE1;P2.1=0嗎?JNBP2.2,MI1;P2.2=0嗎?JNBP2.3,FA1;P2.3=0嗎?JNBP2.4,SO1;P2.4=0嗎?JNBP2.5,LA1;P2.5=0嗎?JNBP2.6,SI1;P2.6=0嗎?JNBP2.7,DOH1;P2.7=0嗎?JNBP3.0,START;P3.0=0嗎?AJMPTESTDO1:MOVR6,#126AJMPOUTPUT1RE1:MOVR6,#113AJMPOUTPUT1MI1:MOVR6,#100AJMPOUTPUT1FA1:MOVR6,#95AJMPOUTPUT1SO1:MOVR6,#85AJMPOUTPUT1LA1:MOVR6,#75AJMPOUTPUT1SI1:MOVR6,#67AJMPOUTPUT1DOH1:MOVR6,#63AJMPOUTPUT1OUTPUT1:CLRP3.7;令揚聲器通電ACALLDELAY;延時半周期tSETBP3.7;令揚聲器斷電ACALLDELAY;延時半周期tAJMPTEST;重新測試按鍵START:MOVDPTR,#MUSIC;DPTR指向樂譜的開頭CONT:CLRA;讀取樂譜內(nèi)的音階代碼MOVCA,A+DPTR;A=音階代碼CJNEA,#40,CHK;若音階代碼為40AJMPSTART;則從頭開始演奏STOP:MOVA,#255;若音階代碼為255AJMPTEST;則停止演奏CHK:PUSHACC;保存A的內(nèi)容INCDPTRCLRA;讀取樂譜內(nèi)的音拍代碼MOVCA,A+DPTRMOVR4,A;R4=音拍代碼POPACC;取回A的內(nèi)容CHK1:CJNEA,#01,CHK2;若音階代碼為01,ACALLDOL;則產(chǎn)生低音DO的聲音JNBP3.2,STOP;若P3.2=0,則停止演奏CHK2:CJNEA,#02,CHK3;若音階代碼為02,ACALLREL;則產(chǎn)生低音RE的聲音JNBP3.2,STOP;若P3.2=0,則停止演奏CHK3:CJNEA,#03,CHK4;若音階代碼為03,ACALLMIL;則產(chǎn)生低音MI的聲音JNBP3.2,STOP;若P3.2=0,則停止演奏CHK4:CJNEA,#04,CHK5;若音階代碼為04,ACALLFAL;則產(chǎn)生低音FA的聲音JNBP3.2,STOP;若P3.2=0,則停止演奏CHK5:CJNEA,#05,CHK6;若音階代碼為05,ACALLSOL;則產(chǎn)生低音SO的聲音JNBP3.2,STOP;若P3.2=0,則停止演奏CHK6:CJNEA,#06,CHK7;若音階代碼為06,ACALLLAL;則產(chǎn)生低音LA的聲音JNBP3.2,STOP;若P3.2=0,則停止演奏CHK7:CJNEA,#07,CHK11;若音階代碼為07,ACALLSIL;則產(chǎn)生低音SI的聲音JNBP3.2,STOP;若P3.2=0,則停止演奏CHK11:CJNEA,#11,CHK12;若音階代碼為11,ACALLDO;則產(chǎn)生中音DO的聲音JNBP3.2,STOP;若P3.2=0,則停止演奏CHK12:CJNEA,#12,CHK13;若音階代碼為12,ACALLRE;則產(chǎn)生中音RE的聲音JNBP3.2,STOP;若P3.2=0,則停止演奏CHK13:CJNEA,#13,CHK14;若音階代碼為13,ACALLMI;則產(chǎn)生中音MI的聲音JNBP3.2,STOP;若P3.2=0,則停止演奏CHK14:CJNEA,#14,CHK15;若音階代碼為14,ACALLFA;則產(chǎn)生中音FA的聲音JNBP3.2,STOP;若P3.2=0,則停止演奏CHK15:CJNEA,#15,CHK16;若音階代碼為15,ACALLSO;則產(chǎn)生中音SO的聲音JNBP3.2,STOP;若P3.2=0,則停止演奏CHK16:CJNEA,#16,CHK17;若音階代碼為16,ACALLLA;則產(chǎn)生中音LA的聲音JNBP3.2,STOP;若P3.2=0,則停止演奏CHK17:CJNEA,#17,CHK21;若音階代碼為17,ACALLSI;則產(chǎn)生中音SI的聲音JNBP3.2,STOP;若P3.2=0,則停止演奏CHK21:CJNEA,#21,CHK22;若音階代碼為21,ACALLDOH;則產(chǎn)生高音DO的聲音CHK22:CJNEA,#22,CHK23;若音階代碼為22,ACALLREH;則產(chǎn)生高音RE的聲音CHK23:CJNEA,#23,CHK24;若音階代碼為23,ACALLMIH;則產(chǎn)生高音MI的聲音CHK24:CJNEA,#24,CHK25;若音階代碼為24,ACALLFAH;則產(chǎn)生高音FA的聲音CHK25:CJNEA,#25,CHK26;若音階代碼為25,ACALLSOH;則產(chǎn)生高音SO的聲音CHK26:CJNEA,#26,CHK27;若音階代碼為26,ACALLLAH;則產(chǎn)生高音LA的聲音CHK27:CJNEA,#27,CHK0;若音階代碼為27,ACALLSIH;則產(chǎn)生高音SI的聲音CHK0:CJNEA,#00,CONT2;若音階代碼為00,ACALLNON;則不發(fā)出聲音CONT2:INCDPTR;繼續(xù)讀取樂譜AJMPCONTDOL:MOVR6,#254;R6=延時參數(shù)MOVR5,#16;R5=音長參數(shù)AJMPOUTPUT;設(shè)定低音DO的相對參數(shù)REL:MOVR6,#226;設(shè)定低音RE的相應(yīng)參數(shù)MOVR5,#18AJMPOUTPUTMIL:MOVR6,#201;設(shè)定低音MI的相應(yīng)參數(shù)MOVR5,#21AJMPOUTPUTFAL:MOVR6,#190;設(shè)定低音FA的相對參數(shù)MOVR5,#22AJMPOUTPUTSOL:MOVR6,#170;設(shè)定低音SO的相應(yīng)參數(shù)MOVR5,#25AJMPOUTPUTLAL:MOVR6,#150;設(shè)定低音LA的相應(yīng)參數(shù)MOVR5,#28AJMPOUTPUTSIL:MOVR6,#134;設(shè)定低音SI的相應(yīng)參數(shù)MOVR5,#31AJMPOUTPUTDO:MOVR6,#126;設(shè)定中音DO的相對參數(shù)MOVR5,#33AJMPOUTPUTRE:MOVR6,#113;設(shè)定中音RE的相對參數(shù)MOVR5,#37AJMPOUTPUTMI:MOVR6,#100;設(shè)定中音MI的相對參數(shù)MOVR5,#41AJMPOUTPUTFA:MOVR6,#95;設(shè)定中音FA的相對參數(shù)MOVR5,#44AJMPOUTPUTSO:MOVR6,#85;設(shè)定中音SO的相對參數(shù)MOVR5,#49AJMPOUTPUTLA:MOVR6,#75;設(shè)定中音LA的相對參數(shù)MOVR5,#55AJMPOUTPUTSI:MOVR6,#67;設(shè)定中音SI的相對參數(shù)MOVR5,#62AJMPOUTPUTDOH:MOVR6,#63;設(shè)定高音DO的相應(yīng)參數(shù)MOVR5,#65AJMPOUTPUTREH:MOVR6,#56;設(shè)定高音RE的相應(yīng)參數(shù)MOVR5,#73AJMPOUTPUTMIH:MOVR6,#50;設(shè)定高音MI的相應(yīng)參數(shù)MOVR5,#82AJMPOUTPUTFAH:MOVR6,#47;設(shè)定高音FA的相應(yīng)參數(shù)MOVR5,#88AJMPOUTPUTSOH:MOVR6,#42;設(shè)定高音SO的相應(yīng)參數(shù)MOVR5,#98AJMPOUTPUTLAH:MOVR6,#37;設(shè)定高音LA的相應(yīng)參數(shù)MOVR5,#110AJMPOUTPUTSIH:MOVR6,#33;設(shè)定高音SI的相應(yīng)參數(shù)MOVR5,#124AJMPOUTPUTNON:MOVR6,#33;設(shè)定休止符相應(yīng)參數(shù)MOVR5,#124AJMPOUTPUTOUTPUT:MOVACC,R5;保存R5的內(nèi)容LOOP:CJNEA,#00,SOUND;若音階代碼為00,則不讓揚聲器通電LJMPMUTESOUND:CLRP3.7;令揚聲器通電MUTE:ACALLDELAY;延時半周期SETBP3.7;令揚聲器斷電ACALLDELAY
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版土建項目施工人員勞動合同范本9篇
- 2025年倉儲果蔬存儲合同
- 2025年智能社區(qū)內(nèi)新型消費體驗商鋪租賃合同2篇
- 2025年分銷代理合作模板書
- 2025年醫(yī)療支持服務(wù)合作協(xié)議
- 2025年主題公寓租賃協(xié)議
- 2025年危險品運輸報關(guān)報檢協(xié)議
- 2025年作品使用授權(quán)合同
- 2025版外墻內(nèi)保溫系統(tǒng)施工與節(jié)能監(jiān)測合同3篇
- 2025版信用卡醫(yī)療借款服務(wù)協(xié)議3篇
- 安全常識課件
- 河北省石家莊市2023-2024學(xué)年高一上學(xué)期期末聯(lián)考化學(xué)試題(含答案)
- 小王子-英文原版
- 新版中國食物成分表
- 2024年山東省青島市中考生物試題(含答案)
- 河道綜合治理工程技術(shù)投標(biāo)文件
- 專題24 短文填空 選詞填空 2024年中考英語真題分類匯編
- 再生障礙性貧血課件
- 產(chǎn)后抑郁癥的護(hù)理查房
- 2024年江蘇護(hù)理職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 電能質(zhì)量與安全課件
評論
0/150
提交評論