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

正文內(nèi)容

基于51單片機(jī)的電子琴設(shè)計(jì)附原理圖、pcb和程序_課程設(shè)計(jì)說明書(參考版)

2024-08-31 15:43本頁面
  

【正文】 /*定時(shí)器 0 定時(shí)器 1 都采用方式 1( 。 P2 = 0xff。 goto nochoose。 /*歌曲序號自動(dòng) +1 自動(dòng)播放下一首歌 */ which = 2。 //一秒后從第一首開始播放 goto nochoose。 which = 2。 // 每首歌的最開始的一個(gè)音 break。 /*播放鍵引腳置高電平,播放結(jié)束的標(biāo)志 */ song_id = 1。 if(x == 0) break。 P2 = led_table[0]。 out = 0。 //下一個(gè)音 } /*已經(jīng)放完一首歌,或者停止播放 ,接下來判斷是停止播放還是播放下一首 */ TR0 = 0。 P2 = led_table[0]。 /*唱完一個(gè)音停 xx ms(決定每個(gè)音調(diào)之間的時(shí)間間隔 根據(jù) 個(gè)人喜好節(jié)奏來定 */ 29 TR1 = 0。 out = 0。 /*延時(shí) = 節(jié)拍數(shù) x 125ms (決定著 1個(gè)音的發(fā)聲時(shí)間 ) */ TR0 = 0。 } pai2 = (2400/qusu)*jiepai。 flash = 0。 TR1 = 0。 /*正在發(fā)聲的標(biāo)志,定時(shí)器 1得以控制 led燈按一定的時(shí)間間隔 逐個(gè)點(diǎn)亮 */ } else { TR0 = 0。 /*開啟定時(shí)器 1 ,led開始閃動(dòng) */ display()。 TR0 = 1。(當(dāng)音調(diào)為 0時(shí)表示這個(gè)音不響 但依舊要占這個(gè)音的播放時(shí)間) */ { song_h = chuzhi[yindiao*2]。 /* 高四位 。 /*如果既沒有選歌 又沒有停止 返回去做選擇*/ } /********************************************************************************************/ yindiao_l = yindiao % 16。 } else { key_play = 1。 } /******************************************************************************/ else if(song_id == 16 ) { which = 2。 yindiao = test[which]。 if(test[which] == 0xff) /* 遇到結(jié)束符 跳出循環(huán) 停止播放*/ break。 // jiepai = dl[which+1]。 qusu = dl[0]。 //節(jié)拍 } else if(song_id == 2) { key_play = 0。 yindiao = ymt[which]。 if(ymt[which] == 0xff) /* 遇到結(jié)束符 跳出循環(huán)(內(nèi)循環(huán)) 停止播放 */ break。 //音調(diào) jiepai = srkl[which+1]。 qusu = srkl[0]。 } 27 /**************************************************************************************/ nochoose: //不用選歌 當(dāng)正常放完一首歌時(shí),跳到這里 if(song_id == 3) { key_play = 0。 temp_id = allsong) //選了另一首歌曲 { which = 2。 } else if(temp_id != song_id amp。 //播放第一首 else ++song_id。 } else if(temp_id == 15) //下一首 { which = 2。 if(song_id == 1) song_id = allsong 。 } same = 0。 break。 temp_id = allsong)/*選了另一首歌曲 屏蔽掉了未定義的按鍵 */ { which = 2。 } else if(temp_id != song_id amp。 //播放第一首 else ++song_id。 } else if(temp_id == 15) //下一首 { which = 2。//播放最后一首 else song_id。 } else if(temp_id == 13) //上一首 { which = 2。 } else if(temp_id == 16)/*按下停止鍵 ,功能表現(xiàn)為:暫停播放時(shí)也能停 止播放,回到播放前狀態(tài) */ { song_id = 16。 //延時(shí) 500ms while(1) { temp_id = choose2()。 送到 delay()函數(shù) */ while(1) { while(1) { choose_id: temp_id = choose()。//歌曲播放速度 (拍 /分) uint pai2。 /*不按鍵選歌時(shí),返回原歌曲的序號 */ return(i)。 i 13) /*如果按鍵號 在 最大歌曲序號 和 功能鍵 之間,返回原歌曲序號 */ i = song_id。 /*選了同一首歌時(shí),重播這首歌 (0, 1用來存曲速了 故從 2開始 ) */ } else if(i allsong amp。 //用作停止播放 if(i == song_id) { same = 1。amp。 y == 3) //下一首 i = 15。 else if(x == 4 amp。amp。 y == 1) // 上一首 i = 13。 else if(x == 4 amp。amp。 y == 4) i = 4。 else if(x == 1 amp。amp。 y == 2) //選第二首 i = 2。 else if(x == 1 amp。amp。 y = key_y()。 } uchar choose2() /*選歌 不用放開按鍵 在暫停的狀態(tài)下使用 */ { uchar i = 0。 j 13)) /*釋放按鍵 或者按鍵號 在 最 24 大歌曲序號 和 功能鍵 之間時(shí) 跳出循環(huán) */ break。 if(x == 0 || (j allsong amp。 else if(x == 3) j = 8 + y。 if(x == 1) j = y。 //不按鍵選歌時(shí),返回原歌曲的序號 while(1) //釋放按鍵時(shí)才進(jìn)行下一步 { x = key_x()。 i 13) /*如果按鍵號 在 最大歌曲序號 和 功能鍵 之間,返回原歌曲序號 */ i = song_id。 //選同一首歌時(shí),重播這首歌 } else if(i allsong amp。 y == 4) i = 16。 else if(x == 4 amp。amp。 y == 2)//用作暫停播放 i = 14。 else if(x == 4 amp。amp。 y == 1) i = 5。 else if(x == 2 amp。amp。 y == 3) i = 3。 //選第二首 else if(x == 1 amp。amp。 y == 1) i = 1。 23 if(x == 1 amp。 x = key_x()。 } } uchar choose() //播放狀態(tài)下 選歌 { uchar i = 0。 flash 0) flash。 else if(out == 0 amp。amp。amp。 P2 = led_table[flash]。amp。amp。 flash 8 ) //最大加到 8 ++flash。 y != 0 amp??刂?led燈的起落快慢 (數(shù)值不嚴(yán)格 )*/ if(key_play == 1) //不播放歌曲時(shí) { if(x != 0 amp。 TH1 = 0x54。 // beep = ~beep。 key_play == 1)/*當(dāng)有矩陣按鍵按下,并且不播放歌曲時(shí) */ { TL0 = f_l。 y != 0 amp。 22 } else if(x != 0 amp。 TH0 = song_h。 //高音 2 5 f_l = chuzhi[(33+y)*2 + 1]。 //高音 1 f_l = chuzhi[67]。 //中音 5 7 f_l = chuzhi[(20+y)*2 + 1]。 //中音 1 4 f_l = chuzhi[(16+y)*2 +1]。 //低音 4 7 f_l = chuzhi[2*y + 6 + 1]。 else if(yindiao_h == 2) //高音 21 P0 = num[yindiao_l + 14]。 } else //播放音樂時(shí) { if(yindiao_h == 0) /* yindiao變量的 高四位表示 低( 0) 中( 1) 高( 2) 音 */ P0 = num[yindiao_l]。 //中音 5 7 和 高音 1 else if(x == 4) P0 = num[15 + y]。 //低音 4 7 else if(x == 2) P0 = num[7 + y]。amp。 /*保持播放鍵引腳低電平,讓其作為歌曲正在播放的標(biāo)志*/ else key_play = 1。 y = key_y()。 return (j)。 20 if(P1_7 == 0) j = 4。 if(P1_6 == 0) j = 3。 if(P1_5 == 0) j = 2。 if(P1_4 == 0) j = 1。 P1 = 0xf0。 return (i)。 if(P1_3 == 0) i = 4。 if(P1_2 == 0) i = 3。 if(P1_1 == 0) i = 2。 //延時(shí) 5ms 去抖動(dòng) if(P1_0 == 0) i = 1。 P1 = 0x0f。a)。b) // 1*(1+28*2) =57 for(a=110。c) // 1+2=3 for(b=28。 while(pai) //延遲 pai 個(gè) { for(c=1。 // 142*(1+2*2) = 710 } } void delay(uint pai) /*pai 是節(jié)拍 pai若定義成 uchar類型,當(dāng)節(jié)拍 0x0c時(shí),會造成數(shù)據(jù)溢出,產(chǎn)生失真。a0。b0。c0。 void delayms(uint ms) /*ms 等于 1時(shí),延時(shí) 1ms 等于 2時(shí),延時(shí) 2ms,以此類推 */ { uchar a,b,c。 uchar code srkl[]={//生日快樂 0x78,0x00, //曲速 120 0x15,0x02,0x15,0x02, 0x16,0x04,0x15,0x04,0x21,0x04, 0x17,0x04,0x00,0x04,0x15,0x02,0x15,0x02, 0x16,0x04,0x15,0x04,0x22,0x04, 0x21,0x08,0x15,0x02,0x15,0x02, 0x25,0x04,0x23,0x04,0x21,0x04, 0x17,0x04,0x16,0x08, 0x16,0x04,0x00,0x04,0x24,0x02,0x24,0x02, 0x23,0x04,
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1