![ATmega16電子琴的設(shè)計(jì)與實(shí)現(xiàn)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/8ec7c016-4ad1-4052-a0a3-4c65f973a6d2/8ec7c016-4ad1-4052-a0a3-4c65f973a6d21.gif)
![ATmega16電子琴的設(shè)計(jì)與實(shí)現(xiàn)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/8ec7c016-4ad1-4052-a0a3-4c65f973a6d2/8ec7c016-4ad1-4052-a0a3-4c65f973a6d22.gif)
![ATmega16電子琴的設(shè)計(jì)與實(shí)現(xiàn)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/8ec7c016-4ad1-4052-a0a3-4c65f973a6d2/8ec7c016-4ad1-4052-a0a3-4c65f973a6d23.gif)
![ATmega16電子琴的設(shè)計(jì)與實(shí)現(xiàn)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/8ec7c016-4ad1-4052-a0a3-4c65f973a6d2/8ec7c016-4ad1-4052-a0a3-4c65f973a6d24.gif)
![ATmega16電子琴的設(shè)計(jì)與實(shí)現(xiàn)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/8ec7c016-4ad1-4052-a0a3-4c65f973a6d2/8ec7c016-4ad1-4052-a0a3-4c65f973a6d25.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、簡易電子琴的設(shè)計(jì)與實(shí)現(xiàn) 2011年10月16日 目 錄摘要3引言31、 方案的設(shè)計(jì)與論證 31.1芯片選擇 31.2電源控制模塊 31.3功放模塊31.4鍵盤輸入模塊4 2、系統(tǒng)框圖和仿真圖4 3、各模塊的設(shè)計(jì)與論證5 3.1中央處理器MCU 5 3.2 4x4鍵盤5 3.3功放模塊 6 4、程序流程圖7 5、總結(jié)8 6、源程序8 摘 要:本設(shè)計(jì)設(shè)計(jì)了一種基于ATmega16 的電子琴, 該電子琴由用 C語言控制核心部件和適當(dāng)?shù)耐鈬娐窐?gòu)成, 可從琴鍵上進(jìn)行演奏也可自動進(jìn)行樂曲演奏,實(shí)驗(yàn)驗(yàn)證了該設(shè)計(jì)的正確性。關(guān)鍵詞:電子琴;樂曲演奏;自動演奏;ATmega16引言:進(jìn)入21世紀(jì)后,由于電子技術(shù)
2、及計(jì)算機(jī)技術(shù)的迅猛發(fā)展,新型電子產(chǎn)品的更新?lián)Q代速度越來越快。以單片機(jī)為核心構(gòu)成的智能化產(chǎn)品具有體積小、功能強(qiáng)、應(yīng)用面廣等優(yōu)點(diǎn),目前正以前所未有的速度取代著傳統(tǒng)電子線路構(gòu)成的經(jīng)典系統(tǒng),蠶食著傳統(tǒng)數(shù)字電路與模擬電路固有領(lǐng)地。本作品是基于單片機(jī)控制系統(tǒng)的簡易電子琴,可實(shí)現(xiàn)通過按鍵控制,發(fā)出1、2、3、4、5、6、7等十六個音符。該電子琴亦能夠自動演奏樂曲,也可手動進(jìn)行樂曲選擇;實(shí)驗(yàn)驗(yàn)證了該設(shè)計(jì)的正確性。1、方案的設(shè)計(jì)和論證1.1芯片選擇方案一:核心芯片:atmega16單片機(jī)優(yōu)點(diǎn):對于atmega16的使用較熟悉,基本功能實(shí)現(xiàn)比較容易。缺點(diǎn):I/O口多,配置起來容易出錯。方案二:核心芯片:8051單
3、片機(jī)優(yōu)點(diǎn):I/O口配置較為方便,芯片價格便宜。缺點(diǎn):使用匯編語言編程,較為繁瑣,況且隊(duì)員匯編語言知識薄弱。通過比較,結(jié)合自身的知識,選擇方案一。1.2電源控制控制模塊方案一:外置開關(guān)電源,其優(yōu)點(diǎn)是電路設(shè)計(jì)比較簡單。方案二:運(yùn)用晶體管的開關(guān)功能設(shè)計(jì)電源開關(guān)控制電路,通過向單片機(jī)輸入外部中斷來使得單片機(jī)自動控制電源的關(guān)斷。為使設(shè)計(jì)簡便,采用方案一。1.3功放模塊方案一:采用LM386芯片對對輸出的音樂信號進(jìn)行放大,其優(yōu)點(diǎn)是電路簡單,穩(wěn)定性強(qiáng);方案二:采用TDA2822芯片放大音樂信號,但是TDA2822在單電源供電下,工作不是很穩(wěn)定??紤]到穩(wěn)定性因素,選用方案一1.4鍵盤輸入模塊方案一:采用矩陣鍵
4、盤(N×M),每個按鍵占據(jù)行列的一個交點(diǎn),需要的I/O口數(shù)目是N+M,容許的最大鍵數(shù)是N×M。方案二:采用獨(dú)立式按鍵新型鍵盤,但占用硬件資源較多。為了節(jié)省資源,選擇方案一。2、系統(tǒng)框圖和仿真圖 基于ATmega16電子琴系統(tǒng)的硬件總體結(jié)構(gòu)圖如圖1所示,主要包括中央處理器MCU、,功放模塊、鍵盤模塊。 圖13、各模塊的設(shè)計(jì)與論證3.1中央處理器MCU 圖2 中央處理器選用的是ATMega16,如圖2所示。PB0PB7用于連接鍵盤輸入;PD5用于音律PWM的輸出;PA0連接自動演奏按鈕。單片機(jī)輸出頻率CTC不同的信號來產(chǎn)生各種音符,將歌曲各個音符的轉(zhuǎn)化成相應(yīng)的數(shù)字信號,存放在單
5、片機(jī)程序寄存器中,當(dāng)播放音樂時,程序從該寄存器里讀取數(shù)據(jù),然后以CTC信號的模式傳給功放電路,實(shí)現(xiàn)放音樂的功能。3.2 4x4鍵盤 圖3鍵盤與接PB口連接,見圖3。 鍵盤的工作原理: 按鍵設(shè)置在行、列線交點(diǎn)上,行、列線分別連接到按鍵開關(guān)的兩端。行線通過上拉電阻接到+5V 電源上。無按鍵按下時,行線處于高電平的狀態(tài), 而當(dāng)有按鍵按下時, 行線電平與此行線相連的列 線電平?jīng)Q定。3.3 功放模塊 圖4這里的功放模塊采用了傳統(tǒng)的LM386芯片,采用該芯片是因?yàn)長M386具有自身功耗低, 電壓增益可調(diào)整, 電源電壓范圍大, 外接元件少和總諧波失真小等優(yōu)點(diǎn),尤其是在增益為20DB時使用的外圍原件極少。具體
6、的單路連接如下圖4所示。4、程序流程圖5、總結(jié) 經(jīng)過一翻辛苦努力,終于搞定了電子琴了。這個過程中團(tuán)隊(duì)合作讓我們收獲很多。兩個同學(xué)一起做,不可能每個同學(xué)對每項(xiàng)內(nèi)容都了解得很透徹,需要知識互補(bǔ)。另外,遇到困難的時候不能指望讓一個同學(xué)獨(dú)自解決,團(tuán)隊(duì)合作不崇尚單打獨(dú)斗。6.源程序(部分)/端口初始化void port_init(void) PORTA = 0xFF; DDRA = 0x00; PORTB = 0xFF; DDRB = 0xF0; PORTC = 0x00; DDRC = 0x00; PORTD = 0x20; DDRD = 0x20;/*void init_devices(void)
7、CLI(); /禁止所有中斷 MCUCR = 0x00; MCUCSR = 0x80;/禁止JTAG GICR = 0x00; port_init(); /timer1_init(); SEI();/開全局中斷/*void delay_ms(uint ms)uint i,j;for(i=0;i<ms;i+)for(j=0;j<1141;j+);/*void show_music1(void) /獵人進(jìn)行曲uint ii,y1,y2,y3; uint music1= -2,500,100,1,200,400, 1,150,0,2,150,0,3,150,0,4,150,0,5,150
8、,400, 3,200,50,3,200,50,2,200,50,5,200,50,2,200,50,5,200,50, 3,150,0,4,150,0,3,150,0,2,150,0,1,150,50,-2,150,50,1,150,400, 1,150,0,2,150,0,3,150,0,4,150,100,5,150,400, 3,200,50,3,200,50,2,200,50,5,200,50,7,200,50,6,200,50,5,200,800 ; for(ii=0;ii<96;ii+=3)y1=music1ii;y2=music1ii+1;y3=music1ii+2;OC
9、R1AH = voice_H_ratey1+9;OCR1AL = voice_L_ratey1+9;TCCR1A = 0x40;TCCR1B = 0x09;/啟動定時器delay_ms(y2-1);if(y3!=0) /判斷歌曲是否停頓TCCR1A = 0x00;TCCR1B = 0x00;/停止定時器delay_ms(y3);TCCR1A = 0x00;TCCR1B = 0x00;/停止定時器/*void show_music2(void) /兩只老虎uint ii,y1,y2,y3;uchar music2=1,200,100,2,150,100,3,200,100,1,400,1000,
10、 1,200,100,2,150,100,3,200,100,1,400,1000, 3,200,100,4,200,100,5,500,200, 3,200,100,4,200,100,5,500,200, 5,100,50,6,100,50,5,100,50,4,100,50, 3,200,100,1,200,2000, 5,100,50,6,100,50,5,100,50,4,100,50, 3,200,100,1,200,2000, 2,200,100,-2,400,1000,1,400,4000, 2,200,100,-2,400,1000,1,400,4000 ;for(ii=0;
11、ii<(sizeof(music2);ii+=3)y1=music2ii;y2=music2ii+1;y3=music2ii+2;OCR1AH = voice_H_ratey1+9;OCR1AL = voice_L_ratey1+9;TCCR1A = 0x40;TCCR1B = 0x09;/啟動定時器delay_ms(y2);if(y3!=0) /判斷歌曲是否停頓TCCR1A = 0x00;TCCR1B = 0x00;/停止定時器delay_ms(y3);TCCR1A = 0x00;TCCR1B = 0x00;/停止定時器/*void show_music3(void) /小星星uint
12、 ii,y1,y2,y3;uint music3=1,200,400,1,200,400,5,200,400,5,200,400, 6,200,400,6,200,400,5,400,800, 4,200,400,4,200,400,3,200,400,3,200,400, 2,200,400,2,200,400,1,400,800, 5,200,400,5,200,400,4,200,400,4,200,400, 3,200,400,3,200,400,2,400,1000, 5,200,400,5,200,400,4,200,400,4,200,400, 3,200,400,3,200,4
13、00,2,400,800, 1,200,400,1,200,400,5,200,400,5,200,400, 6,200,400,6,200,400,5,400,800, 4,200,400,4,200,400,3,200,400,3,200,400, 2,200,400,2,200,400,1,400,800;for(ii=0;ii<126;ii+=3)y1=music3ii;y2=music3ii+1;y3=music3ii+2;OCR1AH = voice_H_ratey1+9;OCR1AL = voice_L_ratey1+9;TCCR1A = 0x40;TCCR1B = 0x0
14、9;/啟動定時器delay_ms(y2);if(y3!=0) /判斷歌曲是否停頓TCCR1A = 0x00;TCCR1B = 0x00;/停止定時器delay_ms(y3);TCCR1A = 0x00;TCCR1B = 0x00;/停止定時器/*void show_music4(void) /祝你生日快樂uint ii,y1,y2,y3;uchar music4= 5,20,50,5,20,100,6,50,0,5,50,200,8,50,0,7,60,100, 5,20,50,5,20,100,6,50,0,5,50,200,9,50,0,8,60,100, 5,20,50,5,20,100
15、,12,50,0,10,50,100,8,40,0,7,40,0,6,70,100, 11,20,50,11,20,100,10,50,0,8,50,0,9,60,100,8,60,200;for(ii=0;ii<(sizeof(music4);ii+=3)y1=music4ii;y2=music4ii+1;y3=music4ii+2;OCR1AH = voice_H_ratey1+2;OCR1AL = voice_L_ratey1+2;TCCR1A = 0x40;TCCR1B = 0x09;/啟動定時器delay_ms(y2*10);if(y3!=0) /判斷歌曲是否停頓TCCR1A
16、= 0x00;TCCR1B = 0x00;/停止定時器delay_ms(y3);TCCR1A = 0x00;TCCR1B = 0x00;/停止定時器/*void show_select(uint n)/*uchar scan_key(void)uchar i,j,in,ini,inj;uchar find=0;for(i=0;i<4;i+)PORTB=acti;delay_ms(10);in=PINB;in=in<<4;in=in|0x0f;for(j=0;j<4;j+)if(actj=in)find=1;inj=3-j;ini=i;if(actj=in)break;if(actj=in)break;if(find=0)return 16;return (ini*4+inj);/*void main(void)uchar c;uint n;init_devices();n=0;while(1)if(PINA=0xFE)delay_ms(10);if(PINA=0xFE)for(n=0;n<5;n+);n=(rand()%5;if(n=1)show_music1();if(n=2)show_music2();
溫馨提示
- 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年全球及中國彈性墻面涂料行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025年全球及中國無塑餐盒封口紙行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 山東省日照市莒縣高三上學(xué)期期末考試(語文)試卷(含答案)
- 吊車租賃合同范本參考
- 2025加盟合同書樣式
- 貨車包月合同范本
- 范文環(huán)保驗(yàn)收合同范本
- 裝修管理服務(wù)合同范本
- 搭棚施工承包合同
- 2025技術(shù)許可合同
- 五年級數(shù)學(xué)(小數(shù)四則混合運(yùn)算)計(jì)算題及答案匯編
- 數(shù)學(xué)六年級上冊《弧長》課件
- 體檢科運(yùn)營可行性報(bào)告
- 廣東省廣州市黃埔區(qū)2023-2024學(xué)年八年級上學(xué)期期末生物試卷+
- 北京市豐臺區(qū)市級名校2024屆數(shù)學(xué)高一第二學(xué)期期末檢測模擬試題含解析
- 設(shè)立項(xiàng)目管理公司組建方案
- 薪酬戰(zhàn)略與實(shí)踐
- 答案之書(解答之書)-電子版精選答案
- 中國古代文學(xué)史 馬工程課件(上)01總緒論
- 上海中心大廈-介紹 課件
- 非酒精性脂肪性肝病防治指南解讀課件
評論
0/150
提交評論