freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的電子琴設(shè)計(jì)與仿真畢業(yè)論文-資料下載頁

2025-06-30 17:18本頁面

【導(dǎo)讀】作及取得的研究成果。據(jù)我所知,除文中已經(jīng)注明引用的內(nèi)容外,本論文。(設(shè)計(jì))不包含其他個(gè)人已經(jīng)發(fā)表或撰寫過的研究成果。關(guān)部門送交論文(設(shè)計(jì))的電子版和紙質(zhì)版。入學(xué)校圖書館被查閱。保密的論文(設(shè)計(jì))在解密后適用本規(guī)定。序清單等),文科類論文正文字?jǐn)?shù)不少于萬字。有圖紙應(yīng)符合國家技術(shù)標(biāo)準(zhǔn)規(guī)范。圖表整潔,布局合理,文字注釋必須使用。社會信息化程度的提高。電子琴是我們常見的電子產(chǎn)品,它是一種鍵。盤樂器,是現(xiàn)代電子科技與音樂的結(jié)合。內(nèi)裝化等幾個(gè)方面發(fā)展。單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很。難找到哪個(gè)領(lǐng)域沒有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀。寵物等等,這些都離不開單片機(jī)。碼管、揚(yáng)聲器等。系統(tǒng)完成顯示輸入信息、播放相應(yīng)音符等基本功。本文設(shè)計(jì)的電子琴,體積小,重量輕,使用方便,并有一定的商

  

