九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

單片機課程設計報告電子琴

  • 資源ID:59647173       資源大?。?span id="24d9guoke414" class="font-tahoma">88KB        全文頁數(shù):22頁
  • 資源格式: DOC        下載積分:20積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要20積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

單片機課程設計報告電子琴

電子音調(diào)發(fā)生器一、實驗目的1. 了解計算機發(fā)聲原理. 2。 熟悉定時器和鍵盤掃描電路的工作原理及編程方法。二、實驗完成的功能1。 利用鍵盤17進行音調(diào)選擇,即按下音符產(chǎn)生對應音調(diào)。2。 事先存儲三首歌曲,并可進行選擇播放。3。 譜曲功能:通過按鍵對LCD菜單選項進行選擇,進入譜曲界面,通過按鍵17分別輸入音高與幾分音符類型,由按鍵輸入若干數(shù)據(jù)完成譜曲。4. 在播放存儲歌曲與譜曲播放時,對應音符及其節(jié)奏LCD顯示對應頻譜。5。 在播放音樂時按“返回”鍵出現(xiàn)返回界面,由鍵盤按“確認”鍵選擇返回主菜單或循環(huán)播放。三、實驗原理1。 音節(jié)由不同頻率的方波產(chǎn)生,音節(jié)與頻率的關系如表(1)所示。要產(chǎn)生音頻方波,只要計算出某一音頻的周期(1 / 頻率),然后將此周期除以2,即為半周期的時間.利用計時器計時此半周期時間,每當計時到后就將輸出方波的I/O(P1。7)反相,然后重復計時此半周期時間再對I/O反相,就可在P1。7腳得到此頻率的方波。將P1.7經(jīng)過驅動電路與蜂鳴器相連,隨著P1。7口輸出不同頻率的方波,蜂鳴器便會發(fā)出不同的聲音。音樂的節(jié)拍是由延時實現(xiàn)的,如果1拍的時間為0.4秒,1/4拍是0.1秒。只要設定延時時間,就可得到節(jié)拍的時間。延時實現(xiàn)基本延時時間,節(jié)拍值只能是它的整數(shù)倍。每個音節(jié)相應的定時器初值計算公式如下:(1/2)(1/f)=(12/fose)*(216x)即 x=216-(fose/24f)其中,f是音調(diào)頻率,當晶振fosc=11。0592MHz時,音節(jié)“1”相應的定時器初值為x,則可得到x=63777D=F921H,其它的可同樣得到。表(1) 音節(jié)與頻率的關系 音調(diào)頻率(Hz)X(HEX)1262F9212294F9E13330FA8C4349FAD85392FB686440FBE97494FC5Bi523FC8F在編寫歌曲代碼過程中,音高由三位數(shù)字組成:個位是表示17 這七個音符;十位是表示音符所在的音區(qū):1低音,-中音,-高音;百位表示這個音符是否要升半音: 0不升,升半音。音長最多由三位數(shù)字組成:個位表示音符的時值,其對應關系是: |數(shù)值(n): |0 1 2 |3 4 | 5 | 6 幾分音符: 1 |2 |4 |8 |16 32 |64 音符=2n十位表示音符的演奏效果(02): 0-普通,連音,頓音,百位是符點位: 0-無符點,1有符點。2鍵盤掃描將單片機P1.0P1。7(引腳18)與鍵盤上對應引腳相連,其中P1.0P1。3控制鍵盤的行,P1。4P1。7控制鍵盤的列,這次使用的鍵盤是4行4列,鍵盤上的第一行到第四行由8位十六進制代碼的低四位控制,即第一行若有鍵按下,則8位十六進制代碼的后四位為0x8,第二行有按鍵按下,則后四位代碼為0x4,依此規(guī)律類推;鍵盤上的第一列到第四列由8位十六進制代碼的高四位控制,即第一列若有鍵按下,則8位十六進制代碼的前四位為0x8,第二列有按鍵按下,則前四位代碼為0x4,依此規(guī)律類推.綜上所述,可以根據(jù)8位十六進制的高四位和低四位數(shù)據(jù),分別確定按下的鍵處于第幾行第幾列,從而確定按鍵的位置,實現(xiàn)鍵盤掃描的功能。 3LCD顯示根據(jù)寫命令函數(shù)wrcomd和寫數(shù)據(jù)函數(shù)wrdata分別控制LCD的命令寫入和數(shù)據(jù)寫入。具體操作方法是由寫命令函數(shù)wrcomd編程控制數(shù)據(jù)輸入的行列,再由寫數(shù)據(jù)函數(shù)wrdata編程寫入需要在LCD上顯示的數(shù)據(jù)或應執(zhí)行的操作,結合兩個命令一起控制LCD顯示.四產(chǎn)品展示五。實驗程序ifndef _DRIVEFUTION_H_#define _DRIVEFUTION_H_/*EEPROM函數(shù)*/*/* 關閉 ISP,IAP 功能 */ void ISP_IAP_disable(void) ISP_CONTR = 0X00; ISP_CMD = 0X00; ISP_TRIG = 0x00; /*字節(jié)讀*/ uchar Byte_read(uint byte_addr) EA = 0; /關中斷 ISP_CONTR = En_Wait_TIME; /開啟ISP/IAP;并送等待時間 ISP_CMD = Read_COM; /送字節(jié)讀命令字 ISP_ADDRH = (uchar)(byte_addr > 8); /送地址高字節(jié) ISP_ADDRL = (uchar)(byte_addr & 0X00FF); /送地址低字節(jié) ISP_TRIG = 0X46; /送觸發(fā)命令字 0X46、0XB9 ISP_TRIG = 0XB9; _nop_(); ISP_IAP_disable(); /關閉ISP/IAP功能 EA = 1; /開中斷 return (ISP_DATA); /*字節(jié)編程*/ void Byte_program(uint byte_addr, uchar isp_iap_data) EA = 0; /關中斷 ISP_CONTR = En_Wait_TIME; /開啟ISP/IAP;并送等待時間 ISP_CMD = Prog_COM; /送字節(jié)編程命令字 ISP_ADDRH = (uchar)(byte_addr > 8); /送地址高字節(jié) ISP_ADDRL = (uchar)(byte_addr 0X00FF); /送地址低字節(jié) ISP_DATA = isp_iap_data; /送數(shù)據(jù)進ISP_DATA ISP_TRIG = 0X46; /送觸發(fā)命令字 0X46、0XB9 ISP_TRIG = 0XB9; _nop_(); ISP_IAP_disable(); /關閉ISP/IAP功能 EA = 1; /開中斷 /* 扇區(qū)擦除*/ void Sector_erase(uint sector_addr) EA = 0; /關中斷 ISP_CONTR = En_Wait_TIME; /開啟ISP/IAP;并送等待時間 ISP_CMD = Dele_COM; /送扇區(qū)擦除命令字 ISP_ADDRH = (uchar)(sector_addr > 8); /送地址高字節(jié) ISP_ADDRL = (uchar)(sector_addr 0X00FF); /送地址低字節(jié) ISP_TRIG = 0X46; /送觸發(fā)命令字 0X46、0XB9 ISP_TRIG = 0XB9; _nop_(); ISP_IAP_disable(); /關閉ISP/IAP功能 EA = 1; /*寫入函數(shù)*/void EEPROM_write(uint addr, uchar in_data) Sector_erase(addr); Byte_program(addr,in_data); /*EEPROM函數(shù)*/*/*音樂播放相關子函數(shù)*/*/void InitialSound(void) /初始化定時器BeepIO = 0;Sound_Temp_TH1 = (65535-(1/1200)*SYSTEM_OSC)/256;/ 計算TL1應裝入的初值 (10ms的初裝值)Sound_Temp_TL1 = (65535(1/1200)SYSTEM_OSC)256;/ 計算TH1應裝入的初值 TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TMOD |= 0x11;ET0 = 1;ET1 = 0;TR0 = 0;TR1 = 0;EA = 1;void BeepTimer0(void) interrupt 1 /音符發(fā)生中斷函數(shù)BeepIO = !BeepIO;TH0 = Sound_Temp_TH0; TL0 = Sound_Temp_TL0;/*END*/*/*LCD操作子函數(shù)*/*/void wrcomd(char comd) /寫入命令 cs = 0; _nop_(); rs = 0; _nop_(); e = 1; _nop_(); rw = 0; _nop_(); P0 = comd; _nop_(); rw = 0; _nop_(); _nop_(); rw = 1; _nop_(); _nop_(); _nop_(); _nop_();void wrdata(char data_wri) /往液晶中寫入數(shù)據(jù) cs = 0; _nop_(); rs = 1; _nop_(); e = 1; _nop_(); rw = 0; _nop_(); P0 = data_wri; _nop_(); rw = 0; _nop_(); _nop_(); rw = 1; _nop_(); _nop_(); _nop_(); _nop_(); void bmp(char data_write,int row_start,int row_end,uchar column_start,uchar column_end) /刷屏子函數(shù) /初始化設置,對屏幕清零,默認值,為0,0,8,2,132 unsigned char i,j; int num_3; char num_0=0xb0; /uchar column_h,column_l; num_0+=row_start; for(i=row_start;i<row_end;i+) num_3 = column_end; wrcomd(num_0); / 寫入命令設置頁,從0頁開始,0xb0=10110000 ;delay(time_def);/設置頁 wrcomd(0x10|(0xf0&column_start)>4); /設置列,先寫入高4位再寫入低四位 wrcomd(0x00|(0x0fcolumn_start)); for(j=column_start;j<num_3;j+) wrdata(data_write); num_0+; void delay(long int time_delay) /延時子程序,執(zhí)行time_delay個_nop_()延時 long int i;for(i=0;i<time_delay;i+) _nop_();void write_word(char p_word,int num,int pos_x,int pos_y,int width,int height) /寫漢字/字符子函數(shù) /對應參數(shù) 數(shù)據(jù)數(shù)組名,數(shù)組中位置,行位置,列位置,寬,高 char page; / 頁號 unsigned int i,j,k,p; p = (unsigned int)num*2*width; /p確定漢字字模數(shù)據(jù)初始位置 i = height%8; k = (i)?(height/8+1):(height/8); page = 0xb0 + pos_y; for(i=0;i<2;i+) wrcomd(page); wrcomd(0x10(0xf0&pos_x)>4); wrcomd(0x00(0x0f&pos_x); for(j=0;jwidth;j+) wrdata(p_wordj+p); p=p+width; page+; if(page-(unsigned char)0xb0>7|page-(unsigned char)0xb00) return; /*END*/*/* 鍵盤掃描函數(shù)*/*/*判斷是否有鍵盤輸入*/bit CheckState(void)/鍵盤狀態(tài)判斷子函數(shù)bit state=0;P1=0x0F; /鍵盤掃描if(P1!=0x0F)state=1; /檢測是否有按鍵輸入else state=0;return(state);/*獲取鍵盤輸入值*/uchar GetKeys(void)/鍵盤值獲取子函數(shù)uchar column,line;scan=0xFE;while(scan0x10)!=0) P1=scan;if(P1&0xF0)!=0xF0) /line 1 have key pressed column=(P10x0F); line=(scan0xF0); key=column+line; return(key); else scan=(scan<<1)0x01; return(0);/*應用子函數(shù)*/*/void csh(void) /初始化,清屏 int i; res = 0; delay(time_def); delay(time_def); res = 1; delay(time_def); cs = 0; /片選一直有效 delay(time_def); delay(time_def); for(i=0;i12;i+) /初始命令寫入 wrcomd(tab1i); delay(time_def); bmp(0,0,8,0,132);void start_print(void) /開機顯示畫面子函數(shù) int i,j; for(i=0;i<4;i+) write_word(star_welcome,i,36+i*16,2,16,16); if(i+4)7) write_word(star_welcome,i+4,44+i*16,4,16,16); if(i+7)10) write_word(star_welcome,i+7,36+i*16,6,16,16); write_word(number,10,4+5*16,6,8,16); for(j=5;j>=0;j-) write_word(number,j,12+516,6,8,16); delay(5000); void menu_first_symbol(int choose) /菜單選擇符刷新子函數(shù),即“打鉤項” bmp(0,0,8,4,18); write_word(menu_one,20,4,choose*2,16,16); /*音樂播放顯示函數(shù)*/*/void music_display_one(unsigned char s,unsigned int x) /顯示最底層子函數(shù)int i;bmp(0,2,8,18+x*16,34+x16); for(i=3;i>0;i-) if(s!=0) write_word(display,1,20+16x,2*i,16,16); s=s1; else write_word(display,0,20+16*x,2*i,16,16); /delay(200); void music_display_two(unsigned int p_x) /顯示次底層子函數(shù) int sign; sign=mc_sizep_x0; if(sign) if(!sizep_x) sign=0; mc_sizep_x0=sign;mc_sizep_x1=0; else music_display_one(sizep_x,p_x); mc_sizep_x1+=1; if(mc_sizep_x1>3) sizep_x-=1; else sizep_x+=1; /*/ else bmp(0,2,8,18+p_x*16,34+p_x16); write_word(display,2,20+16p_x,6,16,16); /delay(500); /*/void music_display_three(unsigned int mc) /音符狀態(tài)置位函數(shù) mc_sizemc10=1; mc_sizemc11=1; sizemc1=1;void music_display_four(void) /顯示次頂層子函數(shù) int i; for(i=0;i<7;i+) music_display_two(i); void music_display_five() /顯示頂層子函數(shù) int i; allsize=0; for(i=0;i<7;i+) allsize+=mc_sizei0;music_display_four();/*void music_display(void) /顯示主函數(shù) int i; for(i=0;i<10;i+) music_display_three(music_codei); music_display_five(); while(allsize) music_display_five();/void display_between_musicplay(unsigned int tone) /播放音樂同時顯示音符顯示界面 music_display_three(tone); music_display_five();/*/*播放子程序*/void music_play_one(uint *NewFreTab,uchar Tone,uchar Length,uint LDiv0,uint LDiv1) /頻率表,音符,音長,12000/Speed,((12000/Speed)/4)-(12000/Speed)/4)*SOUND_SPACE unsigned char SL,SH,SM,SLen,XG,F(xiàn)D; uint i,Temp_T,CurrentFre,LDiv,LDiv2,LDiv3; SL=Tone10; /計算出音符 SM=Tone/10%10; /計算出高低音 SH=Tone/100; /計算出是否升半 CurrentFre = NewFreTabSignTabSL1+SH; /查出對應音符的頻率 if(SL!=0)if (SM=1) CurrentFre >= 2; /低音 if (SM=3) CurrentFre <= 2; /高音Temp_T = 65536-(50000/CurrentFre)*10/(12000000/SYSTEM_OSC);/計算計數(shù)器初值Sound_Temp_TH0 = Temp_T/256; Sound_Temp_TL0 = Temp_T256; TH0 = Sound_Temp_TH0; TL0 = Sound_Temp_TL0 + 12; /加12是對中斷延時的補償 SLen=LengthTabLength%10; /算出是幾分音符XG=Length/1010; /算出音符類型(0普通1連音2頓音) FD=Length/100;LDiv=LDiv0/SLen; /算出連音音符演奏的長度(多少個10ms)if (FD=1) LDiv=LDiv+LDiv/2;if(XG!=1)if(XG=0) /算出普通音符的演奏長度 if (SLen=4)LDiv2=LDivLDiv1;elseLDiv2=LDiv*SOUND_SPACE;elseLDiv2=LDiv/2; /算出頓音的演奏長度 elseLDiv2=LDiv;if(SL=0) LDiv2=0;LDiv3=LDiv-LDiv2; /算出不發(fā)音的長度 if (SL!=0)TR0=1;for(i=LDiv2;i0;i-) /發(fā)規(guī)定長度的音 while(TF1=0);TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TF1=0;display_between_musicplay(SL); /???要結合音長來控制其顯示時間,弄清音長問題??if(LDiv3!=0)TR0=0; BeepIO=0;for(i=LDiv3;i>0;i-) /音符間的間隔while(TF1=0);TH1 = Sound_Temp_TH1;TL1 = Sound_Temp_TL1;TF1=0;/*/*/void music_play_two_1(uchar *Sound,uint NewFreTab,uint SoundLength,uint LDiv0,uint LDiv1) /播放原存儲的音樂 uint xdata Point;uchar xdata Tone,Length,i; Point = 0;TR0 = 0; TR1 = 1;for(i=0;i4;i+) write_word(menu_one,i+1,4+(i+2)*16,0,16,16); while(Point SoundLength) Tone = SoundPoint; Length = SoundPoint+1; / 讀出第一個音符和它時時值music_play_one(NewFreTab,Tone,Length,LDiv0,LDiv1);Point+=2; BeepIO = 0;while(allsize) music_display_five();void music_play_two_2(uint *NewFreTab,uint SoundLength,uint LDiv0,uint LDiv1) /播放譜曲存儲的音樂 uint xdata Point;uchar xdata Tone,Length,i; Point = 0;TR0 = 0; TR1 = 1;for(i=0;i4;i+) write_word(menu_one,i+1,4+(i+2)*16,0,16,16);while(Point SoundLength) Tone = Byte_read(start_add+Point); Length = Byte_read(start_add+Point+1); / 讀出第一個音符和它時時值music_play_one(NewFreTab,Tone,Length,LDiv0,LDiv1);Point+=2; BeepIO = 0;while(allsize) /顯示末尾結束的狀態(tài) music_display_five(); /*void Play_Two(unsigned char *Sound,unsigned char Signature,unsigned char Octachord) unsigned int xdata NewFreTab12;/新的頻率表unsigned char xdata i,j;unsigned int xdata LDiv0,LDiv1,SoundLength;menu_state=1;for(i=0;i<12;i+) / 根據(jù)調(diào)號及升降八度來生成新的頻率表 j = i + Signature;if(j > 11)j = j-12;NewFreTabi = FreTabj2;elseNewFreTabi = FreTabj;if(Octachord = 1)NewFreTabi>=2;else if(Octachord = 3)NewFreTabi<<=2;LDiv0=12000/Speed; / 算出1分音符的長度(幾個10ms)LDiv1= LDiv0/4; / LDiv為算出4分音符的長度 LDiv1= LDiv1LDiv1*SOUND_SPACE; / LDiv最后為普通音最長間隔標準 SoundLength = 0;if(Sound!=Music_Memory) / while(SoundSoundLength != 0x00)/計算歌曲長度SoundLength+=2;for(i=0;i4;i+)write_word(menu_one,i+1,4+(i+2)*16,0,16,16); while(menu_state) / music_play_two_1(Sound,NewFreTab,SoundLength,LDiv0,LDiv1);bmp(0,0,8,2,132); for(i=0;i<5;i+) write_word(restar,i,4+(i+2)16,2,16,16); while(!CheckState());if(GetKeys()=0x11) /確認鍵返回,F鍵 menu_state=0;delay(1000);bmp(0,0,8,2,132); else while(Byte_read(start_add+SoundLength)!=0x00)/計算歌曲長度 SoundLength+=2; for(i=0;i<4;i+) write_word(menu_one,i+1,4+(i+2)16,0,16,16); while(menu_state) music_play_two_2(NewFreTab,SoundLength,LDiv0,LDiv1);bmp(0,0,8,2,132); for(i=0;i5;i+) write_word(restar,i,4+(i+2)16,2,16,16); while(!CheckState();if(GetKeys()=0x11) /確認鍵返回,F(xiàn)鍵 menu_state=0;delay(1000);bmp(0,0,8,2,132); /*音符轉換函數(shù)*/void ChangeKey(uchar Gkey) /把輸入的音符轉換成相應的數(shù)據(jù)形式,存儲到EEPROM中 / int i; if(Gkey!=0) delay(5000); if((music_counter%48)=0) bmp(0,2,8,0,132); switch(Gkey) case 0x11: if(music_counter2) bmp(0,0,8,0,132);music_state=1;break;case 0x42: Byte_program((start_add+music_counter),0); write_word(number,0,4+((music_counter%48)16)*8,2+((music_counter48)/16)2,8,16); +music_counter;break; case 0x88: Byte_program(start_add+music_counter),1); write_word(number,1,4+(music_counter48)16)8,2+(music_counter48)/16)*2,8,16); +music_counter;break; case 0x48: Byte_program(start_add+music_counter),2); write_word(number,2,4+(music_counter48)%16)*8,2+((music_counter%48)/16)2,8,16); +music_counter;break; case 0x28: Byte_program(start_add+music_counter),3); write_word(number,3,4+((music_counter48)%16)8,2+((music_counter%48)/16)*2,8,16); +music_counter;break; case 0x18: Byte_program(start_add+music_counter),4); write_word(number,4,4+(music_counter48)%16)8,2+(music_counter64)/16)*2,8,16); +music_counter;break; case 0x84: Byte_program((start_add+music_counter),5); write_word(number,5,4+(music_counter%48)%16)8,2+(music_counter%48)/16)*2,8,16); +music_counter;break; case 0x44: Byte_program(start_add+music_counter),6); write_word(number,6,4+((music_counter%48)%16)*8,2+((music_counter%48)/16)*2,8,16); +music_counter;break; case 0x24: Byte_program(start_add+music_counter),7); write_word(number,7,4+(music_counter%48)%16)*8,2+((music_counter%48)/16)*2,8,16); +music_counter;break; default:break; void Entry_Music(void) /輸入樂譜播放函數(shù) uchar gkey,i;bmp(0,0,8,2,132); while(menu_state)for(i=0;i4;i+) write_word(Music_Mry,i,4+(i+2)16,0,16,16); while(!music_state) if(CheckState() if(music_state=0) ChangeKey(GetKeys()); bmp(0,2,8,2,132); InitialSound();Play_Two(Music_Memory,Signature,Octa);bmp(0,2,8,2,132); for(i=0;i4;i+) write_word(restar,i+5,4+(i+2)*16,2,16,16); for(i=0;i5;i+) write_word(restar,i,4+(i+2)*16,4,16,16); while(!CheckState()); gkey=GetKeys();delay(500);if(gkey=0x11) /確認鍵返回,F(xiàn)鍵 menu_state=0; delay(1000); bmp(0,0,8,2,132); /*/*菜單函數(shù)*/void menu_first(int choose) /主菜單int i,j;bmp(0,0,8,2,132); for(i=0;i<4;i+) write_word(menu_one,i10,20,i2,8,16); write_word(menu_one,1+i10,28,i2,8,16); for(j=1;j<5;j+) write_word(menu_one,i5+j,20+j*16,i*2,16,16); menu_first_symbol(choose); void menu_three1(void) int i,gkey;while(!menu_state)bmp(0,0,8,2,132);for(i=0;i<7;i+) write_word(menu_thr,i,4+16i,0,16,16); write_word(menu_thr,i+7,4+16*i,2,16,16); write_word(menu_thr,i+14,4+16*i,4,16,16); delay(10000); while(!CheckState()); gkey=GetKeys(); bmp(0,0,8,2,132); InitialSound(); switch(gkey) case 0x88:Play_Two(Music_1,Signature,Octa);break; case 0x48:Play_Two(Music_2,Signature,Octa);break; case 0x28:Play_Two(Music_3,Signature,Octa);break; case 0x81:menu_state=1;break; /C鍵返回 default:break; void menu_three2(void) int i,gkey; bmp(0,0,8,2,132); for(i=0;i<4;i+)write_word(menu_one,i+11,4+(i+2)16,0,16,16); while(!menu_state) while(!CheckState() ;gkey=GetKeys();InitialSound(); /定時器初始化switch(gkey) case 0x88:Music_take0=1; music_play_two_1(Music_take,FreTab1,2,(12000/Speed),(12000/Speed)/4)*(1-SOUND_SPACE)); delay(10);break; case 0x48:Music_take0=2; music_play_two_1(Music_take,FreTab1,2,(12000/Speed),((12000/Speed)/4)(1SOUND_SPACE); delay(10);break; case 0x28:Music_take0=3; music_play_

注意事項

本文(單片機課程設計報告電子琴)為本站會員(j**)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復下載不扣分。




關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!