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

正文內(nèi)容

基于51單片機的電子琴設(shè)計附原理圖pcb和程序課程設(shè)計說明書-資料下載頁

2025-06-28 00:02本頁面
  

【正文】 if(x == 4 amp。amp。 y == 3) //下一首 i = 15。 else if(x == 4 amp。amp。 y == 4) i = 16。 //用作停止播放 if(i == song_id) { same = 1。 which = 2。 /*選了同一首歌時,重播這首歌 (0,1用來存曲速了 故從2開始) */ } else if(i allsong amp。amp。 i 13) /*如果按鍵號 在 最大歌曲序號 和 功能鍵 之間,返回原歌曲序號*/ i = song_id。 else if(i == 0) //i等于初值 說明未按鍵 i = song_id。 /*不按鍵選歌時,返回原歌曲的序號*/ return(i)。}void play() //播放歌曲 { uint qusu。//歌曲播放速度 (拍/分) uint pai2。 /* pai2 = (2400/qusu)*jiepai。 送到delay()函數(shù)*/ while(1) { while(1) { choose_id: temp_id = choose()。 //選歌 /****************************↓↓↓↓↓暫?!?****************************************/ if(temp_id == 14) //如果按下暫停鍵 { delayms(500)。 //延時500ms while(1) { temp_id = choose2()。/*choose2 按下就起作用 不必等到放開按鍵才起作用*/ if(temp_id == 14) /*再次按下“暫停鍵” 表示繼續(xù)播放*/ { break。 } else if(temp_id == 16)/*按下停止鍵 ,功能表現(xiàn)為:暫停播放時也能停止播放,回到播放前狀態(tài)*/ { song_id = 16。 break。 } else if(temp_id == 13) //上一首 { which = 2。 if(song_id == 1) song_id = allsong 。//播放最后一首 else song_id。 break。 } else if(temp_id == 15) //下一首 { which = 2。 if(song_id == allsong) song_id = 1。 //播放第一首 else ++song_id。 break。 } else if(temp_id != song_id amp。amp。 temp_id = allsong)/*選了另一首歌曲 屏蔽掉了未定義的按鍵 */ { which = 2。 /*從歌曲的第一個音播放 (0,1用來存曲速了 故從2開始) */ song_id = temp_id。 break。 } else if(same == 1) break。 } same = 0。 //跳出循環(huán)后 需重置為0 } /****************************↑↑↑↑↑暫停↑↑↑↑↑***************************************/ else if(temp_id == 13) //上一首 { which = 2。 if(song_id == 1) song_id = allsong 。//播放最后一首 else song_id。 } else if(temp_id == 15) //下一首 { which = 2。 if(song_id == allsong) song_id = 1。 //播放第一首 else ++song_id。 } else if(temp_id == 16) { song_id = 16。 } else if(temp_id != song_id amp。amp。 temp_id = allsong) //選了另一首歌曲 { which = 2。 //從歌曲的第一個音播放 song_id = temp_id。 } /**************************************************************************************/ nochoose: //不用選歌 當(dāng)正常放完一首歌時,跳到這里 if(song_id == 3) { key_play = 0。 if(srkl[which] == 0xff) /* 遇到結(jié)束符 跳出循環(huán)(內(nèi)循環(huán)) 停止播放 */ break。 qusu = srkl[0]。 yindiao = srkl[which]。 //音調(diào) jiepai = srkl[which+1]。 //節(jié)拍 } else if(song_id == 1) { key_play = 0。 if(ymt[which] == 0xff) /* 遇到結(jié)束符 跳出循環(huán)(內(nèi)循環(huán)) 停止播放 */ break。 qusu = ymt[0]。 yindiao = ymt[which]。 //音調(diào) jiepai = ymt[which+1]。 //節(jié)拍 } else if(song_id == 2) { key_play = 0。 if(dl[which] == 0xff) /* 遇到結(jié)束符 跳出循環(huán) 停止播放 */ break。 qusu = dl[0]。 yindiao = dl[which]。 // jiepai = dl[which+1]。 // } else if(song_id == 4) { key_play = 0。 if(test[which] == 0xff) /* 遇到結(jié)束符 跳出循環(huán) 停止播放*/ break。 qusu = test[0]。 yindiao = test[which]。 jiepai = test[which+1]。 }/******************************************************************************/ else if(song_id == 16 ) { which = 2。 break。 } else { key_play = 1。 goto choose_id。 /*如果既沒有選歌 又沒有停止 返回去做選擇*/ }/********************************************************************************************/ yindiao_l = yindiao % 16。 // 低四位 調(diào) yindiao_h = yindiao /16。 /* 高四位 。是低音0 中音1 還是 高音2 */ if(yindiao != 0) /*音調(diào)不為0。(當(dāng)音調(diào)為0時表示這個音不響 但依舊要占這個音的播放時間)*/ { song_h = chuzhi[yindiao*2]。 song_l = chuzhi[yindiao*2+1]。 TR0 = 1。 /*給初值賦值后,開啟定時器0 蜂鳴器開始發(fā)聲 */ TR1 = 1。 /*開啟定時器1 ,led開始閃動*/ display()。 //數(shù)碼管顯示音調(diào) out = 1。 /*正在發(fā)聲的標(biāo)志,定時器1得以控制led燈按一定的時間間隔 逐個點亮 */ } else { TR0 = 0。 out = 0。 TR1 = 0。 P0 = 0x00。 flash = 0。 P2 = led_table[0]。 } pai2 = (2400/qusu)*jiepai。 delay(pai2)。 /*延時 = 節(jié)拍數(shù) x 125ms (決定著1個音的發(fā)聲時間) */ TR0 = 0。 //蜂鳴器停止發(fā)聲 P0 = 0x00。 out = 0。 delayms(39)。 /*唱完一個音停xx ms(決定每個音調(diào)之間的時間間隔 根據(jù)個人喜好節(jié)奏來定 */ TR1 = 0。 //led停止閃動 flash = 0。 P2 = led_table[0]。 which = which + 2。 //下一個音 } /*已經(jīng)放完一首歌,或者停止播放 ,接下來判斷是停止播放還是播放下一首 */ TR0 = 0。 P0 = 0x00。 out = 0。 flash = 0。 P2 = led_table[0]。 if(song_id == 16) /*坐標(biāo)(4,4)的鍵盤作為停止播放鍵*/ { while(1) { x = key_x()。 if(x == 0) break。/*松開按鍵 才結(jié)束 避免觸發(fā)其他程序 比如電子琴發(fā)聲、led顯示等 */ } key_play = 1。 /*播放鍵引腳置高電平,播放結(jié)束的標(biāo)志 */ song_id = 1。 // 第一首歌開始 which = 2。 // 每首歌的最開始的一個音 break。 /*跳出第二個循環(huán)(即結(jié)束play函數(shù))*/ } else if(song_id == allsong)/*當(dāng)放到最后一首時,從第一首開始 (當(dāng)前共3首) */ { song_id = 1。 which = 2。 delayms(1000)。 //一秒后從第一首開始播放 goto nochoose。 } else { ++song_id。 /*歌曲序號自動+1 自動播放下一首歌*/ which = 2。 delayms(1000)。 goto nochoose。//不用選歌 播放下一首 } }}void main(){ P0 = 0x00。 P2 = 0xff。 TMOD = 0x11。 /*定時器0 定時器1 都采用方式1(16位定時器方式) */ IE = 0x8a。 PT0 = 1。 /*設(shè)置定時器0為高優(yōu)先級,避免被定時器1干擾,造成聲音失真 */ while(1) { key_check()。 if(key_play == 1 amp。amp。 x != 0 amp。amp。 y != 0) { TR1 = 1。 display()。 speak()。 TR0 = 1。 } else if(key_play == 0) { key_play = 0。 play()。 /*play函數(shù)有循環(huán)語句,當(dāng)按下停止鍵(16鍵)時才能跳出 */ } else { if(flash == 0)/*當(dāng)flash 減到0時 再關(guān)閉定時器1,即 讓led燈全部熄滅再關(guān)閉T1 */ TR1 = 0。 TR0 = 0。 P0 = 0x00。 } } }【實物圖】:【原理圖、PCB、程序下載地址】: (百度網(wǎng)盤)【版權(quán)聲明】:共享文檔、可自由轉(zhuǎn)載,但僅限于學(xué)習(xí)交流! 最后建議同學(xué)們,課設(shè)最好認(rèn)真做,不可完全照搬他人。31
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1