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

正文內(nèi)容

基于單片機(jī)的電子琴設(shè)計(jì)_畢業(yè)設(shè)計(jì)-閱讀頁

2024-09-20 17:37本頁面
  

【正文】 10K 1個 7 插座 DIP40 1個 8 輕觸按鍵 17個 9 LM386 1個 10 晶振 12M 1個 11 揚(yáng)聲器 1個 湄洲灣職業(yè)技術(shù)學(xué)院 2020 屆畢業(yè)生設(shè)計(jì)產(chǎn)品說明 2 附錄 include //本程序是電子琴的程序,能夠?qū)崿F(xiàn)單獨(dú)演奏和放一首歌曲的功能。 //共陰極數(shù)碼管段碼表 ,最后一字節(jié) 為黑屏 unsigned char code DSY_CODE[]={0x28,0xee,0x34,0xa4,0xe2,0xa1,0x21,0xec,0x20,0xa0,0x60,0x23,0x39,0x26,0x31,0x71,0xbf}。 //蜂鳴器的位定義 sbit beep=P3^0。 unsigned int code FreTab[12] = { 262,277,294,311,330,349,369,392,415,440,466,494 }。 //1~7 在頻率表中的位置 unsigned char code LengthTab[7]= { 1,2,4,8,16,32,64 }。 //音符定時(shí)器初值暫存 unsigned char Sound_Temp_TH1,Sound_Temp_TL1。 while(ms) for(i=0。i++)。 //新的頻率表 unsigned char i,j。 unsigned char Tone,Length,SL,SH,SM,SLen,XG,FD。i12。 if(j 11) { j = j12。//計(jì)算新的頻率 } else NewFreTab[i] = FreTab[j]。 else if(Octachord == 3) NewFreTab[i]=2。 while(Sound[SoundLength] != 0x00) //計(jì)算歌曲長度 { SoundLength+=2。 Tone = Sound[Point]。 // 讀出第一個音符和它時(shí)時(shí)值 LDiv0 = 12020/Speed。 // 算出 4 分音符的長度 LDiv4 = LDiv4LDiv4*SOUND_SPACE。 TR1 = 1。 //計(jì)算出音符 SM=Tone/10%10。 //計(jì)算出是否升半 湄洲灣職業(yè)技術(shù)學(xué)院 2020 屆畢業(yè)生設(shè)計(jì)產(chǎn)品說明 5 CurrentFre = NewFreTab[SignTab[SL1]+SH]。 //低音 if (SM==3) CurrentFre = 2。//計(jì)算計(jì)數(shù)器初值 Sound_Temp_TH0 = Temp_T/256。 TH0 = Sound_Temp_TH0。 //加 12 是對中斷延時(shí)的補(bǔ)償 } SLen=LengthTab[Length%10]。 //算出音符類型 (0 普通 1 連音 2 頓音 ) FD=Length/100。 //算出連音音符演奏的長 度 (多少個 10ms) if (FD==1) LDiv=LDiv+LDiv/2。 else LDiv1=LDiv*SOUND_SPACE。 //算出頓音的演奏長度 else LDiv1=LDiv。 LDiv2=LDivLDiv1。 for(i=LDiv1。i) //發(fā)規(guī)定長度的音 { while(TF1==0)。 TL1 = Sound_Temp_TL1。 } } 湄洲灣職業(yè)技術(shù)學(xué)院 2020 屆畢業(yè)生設(shè)計(jì)產(chǎn)品說明 6 if(LDiv2!=0) { TR0=0。 for(i=LDiv2。i) //音符間的間隔 { while(TF1==0)。 TL1 = Sound_Temp_TL1。 } } Point+=2。 Length=Sound[Point+1]。 TR0=0。 P2=0x0F。 Tmp=P2 ^ 0x0F。break。break。break。break。 //無鍵按下,返回 } P2=0xF0。 Tmp=(P24)^0x0F。 break。 break。 break。break。 //無鍵按下 , 返回 } return k。 P1=0xFF。 湄洲灣職業(yè)技術(shù)學(xué)院 2020 屆畢業(yè)生設(shè)計(jì)產(chǎn)品說明 7 ET0 = 1。 TR0 = 0。 EA = 1。 TL0=tone_delay_table[key_NO]%256。// 計(jì)算 TL1應(yīng)裝入的初值 (10ms 的初裝值 ) TL1 = (6553550000)%256。 if(P2!=0xF0)//當(dāng)有按鍵按下時(shí) , 需要顯示數(shù)碼管及設(shè)置定時(shí)器的開啟 { key_NO=keys_scan()。//在數(shù)碼管上顯示按下的鍵 if(key_NO15)//按下那個鍵 ,發(fā)出對應(yīng)的音調(diào) { Sound_Temp_TH0=tone_delay_table[key_NO]/256。 } else if(key_NO==15)//按下最后一個鍵時(shí) , 要播放音樂 { Play(Music, 0, 3, 300)。//音長中斷 } TR0=1。//關(guān)閉定時(shí)器 P1=0xFF。//稍做延時(shí),可以避免誤判斷 } } //音符發(fā)生的中斷 void play_tone() interrupt 1 { TH0=Sound_Temp_TH0。 湄洲灣職業(yè)技術(shù)學(xué)院 2020 屆畢業(yè)生設(shè)計(jì)產(chǎn)品說明 8 beep=~be
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1