




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
一、方案論證與比 5556語(yǔ)音選擇 二、系統(tǒng)的具體設(shè)計(jì)及實(shí) 系統(tǒng)總框 硬件設(shè)計(jì) 12864液晶屏顯示設(shè) PS2鍵盤(pán)設(shè) 軟件設(shè)計(jì) 主程序流 LCD控制流程 三、測(cè)試、結(jié)果及分 四、總 參考文 附錄一、完整的系統(tǒng)原理 附錄二、部分的系統(tǒng)源代 電子琴設(shè)計(jì)一 設(shè)計(jì)任 i可以已的音樂(lè)能夠自動(dòng)演奏多首(兩首以上)樂(lè)曲,且演奏方式可選擇(如重復(fù)或者順序等。可以對(duì)編奏樂(lè)曲進(jìn)行,在按下放音鍵時(shí)能演奏出來(lái)隨著大學(xué)生業(yè)余的增強(qiáng)DY作品越來(lái)越受大學(xué)生喜愛(ài)如果自己能做出一款DY可將理論知識(shí)融入到實(shí)踐中去。本電子琴是基于Mega16單片機(jī)控制的小型學(xué)習(xí)作品在業(yè),該游戲機(jī)由單片機(jī)Mega16和一些原件組成具有操作簡(jiǎn)單,12864更加符合人們的操作習(xí)慣加上豐富的音樂(lè)在不知不覺(jué)中享受音樂(lè)的樂(lè)趣,自己親手彈奏美妙的音樂(lè)將不再是夢(mèng)想!,關(guān)鍵字:電子琴、Amega16、PMW波形輸出、液晶、PS2鍵盤(pán)、音樂(lè)、彈奏音Withtheenhancementofstudentshobby,DIYworkmoreandmorepopularamongcollegestudentslove.IfIcouldmakeaDIYworkcannotonlyexercisetheirownability,butalsothetheoreticalknowledgeintopractice.ThekeyboardisbasedontheMega16MCUlearningworksforsmallentertainment,lifeintheamateurcanbringusalotoffun!Maketheirlifemorecolorful!ThegamebytheexternalmicrocontrollerMega16andsomeoriginalcomposition,issimple,showsclearfeatures.12864LCDasamonitortouse,youcandisplayChinesecharacters,numbers,letters,etc.,sothatsysteminformationataglance;usethecomputerkeyboardtooperateandplaymusic,moreinlinewithpeopleaccustomedtotheoperation!Withawealthofmusic,letyouenjoymusicinthefununconsciously,hishandwillplaybeautifulmusicisnolongeradream!:keyboard,Amega16chip,PMWwaveformoutput,LCD12864LCD,PS2keyboard,musicplayer,playmusic一、方案論證與比較控制器部少,功能不夠強(qiáng)大,中斷源和定時(shí)器較少,且沒(méi)有可調(diào)占空比波形輸出。EEPROM的優(yōu)點(diǎn),多種模式的AT89S52單片機(jī)考慮到以上兩種方案的優(yōu)缺點(diǎn)因本系統(tǒng)需要方便的可調(diào)占空比波形輸出需顯示部方案一使用LCD1602128*64液晶顯示模塊。128*64液晶可視面積大,介面美觀,對(duì)圖形和曲鍵盤(pán)部 利用I/O口直接連接的獨(dú)立式鍵盤(pán),每鍵都有相應(yīng)的I/O口對(duì)應(yīng),編程容易控制,實(shí)現(xiàn)方便;但拒于IO口有限,能接的按鍵不能太多,而本系統(tǒng)需用戶根據(jù)需 用4*4矩陣鍵盤(pán)。優(yōu)點(diǎn):利用8個(gè)IO口得到16個(gè)按鍵,可使操作介界變得方案 受數(shù)據(jù),不會(huì)對(duì)其他程序有,因?yàn)椴恍枰獟呙桄I盤(pán),極大的節(jié)約了CPU音量調(diào)節(jié)部 使用DA輸出再放大。優(yōu)點(diǎn):可以直接通過(guò)按鍵設(shè)置音量,調(diào)節(jié)精細(xì)準(zhǔn)確; 使用電位器調(diào)節(jié)加三極管放大,并用AVR自帶的10位AD檢測(cè)并顯示音量。語(yǔ)音選方案二使用喇叭。優(yōu)點(diǎn):能跟據(jù)輸入的頻率放出不同的音調(diào);缺點(diǎn):需要來(lái) 系統(tǒng)的具體設(shè)計(jì)及實(shí)系統(tǒng)總框1286412864PS2PS2本電子琴系統(tǒng)以Amega16單片機(jī)為系統(tǒng),配合128*64液晶模組及PS2鍵盤(pán)和硬件設(shè)12864液晶屏顯示設(shè)本系統(tǒng)采用電子公司出產(chǎn)的128*64液晶模塊(帶中文字庫(kù))作為顯示部分,能2-2-2PS2鍵盤(pán)設(shè)盤(pán),只占用2個(gè)IO口(外部中斷0加一個(gè)數(shù)據(jù)口使操作界面更加人性化,操作過(guò)喇叭放大電路設(shè)用NPN型三極管9013來(lái)放大電路,其中JP3接喇叭,Port40為AD信號(hào)接口,三極b0.25W8歐,原理圖如下所示。軟件設(shè)主程序流
模彈奏音樂(lè)回放音模彈奏音樂(lè)回放音樂(lè)幫助功能YN彈奏音樂(lè)流否是LCD控制流將將光標(biāo)指向指定位三測(cè)試、結(jié)果及分析基本功能和發(fā)揮與儀器,測(cè)試數(shù)據(jù)及分析6、7、i等八個(gè)音符可以通過(guò)按鍵控制發(fā)音,能夠、i4個(gè)音符。已13首歌,5式可選擇(如重復(fù)或者順序等。環(huán),3順序,4循環(huán)5隨機(jī)241280到可以對(duì)編奏樂(lè)曲進(jìn)行,在按下放音鍵時(shí)能演12864PS2車是進(jìn)入,Esc在音樂(lè)的過(guò)程中實(shí)現(xiàn)隨在音樂(lè)的過(guò)程中實(shí)現(xiàn)隨時(shí)暫停繼續(xù)也可以中途退可調(diào)節(jié)速在回放時(shí)可隨時(shí)暫停或出;使用PS2鍵盤(pán),共24個(gè)音節(jié)按人們的打字習(xí)慣分布,并可以,經(jīng)過(guò)反復(fù)調(diào)試設(shè)計(jì)中還有來(lái)不及調(diào)試的模塊如音頻輸出,SD參考[1]李垳《AltiumDesigner6電路設(shè)計(jì)實(shí)例與技巧》國(guó)防工業(yè):[2]景《基于PROTEUS的電路及單片機(jī)系統(tǒng)設(shè)計(jì)仿真》航空航天大學(xué)2006:[3]《C語(yǔ)言大學(xué)使用》:電子工業(yè)[4]零點(diǎn)《AltiumDesigner6.0原理圖與PCB設(shè)計(jì)》:電子工2007附錄附錄函數(shù)名稱: 能voidmain(void){kb_init();//PS2鍵盤(pán)接lcd_init();//液晶初始化port_init();//音樂(lè)初始化{{}}} 音樂(lè)模塊頭文*控制#ifndef_avr_music_H_#define //定義標(biāo)記防止被重復(fù)用#include#include //自身頭文ucharmusicstop=0,jp=0,getout=1;uchargetend=0;//#pragmadata:data//設(shè)置回到數(shù)據(jù)器*初始化voidport_init(void){DDRD|=BIT(5);//D口配置為輸出,驅(qū)動(dòng)蜂鳴器TCCR1A=0x40;//T/C1配置為比較匹配,OC1A取反TCCR1B=0x09;}voiddelay_jp(unsignedint{unsignedchari; //循環(huán)i{for(i=0;i<250;{}}}長(zhǎng)音樂(lè)函數(shù)功能:兩數(shù)組音樂(lè)范圍:n:音樂(lè)曲目輸入:n:1-voidplay_long(ucharflash*Soundss1,ucharflash*Soundss2,ucharso,uchar{}音調(diào)產(chǎn)生函數(shù)功能:輸出頻率為x的范圍:x:100-20000Hz,0:不輸入:i主音調(diào),j為音調(diào)修改,正常為128,0127為低音調(diào),129255為高調(diào)voidsound(uintx,ucharj){{case // case0x0C: case0x0D: case0x0E: case0x0F: case0x10: case0x11: case0x12: case // case0x16: case0x17: case0x18: case0x19: case0x1A: case0x1B: case0x1C: case // case0x20: case0x21: case0x22: case0x23: case0x24: case0x25: case0x26: }{}{}}
/(x+j*2-256);//8M時(shí)鐘數(shù)據(jù)OCR1A=x;//比較值賦TCCR1A=0x40;//允許比較反轉(zhuǎn)輸TCCR1A=0x00;//頻率為0,休止符LCD12864液晶模塊顯示頭文件(基于*控制#ifndef_12864_mega16_show_H_#define 定義標(biāo)記防止被重/*非標(biāo)準(zhǔn)庫(kù)頭文件*/#include"LCD12864.H"#include/*定義全局變量uchar輸入值域void
開(kāi)機(jī){}液晶屏控制輸入值域voidking_key(uchar{{case{}case{{}{{}else{}else{}else{}}}case{{}{{}else{}else{}else{}}}case{}case{{}}case{{}}}}子菜單顯示輸入:a為顯示的行數(shù)1~4b為第一句語(yǔ)句在數(shù)組的行數(shù)voidsan_show(uchara,uchar{uchar{}}菜單切換函輸出值域void{{}{}{{casecasecasecasecasecase}}{{casecasecasecasecasecase}}}主菜單光標(biāo)移動(dòng)函輸出值域void{uchar{{{}}{
{}}}{{}{}}
{{}{}}
{}{}}系統(tǒng)參數(shù)修改函數(shù)功能范圍輸入voidsystem(){uint{}{}}PS2模塊頭文件(基于*控制//接口命名:類別_動(dòng)作_對(duì)#ifndef#define //定義標(biāo)記防止被復(fù)/*非標(biāo)準(zhǔn)庫(kù)頭文件#include //公共模#pragmainterrupt_handlerInt0:2//外部中斷0中斷函/*變量//#pragma //以下變量存放于flashuchar{0x15,'q',0x16,'1',0x1a,'z',0x1b,'s',0x1c,'a',0x1d,'w',0x21,'c',0x22,'x',0x23,'d',0x24,'e',0x25,'4',0x26,'3',0x29,'',0x2a,'v',0x2b,'f',0x2d,'r',0x31,'n',0x32,'b',0x33,'h',0x34,'g',0x35,'y',0x36,'6',0x39,',',0x3a,'m',0x3b,'j',0x3d,'7',0x41,',',0x42,'k',0x43,'i',0x44,'o',0x45,'0',0x46,'9',0x49,'.',0x4a,'/',0x4b,'l',0x4d,'p',0x4e,'-0x52,'\'',0x54,'[',0x55,'=',0x5b,']',0x61,'<',0x69,'1',0x6b,'4',0x70,'0',0x71,'.',0x72,'2',0x73,'5',0x74,'6',0x75,'8',0x79,'+',0x7a,'3',0x7b,'-', //shift鍵沒(méi)按下譯碼flashuchar{0x15,'Q',0x16,'!',0x1a,'Z',0x1b,'S',0x1c,'A',0x1d,'W',0x21,'C',0x22,'X',0x23,'D',0x24,'E',0x25,'$',0x26,'#',0x29,'',0x2a,'V',0x2b,'F',0x2d,'R',0x31,'N',0x32,'B',0x33,'H',0x34,'G',0x35,'Y',0x36,'^',0x39,'L',0x3a,'M',0x3c,'U',0x3d,'&',0x41,'<',0x42,'K',0x43,'I',0x44,'O',0x45,')',0x46,'(',0x49,'>',0x4a,'?',0x4b,'L',0x4d,'P',0x52,'"',0x54,'{',0x55,'+',0x5b,'}',0x61,'>',0x69,'1',0x6b,'4',0x70,'0',0x71,'.',0x72,'2',0x73,'5',0x74,'6',0x75,'8',0x79,'+',0x7a,'3',0x7b,'-', //shift鍵按下譯碼#pragma //將以后的變量放在unsignedcharedge=0; //中斷觸發(fā)源標(biāo)識(shí)變量edge,初始0(0為下降沿中斷,1為上升沿中斷)unsignedcharbitcount=11; //接收位計(jì)數(shù)變量bitcount,初始化為11externunsignedcharkb_ascii=''; //按鍵ASCII碼變量kb_ascii,初始化為空格externunsignedcharkb_ready=0; //接收完成變量,初始化為0unsignedcharscancode=0; //掃描碼變量scancode,初始化為0unsignedcharletgo=1; 功能:PS2鍵盤(pán)輸入:返回值域:externvoid{
初始化MCUCR| //(xxxxxx1x)設(shè)置INT0為下降沿觸發(fā)中edge //下降沿中斷bitcount=11; //每次11位數(shù)據(jù):起始位(0),8個(gè)數(shù)據(jù)位(低位發(fā)送),DDRD&=~BIT(PD2);//配置中斷管腳為輸入PORTD|=BIT(PD2);//使能中斷管腳的上拉DDRB&=~BIT(PB0);//配置鍵盤(pán)數(shù)據(jù)輸為輸入PORTB|=BIT(PB0);//使能數(shù)據(jù)輸入管腳的上拉SREG| //(1xxxxxxx)打開(kāi)全局中GICR|= //(x1xxxxxx)打開(kāi)外部中斷}翻譯函功能:翻譯掃描碼為ASCII碼返回值域:externvoidkb_decode(uchar{staticunsignedcharup=0,shift=0; //通斷碼標(biāo)識(shí)變量up(0為通碼,1為斷碼),unsignedchar //循環(huán)變量 //數(shù)據(jù)是通{ //翻譯掃{case0xF0:up= //鍵盤(pán)釋放標(biāo)志(隨后的一個(gè)字節(jié)是碼),設(shè)置up為斷碼標(biāo)case0x12:shift=1;break; //左shift鍵按下,設(shè)置shift為按下標(biāo)志case0x59:shift=1;break; //右shift鍵按下,設(shè)置shift為按下標(biāo)志{ //shift鍵沒(méi)有{//查找unshifted
for(i=0;(unshifted[i][0]!=scancode)&&unshifted[i][0];} //shift{//查找shifted
for(i=0;(shifted[i][0]!=scancode)&&shifted[i][0];}kb_ascii=}} //數(shù)據(jù)是斷碼(up{up= //將斷碼標(biāo)志復(fù){//shift鍵釋case0x12:shift=case0x59:shift=//shift//shiftdefault:}}} 中斷中斷源:外部中斷調(diào)用void{ //下降沿觸發(fā){位忽略
if((bitcount11&&bitcount //3到10位是數(shù)據(jù)(起始位,校驗(yàn)位和停{scancode=(scancode>>1); if(PINB&0x01){scancode| //接收1則置}}觸發(fā)中}
MCUCR| //(xxxxxxx1)設(shè)置INT0為上升edge //上升沿中斷標(biāo) //上升沿觸發(fā)中{沿觸發(fā)中
MCUCR&= edge //下降沿中斷標(biāo)if((--bitcount //11位全部接收完{ //翻譯掃kb_ready //接收完bitcount //計(jì)數(shù)復(fù)}}}#include"avr_music.h"一曲音樂(lè)函數(shù)功能:一曲音樂(lè)輸入:音樂(lè)程序數(shù)組音調(diào)修改,正常為128,0127為低音調(diào),129255為高音調(diào)速度,正常為9,2551依次變快voidplay_onemusic(ucharflash*Soundss,ucharsoundture,uchar{uchary,q=0;while(Soundss[jp]!=0&&getout==1)//等待最后一個(gè)音符到{{case case0x01: case0x66: case case0x03: case0x04: case0x14: case0x15: case0x7A: case0x16: case0x17: case0x18: break;}{{}}{ }}TCCR1A=0x00;//奏完一個(gè)音符停止jp++;//準(zhǔn)備一下個(gè)音delay_jp(2*Speed);//節(jié)拍}jp=0;//一遍結(jié)束,停1秒,從頭}音樂(lè)中的鍵盤(pán)控制函數(shù)功能范圍輸入voidkey_playing()//kb_ascii{{case {}{}
kb_ascii='';}case move1--;kb_ascii='';TCCR1A=0x00;//奏完一個(gè)音符停止}case TCCR1A=0x00;//奏完一個(gè)音符停止}case }}}一首歌曲結(jié)束后的操作函數(shù)功能范圍輸入voidmusic_end(){{}}選擇音樂(lè)函數(shù)功能:選擇某一首范圍:n:音樂(lè)曲目輸入:n:1-voidplay_one(ucharn,ucharso,ucharsp) {case case2: case3: play_onemusic(Music_bjhyn,so,sp);break;}//3.歡迎case case5: case6: case7: }//4.仙劍問(wèn)case case9: case10: case11: case12: }//11.}}{}{{case case2: case3: lcd_w_string_flash(show_play[3]);break;}case4: }}全部音樂(lè)函數(shù)功能:設(shè)定音樂(lè)模式范圍:m:模式,n:音樂(lè)曲目輸入:m:1單曲,2單曲循環(huán),3順序,4循環(huán),5隨n:1-音調(diào)修改128正常1-255依次升速度 1-255依次變voidplay_all(ucharm,ucharn,ucharsoundture,uchar ucharif(m==1)//單{}elseif(m==2)//單曲循 { }}}{{ } } }}}{{ } } }}}else//隨 {move1=rand()%13+1; } } }}}}voidmusic_play() uchari,q;uintj;{case lcd_w_string("是 }{{ }} {}{}TCCR1A=0x00;//奏
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 知識(shí)產(chǎn)權(quán)法律風(fēng)險(xiǎn)防范意識(shí)提升
- 科技教育下的班級(jí)管理與德育融合策略
- 科技產(chǎn)品生產(chǎn)線上的崗位責(zé)任與標(biāo)準(zhǔn)化操作
- 煤礦機(jī)電維護(hù)工職業(yè)技能理論考試題庫(kù)150題(含答案)
- 掘進(jìn)工作面膠帶輸送機(jī)司機(jī)技能理論考試題庫(kù)150題(含答案)
- 科技助力下的現(xiàn)代醫(yī)療養(yǎng)老公寓建設(shè)研究
- 二零二五年個(gè)人土地使用權(quán)及土地經(jīng)營(yíng)權(quán)租賃協(xié)議
- 2025年甘肅東方鈦業(yè)有限公司招聘40人筆試參考題庫(kù)附帶答案詳解
- 壓車貨款合同范本
- 現(xiàn)代技術(shù)下的班級(jí)安全監(jiān)控與預(yù)警系統(tǒng)
- 小學(xué)一年級(jí)硬筆書(shū)法入門(mén)班教學(xué)課件
- 出貨單表格模板下載
- PEP六年級(jí)上冊(cè)英語(yǔ)unit1
- 接納與承諾(ACT)療法課件
- 裝配式混凝土建筑技術(shù)標(biāo)準(zhǔn)
- 房地產(chǎn)公司銷售管理部賞罰制度
- 《方位介詞介紹》課件
- 甲狀腺術(shù)后出血搶救流程
- 個(gè)人購(gòu)買家具合同
- 國(guó)際救生設(shè)備規(guī)則
- 第三方檢查應(yīng)對(duì)措施方案
評(píng)論
0/150
提交評(píng)論