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

正文內(nèi)容

基于51單片機的電子琴設(shè)計附原理圖、pcb和程序_課程設(shè)計說明書(專業(yè)版)

2024-10-22 15:43上一頁面

下一頁面
  

【正文】 } else { ++song_id。 which = which + 2。 //數(shù)碼管顯示音調(diào) out = 1。 qusu = test[0]。 if(srkl[which] == 0xff) /* 遇到結(jié)束符 跳出循環(huán)(內(nèi)循環(huán)) 停止播放 */ break。 /*從歌曲的第一個音播放 (0, 1用來存曲速了 故從 2開始 ) */ song_id = temp_id。 //選歌 /****************************↓↓↓↓↓暫?!?****************************************/ if(temp_id == 14) //如果按下暫停鍵 { delayms(500)。amp。 else if(x == 1 amp。 else if(x == 2) j = 4 + y。amp。 //選第一首 else if(x == 1 amp。 } else if(key_play == 0 ) //播放歌曲時 { if(out == 1 amp。 //賦初值 TH0 = f_h。 } else if(x == 2) { f_h = chuzhi[(16+y)*2]。 } void key_check() /*檢查矩陣按鍵坐標、播放鍵的狀態(tài)及播放鍵狀態(tài)設(shè)置 */ { x = key_x()。 } else if(P1_3 == 0) { delayms(5)。 */ { uchar a,b,c。 //播放歌曲 函數(shù) uchar code num[]={0x00, //數(shù)碼管段選碼 0x77,0x7c,0x39,0x5e,0x79,0x71,0x3d, //a g 0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, //1 7 0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87 //1. 7. }。 //音調(diào)的低四位 uchar jiepai。 sbit P1_5 = P1^5。 而且這是我第一次焊雙面板,意義不同凡響。比如: 0x11 表示中音 do。 計數(shù)脈沖值與頻率的關(guān)系公式如下: N=Fi? 2? Fr N:計算值; Fi:內(nèi)部計時一次為 1us,故其頻率為 1MHz; 4) 其計數(shù)值 的求法如下: T=65536N=65536Fi? 2? Fr 例如:設(shè) K=65536, F=1000000=Fi=1MHz,求低音 DO( 261Hz)。倘若連接了其他器件,每次調(diào)試都要拔下燒寫線,很不方便。 flash 8 amp。 //高音 2 5 LED燈: 因為 LED燈要按一定的時間逐個點亮或者 逐個熄滅,所以我用定時器 1來控制它。 得到觸發(fā)按鍵的坐標( x,y)之后,可以通過 x,y 的值來確定按鍵的功能。 值得注意的是,晶振不能隨便摸!尤其在通電工作的時候,觸摸容易損壞。 【方案可行性論證】: 本課題采用 stc89c52 單片機作為核心器件,實現(xiàn)基本的音樂彈奏、音樂播放、音調(diào)顯示和音樂節(jié)拍指示的功能。 T0作為驅(qū)動蜂鳴器的定時器,要給予高優(yōu)先級,不然會被 T1 干擾,音質(zhì)變差。 【程序框圖】: 開始 掃描鍵盤 讀取歌曲 是 否 播放鍵按下 有矩陣鍵按下 否 識別按鍵 數(shù)碼管顯示音調(diào) 算出定時器初值 開啟定時器,并賦初值,蜂鳴器發(fā)聲 按鍵是否釋放 關(guān)閉定時器 P0口置 0 是 否 否 算出音符的音調(diào)、節(jié)拍 根據(jù)音調(diào)給 T0賦初值 開啟 T0 T1 按節(jié)拍延遲 關(guān)閉 T0 T1數(shù)碼管與 led 是否結(jié)束符 否 讀下一個音符 數(shù)碼管顯示音調(diào) Led 指示節(jié)拍 是 是否停止播放 是 【復位與震蕩電路】: 原件的參數(shù)如圖所示。 } else i = 0。 //低音 4 7 else if(x == 2) P0 = num[7 + y]。 P2 = led_table[flash]。最初采用 8050 就造成了這個 問題。 2) 利用 stc89c52的內(nèi)部定時器使其工作在計數(shù)器模式 MODE1 下,改變計數(shù)值 TH0 及TL0 以產(chǎn)生不同頻率的方法。 音樂的編碼: 每個音符采用 2 個字節(jié)。先寫好鍵盤掃描程序,然后再到數(shù)碼管顯示、蜂鳴器發(fā)聲、 led 節(jié)拍指示。 sbit P1_2 = P1^2。 /*聲音輸出變量 1表示有輸出 0表示無輸出 */ uchar yindiao。 /*按鍵后 給定時器 0賦對應音調(diào)的初值 從而發(fā)出聲音 */ 15 uchar choose()。a0。 if(P1_1 == 0) i = 2。 20 if(P1_7 == 0) j = 4。 else if(yindiao_h == 2) //高音 21 P0 = num[yindiao_l + 14]。 y != 0 amp。amp。 23 if(x == 1 amp。amp。 //不按鍵選歌時,返回原歌曲的序號 while(1) //釋放按鍵時才進行下一步 { x = key_x()。 else if(x == 1 amp。amp。//歌曲播放速度 (拍 /分) uint pai2。 } else if(temp_id != song_id amp。 temp_id = allsong) //選了另一首歌曲 { which = 2。 // jiepai = dl[which+1]。 TR0 = 1。 /*唱完一個音停 xx ms(決定每個音調(diào)之間的時間間隔 根據(jù) 個人喜好節(jié)奏來定 */ 29 TR1 = 0。 which = 2。 goto nochoose。 out = 0。 TR1 = 0。 } /******************************************************************************/ else if(song_id == 16 ) { which = 2。 //音調(diào) jiepai = srkl[which+1]。 } same = 0。 } else if(temp_id == 16)/*按下停止鍵 ,功能表現(xiàn)為:暫停播放時也能停 止播放,回到播放前狀態(tài) */ { song_id = 16。amp。 else if(x == 1 amp。 if(x == 0 || (j allsong amp。amp。 //選第二首 else if(x == 1 amp。amp。 TH1 = 0x54。 //中音 5 7 f_l = chuzhi[(20+y)*2 + 1]。 /*保持播放鍵引腳低電平,讓其作為歌曲正在播放的標志*/ else key_play = 1。 return (i)。c) // 1+2=3 for(b=28。 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 }。 //歌曲臨時序號 uint which = 2。 sbit beep = P3^0。在彈奏與播放時,蜂鳴器聲音不純,有顫音,影響音樂美感。在以四分音符為一拍的歌曲中, 0x04 就代表一拍。 節(jié)拍的確定: 若要構(gòu)成音樂 ,光有音調(diào)是不夠的,還需要節(jié)拍,讓音樂具有旋律(固定的律動),而且可以調(diào)節(jié)各個音的快滿度。其中節(jié)拍表示一個音符唱多長的時間。 else if(out == 0 amp。/*發(fā)光二極管閃爍表 */ 代碼: if(x != 0 amp。 y == 1) P0 = led_table[1]。 以下是獲取橫坐標 x的代碼: uchar key_x() /*P1 口高位接縱坐標( ) 低位接橫坐標 ( )*/ { uchar i。其中,音調(diào)就是 0x01(低音、 do)、 0x12(中音、 re)、 0x23(高音、 mi)之類的數(shù);節(jié)拍就是 0x02(半拍), 0x04(一拍)之類的數(shù)。 節(jié)拍用 led 燈的點亮個數(shù)表示。 ②播放音樂時:根據(jù)音符的節(jié)拍,控制點亮到哪一個燈,在點亮那個燈之前,前面的燈逐個等時距點亮。 if(P1_2 == 0) i = 3。
點擊復制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1