【正文】 unsigned char code DSY_CODE[]={0x28,0xee,0x34,0xa4,0xe2,0xa1,0x21,0xec,0x20,0xa0,0x60,0x23,0x39,0x26,0x31,0x71,0xbf}。 //各音符對應(yīng)的延時(shí)表 unsigned int code tone_delay_table[]={64021,64103,64260,64400,64524,64580,64684,64777,64820,64898,64968,65030,65058,65110,65157,65178}。 //蜂鳴器的位定義 sbit beep=P3^0。 define SOUND_SPACE 4/5 //定義普通音符演奏的長度分率 ,//每 4 分音符間隔 //同一首歌 的譜子 unsigned char code Music[]={ 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x66, 0x18,0x03,0x17,0x02, 0x15,0x02, 0x16,0x01, 0x15,0x02, 0x10,0x02, 0x15,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x02, 0x18,0x66,0x17,0x03, 0x19,0x02, 0x16,0x03, 0x17,0x03, 0x16,0x00,0x17,0x01, 0x19,0x02, 0x1B,0x02, 0x1B,0x70, 0x1A,0x03,0x1A,0x01, 0x19,0x02, 基于單片機(jī)的電子琴設(shè)計(jì)與仿真 28 0x19,0x03, 0x1A,0x03, 0x1B,0x02,0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x18,0x66, 0x18,0x03,0x19,0x02, 0x1A,0x02, 0x19,0x0C, 0x18,0x0D, 0x17,0x03,0x16,0x01, 0x11,0x02, 0x11,0x03, 0x10,0x03, 0x0F,0x0C,0x10,0x02, 0x15,0x00, 0x1F,0x01, 0x1A,0x01, 0x18,0x66,0x19,0x03, 0x1A,0x01, 0x1B,0x02, 0x1B,0x03, 0x1B,0x03,0x1B,0x0C, 0x1A,0x0D, 0x19,0x03, 0x17,0x00, 0x1F,0x01,0x1A,0x01, 0x18,0x66, 0x19,0x03, 0x1A,0x01, 0x10,0x02,0x10,0x03, 0x10,0x03, 0x1A,0x0C, 0x18,0x0D, 0x17,0x03,0x16,0x00, 0x0F,0x01, 0x15,0x02, 0x16,0x02, 0x17,0x70,0x18,0x03, 0x17,0x02, 0x15,0x03, 0x15,0x03, 0x16,0x66,0x16,0x03, 0x16,0x02, 0x16,0x03, 0x15,0x03, 0x10,0x02,0x10,0x01, 0x11,0x01, 0x11,0x66, 0x10,0x03, 0x0F,0x0C,0x1A,0x02, 0x19,0x02, 0x16,0x03, 0x16,0x03, 0x18,0x66,0x18,0x03, 0x18,0x02, 0x17,0x03, 0x16,0x03, 0x19,0x00,0x00,0x00 }。 unsigned int code FreTab[12] = { 262,277,294,311,330,349,369,392,415,440,466,494 }。 //原始頻率表 unsigned char code SignTab[7] ={ 0,2,4,5,7,9,11 }。 //1~7 在頻率表中的位置 unsigned char code LengthTab[7]={ 1,2,4,8,16,32,64 }。 unsigned char Sound_Temp_TH0,Sound_Temp_TL0。 //音符定時(shí)器初值暫存 unsigned char Sound_Temp_TH1,Sound_Temp_TL1。 //音長定時(shí)器初值暫存 void delay_1ms(unsigned int ms) { unsigned char i。 while(ms) for(i=0。i120。i++)。} //延時(shí) 1ms //播放音樂的子函數(shù) void Play(unsigned char *Sound,unsigned char Signature,unsigned Octachord,unsigned int Speed) 基于單片機(jī)的電子琴設(shè)計(jì)與仿真 29 { unsigned int NewFreTab[12]。 //新的頻率表 unsigned char i,j。 //定義一些中間變量 unsigned int Point,LDiv,LDiv0,LDiv1,LDiv2,LDiv4,CurrentFre,Temp_T,SoundLength。 unsigned char Tone,Length,SL,SH,SM,SLen,XG,FD。 for(i=0。i12。i++) // 根據(jù)調(diào)號及升降八度來生成新的頻率表 { j = i + Signature。 if(j 11) { j = j12。 NewFreTab[i] = FreTab[j]*2。 //計(jì)算新的頻率 } else NewFreTab[i] = FreTab[j]。 if(Octachord == 1) NewFreTab[i]=2。 else if(Octachord == 3) NewFreTab[i]=2。 } SoundLength = 0。 while(Sound[SoundLength] != 0x00) //計(jì)算歌曲長度 { SoundLength+=2。 } Point = 0。 Tone = Sound[Point]。 基于單片機(jī)的電子琴設(shè)計(jì)與仿真 30 Length = Sound[Point+1]。 // 讀出第一個(gè)音符和它時(shí)時(shí)值 LDiv0 = 120xx/Speed。 // 算出 1 分音符的長度 (幾個(gè) 10ms) LDiv4 = LDiv0/4。 // 算出 4 分音符的長度 LDiv4 = LDiv4LDiv4*SOUND_SPACE。 // 普通音最長間隔標(biāo)準(zhǔn) TR0 = 0。 TR1 = 1。 while(Point SoundLength) { SL=Tone%10。 //計(jì)算出音符 SM=Tone/10%10。 //計(jì)算出高低音 SH=Tone/100。 //計(jì)算出是否升半 CurrentFre = NewFreTab[SignTab[SL1]+SH]。 //查出對應(yīng)音符的頻率 if(SL!=0) { if (SM==1) CurrentFre = 2。 //低音 if (SM==3) CurrentFre = 2。 //高音 Temp_T = 65536(50000/CurrentFre)*10。 //計(jì)算計(jì)數(shù)器初值 Sound_Temp_TH0 = Temp_T/256。 Sound_Temp_TL0 = Temp_T%256。 TH0 = Sound_Temp_TH0。 TL0 = Sound_Temp_TL0 + 12。 //加 12 是對中斷延時(shí)的補(bǔ)償 } SLen=LengthTab[Length%10]。 //算出是幾分音符 XG=Length/10%10。 基于單片機(jī)的電子琴設(shè)計(jì)與仿真 31 //算出音符類型 (0 普通 1 連音 2 頓音 ) FD=Length/100。 LDiv=LDiv0/SLen。 //算出連音音符演奏的長度 (多少個(gè) 10ms) if (FD==1) LDiv=LDiv+LDiv/2。 if(XG!=1) if(XG==0) //算出普通音符的演奏長度 if (SLen=4) LDiv1=LDivLDiv4。 else LDiv1=LDiv*SOUND_SPACE。 else LDiv1=LDiv/2。 //算出頓音的演奏長度 else LDiv1=LDiv。 if(SL==0) LDiv1=0。 LDiv2=LDivLDiv1。 //算出不發(fā)音的長度 if (SL!=0) { TR0=1。 for(i=LDiv1。i0。i) //發(fā)規(guī)定長度的音 { while(TF1==0)。 TH1 = Sound_Temp_TH1。 TL1 = Sound_Temp_TL1。 TF1=0。 } } if(LDiv2!=0) { TR0=0。 beep=1。 基于單片機(jī)的電子琴設(shè)計(jì)與仿真 32 for(i=LDiv2。i0。i) //音符間的間隔 { while(TF1==0)。 TH1 = Sound_Temp_TH1。 TL1 = Sound_Temp_TL1。 TF1=0。 } } Point+=2。 Tone=Sound[Point]。 Length=Sound[Point+1]。 } beep = 0。 TR0=0。//關(guān)閉定時(shí)器 } //鍵盤矩陣掃描 //返回按下的鍵的值 unsigned char keys_scan(void) { unsigned char Tmp,k=16。 P2=0x0F。 delay_1ms(2)。 Tmp=P2 ^ 0x0F。 switch(Tmp) //確定掃描的是哪一行 { case 1: k=0。break。 case 2: k=1。break。 case 4: k=2。break。 case 8: k=3。break。 default: return 16。 //無鍵按下,返回 } P2=0xF0。 delay_1ms(2)。 Tmp=(P24)^0x0F。 基于單片機(jī)的電子琴設(shè)計(jì)與仿真 33 switch(Tmp) //確定掃描的是那一列 { case 1: k+=0。 break。 case 2: k+=4。 break。 case 4: k+=8。 break。 case 8: k+=12。break。 default: return 16。 //無鍵按下,返回 } return k。 } void main() //主程序 { unsigned char key_NO=0。 P1=0xFF。 //數(shù)碼管顯示關(guān)閉 //設(shè)置定時(shí)器工作方式 1,以及相關(guān)開啟寄存器 TMOD |= 0x11。 ET0 = 1。 ET1 = 0。 TR0 = 0。 TR1 = 0。 EA = 1。 //設(shè)置定時(shí)器初值 TH0=tone_delay_table[key_NO]/256。 TL0=tone_delay_table[key_NO]%256。 TH1 = (6553550000)/256。 // 計(jì)算 TL1 應(yīng)裝入的初值 (10ms 的初裝值 ) TL1 = (6553550000)%256。 while(1) { P2=0xF0。 if(P2!=0xF0) //當(dāng)有按鍵按下時(shí),需要顯示數(shù)碼管及設(shè)置定時(shí)器的開啟 基于單片機(jī)的電子琴設(shè)計(jì)與仿真 34 { key_NO=keys_scan()。 //調(diào)用鍵盤掃描 P1=DSY_CODE[key_NO]。 //在數(shù)碼管上顯示按下的鍵 if(key_NO15) //按下那個(gè)鍵,發(fā)出對應(yīng)的音調(diào) { Sound_Temp_TH0=tone_delay_table[key_NO]/256。 Sound_Temp_TL0=tone_delay_table[key_NO]%256。 } else
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1