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

正文內(nèi)容

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

  

【正文】 掃描的基本思路是:先得出觸發(fā)按鍵的“行”,即橫坐標(biāo) x,再得出他的“列”,即縱坐標(biāo) y。 ②播放音樂(lè)時(shí):根據(jù)音符的節(jié)拍,控制點(diǎn)亮到哪一個(gè)燈,在點(diǎn)亮那個(gè)燈之前,前面的燈逐個(gè)等時(shí)距點(diǎn)亮。 :先建立一個(gè)包含一首音樂(lè)的音調(diào)與節(jié)拍的表。 節(jié)拍用 led 燈的點(diǎn)亮個(gè)數(shù)表示。單片機(jī)讀取音樂(lè)表中的節(jié)拍,控制 led燈的點(diǎn)亮個(gè)數(shù),達(dá)到顯示節(jié)拍的效果。其中,音調(diào)就是 0x01(低音、 do)、 0x12(中音、 re)、 0x23(高音、 mi)之類的數(shù);節(jié)拍就是 0x02(半拍), 0x04(一拍)之類的數(shù)。音符結(jié)束后, led 燈全部一起熄滅。 以下是獲取橫坐標(biāo) x的代碼: uchar key_x() /*P1 口高位接縱坐標(biāo)( ) 低位接橫坐標(biāo) ( )*/ { uchar i。 } else if(P1_3 == 0) { delayms(5)。 y == 1) P0 = led_table[1]。這樣設(shè)置能彈奏大部分曲目。/*發(fā)光二極管閃爍表 */ 代碼: if(x != 0 amp。amp。 else if(out == 0 amp。 【蜂鳴器】: 蜂鳴器采用一個(gè) s8550 NPN 三極管驅(qū)動(dòng),一個(gè)可變電阻改變音量。其中節(jié)拍表示一個(gè)音符唱多長(zhǎng)的時(shí)間。 1) 要產(chǎn)生音頻脈沖,只要算出某一音頻的周期( 1/頻率),然后將此周期除以 2,即為半周期的時(shí)間。 節(jié)拍的確定: 若要構(gòu)成音樂(lè) ,光有音調(diào)是不夠的,還需要節(jié)拍,讓音樂(lè)具有旋律(固定的律動(dòng)),而且可以調(diào)節(jié)各個(gè)音的快滿度。對(duì)于單片機(jī)來(lái)說(shuō),產(chǎn)生不同頻率的脈沖是非常方便的,利用單片機(jī)的定時(shí) /計(jì)數(shù)器來(lái)產(chǎn)生這樣的方波頻率信號(hào)。在以四分音符為一拍的歌曲中, 0x04 就代表一拍。 例如: 可以翻譯 成: uchar code ymt[]={//玉滿堂 0x96,0x00, //曲速 0x96 表示 150 拍 /分 0x00,0x0a,0x05,0x02,0x15,0x02,0x12,0x02, 0x13,0x04,0x13,0x02,0x15,0x02,0x12,0x04,0x12,0x02,0x13,0x02, 0x12,0x10, 0x13,0x04,0x13,0x02,0x12,0x02,0x13,0x04,0x15,0x02,0x16,0x02, 0x15,0x0c,0x13,0x02,0x15,0x02, 0x16,0x04,0x16,0x02,0x21,0x02,0x16,0x04,0x15,0x02,0x13,0x02, 0x15,0x0c,0x15,0x02,0x16,0x02, 0x21,0x04,0x21,0x02,0x22,0x02,0x23,0x04,0x22,0x02,0x21,0x02, 0x22,0x10, 0x23,0x08,0x15,0x02,0x16,0x02,0x21,0x02,0x22,0x02, 0x23,0x04,0x23,0x02,0x22,0x02,0x21,0x06,0x21,0x02, 11 0x16,0x04,0x16,0x02,0x21,0x02,0x16,0x04,0x13,0x04, 0x15,0x10, 0x16,0x04,0x16,0x02,0x21,0x02,0x16,0x04,0x21,0x02,0x22,0x02, 0x23,0x04,0x23,0x02,0x22,0x02,0x21,0x06,0x21,0x02, 0x16,0x02,0x21,0x02,0x16,0x02,0x21,0x02,0x22,0x02,0x23,0x02,0x25,0x02,0x23,0x02, 0x22,0x0c,0x21,0x02,0x22,0x02, 0x23,0x06,0x15,0x02,0x16,0x02,0x21,0x02,0x22,0x02, 0x23,0x04,0x23,0x02,0x22,0x02,0x21,0x06,0x21,0x02, 0x16,0x04,0x16,0x02,0x21,0x02,0x16,0x02,0x21,0x02,0x15,0x02,0x13,0x02, 0x15,0x0c,0x13,0x02,0x15,0x02, 0x16,0x04,0x16,0x02,0x21,0x02,0x16,0x04,0x16,0x02,0x21,0x02, 0x22,0x04,0x22,0x02,0x23,0x02,0x22,0x04,0x22,0x02,0x23,0x02, 0x25,0x02,0x26,0x02,0x23,0x02,0x25,0x02,0x22,0x02,0x23,0x02,0x21,0x02,0x16,0x02, 0x21,0x10, 0xff }。在彈奏與播放時(shí),蜂鳴器聲音不純,有顫音,影響音樂(lè)美感。 x1 6 240電阻 10 7 NPN 三極管 1 s8550 8 七段共陰極數(shù)碼管 2 9 無(wú)源蜂鳴器 1 10 電位器 1 11 發(fā)光二極管 10 紅色 x8 黃 x1 綠 x1 12 排針 3排 13 雙面覆銅銅板 1 15x10 cm 14 40P杜邦線 1 15 單片機(jī)底座 2 16 電源開(kāi)關(guān) 1 17 Stc89c52單片機(jī) 1 13 總程序: 14 include include define uchar unsigned char define uint unsigned int define allsong 4 //歌曲總數(shù) 按實(shí)際寫(xiě) sbit P1_0 = P1^0。 sbit beep = P3^0。 /*歌曲音調(diào)的初值(低位) */ uchar song_h。 //歌曲臨時(shí)序號(hào) uint which = 2。 //檢查按鍵狀態(tài) 函數(shù) void display()。 uchar code ymt[]={//玉滿堂 0x96,0x00, //曲速 0x96表示 150拍 /分 0x00,0x0a,0x05,0x02,0x15,0x02,0x12,0x02, 0x13,0x04,0x13,0x02,0x15,0x02,0x12,0x04,0x12,0x02,0x13,0x02, 0x12,0x10, 0x13,0x04,0x13,0x02,0x12,0x02,0x13,0x04,0x15,0x02,0x16,0x02, 0x15,0x0c,0x13,0x02,0x15,0x02, 0x16,0x04,0x16,0x02,0x21,0x02,0x16,0x04,0x15,0x02,0x13,0x02, 0x15,0x0c,0x15,0x02,0x16,0x02, 0x21,0x04,0x21,0x02,0x22,0x02,0x23,0x04,0x22,0x02,0x21,0x02, 0x22,0x10, 0x23,0x08,0x15,0x02,0x16,0x02,0x21,0x02,0x22,0x02, 0x23,0x04,0x23,0x02,0x22,0x02,0x21,0x06,0x21,0x02, 0x16,0x04,0x16,0x02,0x21,0x02,0x16,0x04,0x13,0x04, 0x15,0x10, 0x16,0x04,0x16,0x02,0x21,0x02,0x16,0x04,0x21,0x02,0x22,0x02, 0x23,0x04,0x23,0x02,0x22,0x02,0x21,0x06,0x21,0x02, 0x16,0x02,0x21,0x02,0x16,0x02,0x21,0x02,0x22,0x02,0x23,0x02,0x25,0x02,0x23,0x02, 0x22,0x0c,0x21,0x02,0x22,0x02, 0x23,0x06,0x15,0x02,0x16,0x02,0x21,0x02,0x22,0x02, 0x23,0x04,0x23,0x02,0x22,0x02,0x21,0x06,0x21,0x02, 0x16,0x04,0x16,0x02,0x21,0x02,0x16,0x02,0x21,0x02,0x15,0x02,0x13,0x02, 0x15,0x0c,0x13,0x02,0x15,0x02, 0x16,0x04,0x16,0x02,0x21,0x02,0x16,0x04,0x16,0x02,0x21,0x02, 0x22,0x04,0x22,0x02,0x23,0x02,0x22,0x04,0x22,0x02,0x23,0x02, 0x25,0x02,0x26,0x02,0x23,0x02,0x25,0x02,0x22,0x02,0x23,0x02,0x21,0x02,0x16,0x02, 0x21,0x10, 0xff }。b0。c) // 1+2=3 for(b=28。 //延時(shí) 5ms 去抖動(dòng) if(P1_0 == 0) i = 1。 return (i)。 if(P1_6 == 0) j = 3。 /*保持播放鍵引腳低電平,讓其作為歌曲正在播放的標(biāo)志*/ else key_play = 1。 } else //播放音樂(lè)時(shí) { if(yindiao_h == 0) /* yindiao變量的 高四位表示 低( 0) 中( 1) 高( 2) 音 */ P0 = num[yindiao_l]。 //中音 5 7 f_l = chuzhi[(20+y)*2 + 1]。 22 } else if(x != 0 amp。 TH1 = 0x54。amp。amp。 x = key_x()。 //選第二首 else if(x == 1 amp。 y == 1) i = 5。amp。 i 13) /*如果按鍵號(hào) 在 最大歌曲序號(hào) 和 功能鍵 之間,返回原歌曲序號(hào) */ i = song_id。 if(x == 0 || (j allsong amp。amp。 else if(x == 1 amp。 y == 1) // 上一首 i = 13。amp。 /*不按鍵選歌時(shí),返回原歌曲的序號(hào) */ return(i)。 } else if(temp_id == 16)/*按下停止鍵 ,功能表現(xiàn)為:暫停播放時(shí)也能停 止播放,回到播放前狀態(tài) */ { song_id = 16。 //播放第一首 else ++song_id。 } same = 0。 } else if(temp_id != song_id amp。 //音調(diào) jiepai = srkl[which+1]。 qusu = dl[0]。 } /******************************************************************************/ else if(song_id == 16 ) { which = 2。(當(dāng)音調(diào)為 0時(shí)表示這個(gè)音不響 但依舊要占這個(gè)音的播放時(shí)間) */ { song_h = chuzhi[yindiao*2]。 TR1 = 0。 out = 0。 out = 0。 // 每首歌的最開(kāi)始的一個(gè)音 break。 goto nochoose。 P2 = 0xff。 which = 2。 P2 = led_table[0]。 /*唱完一個(gè)音停 xx ms(決定每個(gè)音調(diào)之間的時(shí)間間隔 根據(jù) 個(gè)人喜好節(jié)奏來(lái)定 */ 29 TR1 = 0。 flash = 0。 TR0 = 1。 } else { key_play = 1。 // jiepai = dl[which+1]。 if(ymt[which] == 0xff) /* 遇到結(jié)束符 跳出循環(huán)(內(nèi)循環(huán)) 停止播放 */ break。 temp_id = allsong) //選了另一首歌曲 { which = 2。 if(song_id == 1) song_id = allsong 。 } else if(temp_id != song_id amp。 } else if(temp_id == 13) //上一首 { which = 2。//歌曲播放速度 (拍 /分) uint pai2。 //用作停止播放 if(i == song_id) { same = 1。amp。 y == 4) i = 4
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1