




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、;.課程設(shè)計報告姓名:曹 飛 龍班級:101班學(xué)號:10101230課程設(shè)計名:簡易電子琴指導(dǎo)老師:胡啟龍一、概述:本系統(tǒng)設(shè)計制作一個可演奏的電子琴。綜合應(yīng)用了兩項設(shè)計:(1)能產(chǎn)生純音,了解音調(diào)高低的控制方法,用鍵盤代替電子琴的鍵盤,控制演奏音樂。(2)演奏一支樂曲(天空之城)。 那音階要怎么使用C51單片機(jī)產(chǎn)生呢?C51在這項工作中運(yùn)用它哪些資源呢?我們怎么實現(xiàn)一個按鍵對應(yīng)一個音階呢?二、系統(tǒng)描述:(1)我們從初中開始就知道,聲音是由振動產(chǎn)生的,基本的這7個音階的頻率之間滿足某種數(shù)學(xué)關(guān)系由低到高排列的自然音,所以我們可以通過改變單片機(jī)輸出頻率就可以得到不同的音階;(2)為了得到精確的頻率(
2、周期的倒數(shù)),我們可以使用C51單片機(jī)定時中斷模塊。(3)通過判斷按鍵是否被按下,然后執(zhí)行該按鍵按下時的函數(shù)(在程序中是改變T1的初值得到實現(xiàn))。需要注意的是,在該程序中讓8051的內(nèi)部定時器使其工作在計數(shù)器模式MODE1下,改變記數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法。例如頻率為523HZ,其周期T=1/523=1912微秒,因此只要令計數(shù)器定時956/1=956在每記數(shù)9次時將I/O口反相,就可得到中音D0(523HZ)。記數(shù)脈沖值與頻率的關(guān)系公式如下:N=Fi/2/Fr N:記數(shù)值Fi:內(nèi)部計時一次為1微秒故其頻率為1MHZ Fr;要產(chǎn)生的頻率起記數(shù)值的求法如下:T65536N65536
3、Fi2Fr例如:設(shè)K65536,F(xiàn)1000000Fi1MHZ,求低音D0(523HZ),高音的D0(1046HZ)的記數(shù)值。T65536N65536Fi2Fr6553610000002Fr65536500000Fr低音D0的T6553650000026263627中音D0的T6553650000052364580低音D0的T65536500000104765059詳細(xì)的音階頻率與計數(shù)初值可參考附錄一;三、電路設(shè)計1單片機(jī)最小系統(tǒng)模塊2.三極管信號放大模塊揚(yáng)聲器發(fā)出對應(yīng)音符模塊如下:3.按鍵電路模塊:四程序設(shè)計:本系統(tǒng)的程序流程圖如下:開始模塊初始化音樂控制按鍵是否按下?播放音樂音符按鍵是否按下
4、?播放音符按鍵所對應(yīng)的音符終止程序如下:#include <reg51.h>#define uchar unsigned char#define uint unsigned intsbit kongzhi=P11;sbit fm=P10; /蜂鳴器輸出的IO口uchar timeh,timel,i=8,t; /timeh,timel為定時器高低4位,i為演奏音符個數(shù)uchar code yinyue=0x63,0x71,0x83,0x71,0x82,0xA2,0x76,0x32,0x32,0x63,0x51,0x62,0x82,0x54,0x32,0x32,0x42,0x32,0x
5、42,0x11,0x32,0x81,0x81,0x81,0x73,0x41,0x41,0x71,0x74,0x63,0x71,0x83,0x71,0x82,0xA2,0x74,0x31,0x31,0x63,0x51,0x62,0x82,0x54,0x31,0x42,0x83,0x71,0x71,0x83,0x91,0x91,0xA1,0x82,0x83,0x71,0x61,0x61,0x72,0x51,0x66,0xff;/-簡譜-/1-7代表中音dosi,8代表高音douchar code yinfu=0x11,0x21,0x31,0x41,0x51,0x61,0x71,0x81,0xff;
6、/-簡譜音調(diào)對應(yīng)的定時器初值-uchar code cuzhi= 0xff,0xff, /占位符0xFC,0x44,0xFC,0xAD,0xFD,0x0A,0xFD,0x34,0xFD,0x83,0xFD,0xC8,0xFE,0x06, /中音dosi的T計數(shù)初值0xFE,0x22,0xFE,0x57,0xFE,0x85,0xFE,0x9B,0xFE,0xC2,0xFE,0xE4,0xFF,0x03; /高音do的T計數(shù)初值void delay1ms(unsigned int ms); /延時ms毫秒子程序void delay165ms(uint z); /延時165ms,即1/4拍子程序vo
7、id keysong(); /演奏子程序int key();void song();main()kongzhi=1;EA=1; /開總中斷ET0=1; /開定時器0TMOD=0x01; /定時器0工作在方式1TH0=0;TL0=0;TR0=1;P3=0xff;while(1) if(kongzhi=0)song();elsekey(); keysong(); void song()uint temp;uchar jp; /jp是簡譜18的變量t=0;while(1)temp=yinyuet; if(temp=0xff) break; /到曲終則跳出循環(huán) jp=temp/16; /取數(shù)的高4位作
8、為音調(diào)if(jp!=0)timeh=cuzhijp*2; /取T的高4位值timel=cuzhijp*2+1; /取T的低4位值elseTR0=0;fm=1; /關(guān)蜂鳴器delay165ms(temp%16); /取數(shù)的低4位作為節(jié)拍TR0=0; /唱完一個音停10msfm=1;delay1ms(10); TR0=1; t+;TR0=0;fm=1;void timer0() interrupt 1 /定時器0溢出中斷子程序用于產(chǎn)生各種音調(diào)TH0=timeh;TL0=timel;fm=fm; /產(chǎn)生方波void keysong()uint temp;uchar jp; /jp是簡譜18的變量i=
9、key();delay1ms(50);if(i!=8)TR0=1;temp=yinfui; jp=temp/16; /取數(shù)的高4位作為音調(diào)if(jp!=0)timeh=cuzhijp*2; /取T的高4位值timel=cuzhijp*2+1; /取T的低4位值elseTR0=0;fm=1; /關(guān)蜂鳴器delay165ms(temp%16); /取數(shù)的低4位作為節(jié)拍TR0=0; /唱完一個音停10msfm=1;delay1ms(10); /TR0=1;/i+;TR0=0;fm=1;int key()switch(P2)case 0xfe: return 0;case 0xfd: return 1
10、;case 0xfb: return 2;case 0xf7: return 3;case 0xef: return 4;case 0xdf: return 5;case 0xbf: return 6;case 0x7f: return 7;default: return 8;/函數(shù)名:delay165ms/函數(shù)功能:采用軟件實現(xiàn)延時約z*165ms/形式參數(shù):無 /返回值:無void delay165ms(uint z) /延時165ms,即1/4拍uint x;for(x=0;x<z;x+) delay1ms(165);/函數(shù)名:delay1ms/函數(shù)功能:采用軟件實現(xiàn)延時約ms*1
11、ms/形式參數(shù):無 /返回值:無void delay1ms(unsigned int ms) unsigned int i,j; for(j=0;j<ms;j+) for(i=0;i<0x100;i+); 五制作與調(diào)試: 最后制作出的成品:六測試結(jié)果。該成品外觀雖然不夠美觀,但是播放音樂功能,一個按鍵對應(yīng)一個音階的功能十分到位??偟膩碚f,對于該成品老師和同學(xué)達(dá)成了同一共識:雖然丑了點,但很“溫柔”(聲音較?。?。七結(jié)論。本次綜合設(shè)計主要涉及硬件和軟件兩方面的內(nèi)容,通過這次課程,我的硬件和軟件開發(fā)能力都獲得了提高。首先硬件方面,更加熟悉了51單片機(jī)的結(jié)構(gòu)以及它的實用,基本了解了電子產(chǎn)品
12、的開發(fā)流程和所要做的工作。 通過課程設(shè)計,我學(xué)到了很多,這些不僅僅局限于鞏固復(fù)習(xí)了課本上知識點,還鍛煉了自己分析問題以及動手實際操作的能力,將以前學(xué)過的零散的知識串到一起,學(xué)以致用。本系統(tǒng)基本上實現(xiàn)了按下鍵盤,揚(yáng)聲器播放對應(yīng)的音符,同時單個程序也能播放歌曲,不足之處在于不能將按鍵和播放音樂的程序不能完美融合,只能在一定范圍內(nèi)滿足按鍵或播放歌曲一種需要,且播放的聲音太小,放大電路的選擇方面的工作做得不是很好。附錄一:音階頻率與計數(shù)初值對照表:音符頻率計數(shù)處之音符頻率計數(shù)初值音符頻率計數(shù)初值低音12200xefa9中音14400xf7d8高音18800xfbef低音22470xf173中音24940xf8bd高音29880x
溫馨提示
- 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年中國云屑生發(fā)乳行業(yè)投資前景及策略咨詢研究報告
- 大學(xué)校醫(yī)考試題庫及答案
- 大學(xué)護(hù)理實訓(xùn)考試題庫及答案
- 大二思政考試題庫及答案
- 初期會計考試題庫及答案
- 昌都事業(yè)單位考試題庫及答案
- 保安晉升考試題及答案
- 拜城干部考試題及答案
- 2025屆湖南省隆回縣化學(xué)高一下期末統(tǒng)考試題含解析
- 2025年金融科技安全報告:金融科技安全事件分析與預(yù)防策略
- 全球高凈值人群的財富增長策略
- 2024-2025學(xué)年廣東省惠州市惠城區(qū)七年級(下)期末英語試卷
- 2025年河北石家莊市公共交通總公司招聘筆試參考題庫含答案解析
- 2025年河北省石家莊市公共交通總公司招聘100人高頻重點提升(共500題)附帶答案詳解
- 2021年縣鄉(xiāng)人大換屆選舉調(diào)研報告
- 《計算機(jī)網(wǎng)絡(luò)基礎(chǔ)》課件-第1章
- 《太原星河灣規(guī)劃》課件
- (磁器口中國歷史文化街區(qū)風(fēng)貌保護(hù)修復(fù)提升項目(一標(biāo)段))招標(biāo)文件
- 租賃轉(zhuǎn)購買設(shè)備協(xié)議
- 機(jī)械制圖-形成性任務(wù)4-國開(ZJ)-參考資料
- 第五講鑄牢中華民族共同體意識-2024年形勢與政策
評論
0/150
提交評論