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

正文內(nèi)容

基于單片機的電子琴畢業(yè)設(shè)計-資料下載頁

2024-11-23 16:36本頁面

【導(dǎo)讀】電子琴是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一種新型的鍵盤樂器。代音樂扮演著重要的角色,單片機具有強大的控制功能和靈活的編程實現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替代的一部分。本文的主要內(nèi)容是用。AT89c51單片機為核心控制元件,設(shè)計一個電子琴。本系統(tǒng)運行穩(wěn)定,其優(yōu)點是硬件電路簡單,軟件功能完善,控制系統(tǒng)可靠,性價比較高等,具有一定的實用和參考價值。計算機,直譯為單片機??煽啃?、應(yīng)用領(lǐng)域等全方位向更高水平發(fā)展。目前單片機已用于工業(yè)控制、機電。及家用電器等各個領(lǐng)域,隨著單片機性能的不斷提高,它的應(yīng)用將會更加廣泛。

  

【正文】 ,5,5,10,9,8,6,1}, {6,6,11,10,9,12,12,12,12,13,12,11,9,8,10,10,10,1}, {10,10,10,10,12,8,9,10,11,1,11,11,11,10,10,10,10,10,9,9,8,9,12,12,12,11,9,8,1}, {13,13,8,13,13,13,13,14,15,14,13,14,13,14,10,10,13,14,13,12,12,10,12,10,12,13,14,13,14,13,14,10,9,13,13,13,8,13,13,13,13,14,15,14,13,13,14,12,13,1}, {6,6,11,10,9,12,12,12,12,13,12,11,9,8,10,10,10,10,10,10,10,12,8,9,10,11,11,11,11,11,10,10,10,10,10,9,9,8,9,12,12,12,11,9,8,1}, {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,1} }。 uchar code Len[][50]= //上面幾首音樂的旋律每個音符對應(yīng)電子信息工程系畢業(yè)論文 24 的節(jié)拍 { {1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1}, {1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,2,2,1}, {1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,1,1,1,1,1,1,2,1,1,2,2,1}, {1,1,1,1,2,1,1,1,1,0,1,1,0,1,1,0,1,1,2,1}, {1,1,1,1,0,1,1,1,1,1,0,1,1,0,1,1,0,1,1,3,1,1}, {0,1,1,0,1,1,2,1,1,0,1,1,0,1,1,2,1}, {0,1,1,2,0,1,1,0,1,1,0,1,1,0,1,1,2,1,1}, {0,1,1,0,1,1,2,1,1,0,1,1,0,1,1,4,1}, {0,1,1,2,0,1,1,0,1,1,0,1,1,0,1,4,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,1,2,0,1,1,0,1,1,0,1,1,0,1,1,2,1,0,1,1,0,1,1,2,1,1,0,1,1,0,1,1,4,0,1,1,2,0,1,1,0,1,1,0,1,1,0,1,4,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}. {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} }。 /* 音符與計數(shù)值對應(yīng)表 */ uint code tab[]= { 0,63628,63835,64021,64103,64260,64400,64524, 64580,64684,64777,64820,64898,64968,65030, 65058,65110,65157,65178,65217,65252,65283 }。 void delay1(uint ms) //播放歌曲時實現(xiàn)節(jié)拍的延時函數(shù) { uchar t。 while(ms) for (t=0。t120。t++)。 } /* 鍵消抖延時函數(shù) */ void delay(void) { uchar i。 for (i=300。i0。i)。 } /* 鍵掃描函數(shù) */ uchar getkey(void) { uchar scancode,tmpcode。 if ((P0amp。0xf0)==0xf0) return(0)。 scancode = 0xfe。 電子信息工程系畢業(yè)論文 25 while((scancodeamp。0x10)!=0) // 逐行掃描 { P0 = scancode。 // 輸出行掃描碼 if ((P0amp。0xf0)!=0xf0) // 本行有鍵按下 { tmpcode = (P0amp。0xf0)|0x0f。 /* 返回特征字節(jié)碼,為 1的位即對應(yīng)于行和列 */ return((~scancode)+(~tmpcode))。 } else scancode = (scancode1)|0x01。 // 行掃描碼左移一位 } } /* 外部中斷 0 ,這里是彈唱按鍵 */ void EX0_INT() interrupt 0 { FY=0。 LED1=1。 LED2=0。 } /* 外部中斷 1 ,這里是播放按鍵 */ void EX1_INT() interrupt 2 { FY=1。 LED1=0。 LED2=1。 } /* 定時器 0中斷服務(wù)子程序 */ void time0_int(void) interrupt 1 using 0 { /* 設(shè)置計數(shù)初值 */ TH0 = STH0。 TL0 = STL0。 SPK=!SPK。 // 反相,產(chǎn)生輸出脈沖 P2=DSY_CODE[k] 。 } void main(void) { LED1=1。 LED2=0。 P2=0x3f。 IE=0x87。 TMOD=0x01。 IT0=1。 IT1=1。 while(1) { P0 = 0xf0。 // 發(fā)全 0列掃描碼 if ((P0amp。0xf0)!=0xf0) // 若有鍵按下 { 電子信息工程系畢業(yè)論文 26 delay()。 // 延時去抖動 if ((P0amp。0xf0)!=0xf0) // 延時后再判斷一次,去除抖動影響 { key = getkey()。 // 調(diào)用鍵盤掃描函數(shù) switch(key) // 根據(jù)獲取的按鍵位置得到 k值 { case 0x11: // 1 行 1列 k = 0。 break。 case 0x21: // 1 行 2列 k = 1。 break。 case 0x41: // 1 行 3列 k = 2。 break。 case 0x81: // 1 行 4列 k = 3。 break。 case 0x12: // 2 行 1列 k = 4。 break。 case 0x22: // 2 行 2列 k = 5。 break。 case 0x42: // 2 行 3列 k = 6。 break。 case 0x82: // 2 行 4列 k = 7。 break。 case 0x14: // 3 行 1列 k = 8。 break。 case 0x24: // 3 行 2列 k = 9。 break。 case 0x44: // 3 行 3列 k = 10。 break。 case 0x84: // 3 行 4列 k = 11。 break。 case 0x18: // 3 行 4列 電子信息工程系畢業(yè)論文 27 k = 12。 break。 case 0x28: // 3 行 4列 k = 13。 break。 case 0x48: // 3 行 4列 k = 14。 break。 case 0x88: // 3 行 4列 k = 15。 break。 default: break。 } if(FY==0) { /* 根據(jù)所得的 k值設(shè)定計數(shù)器 1 的計數(shù)初值 */ STH0 = tab[k]/256。 STL0 = tab[k]%256。 TR0 = 1。 // 開始計數(shù) while ((P0amp。0xf0)!=0xf0)。 // 若沒有松開按鍵,則等待,等待期間彈奏該音符 TR0 = 0。 // 若按鍵松開,則停止計數(shù),不產(chǎn)生脈沖輸出 } else { while (FY==1) { if (Song[k][Tone_Index]==1) Tone_Index=0。 STH0=(tab[Song[k][Tone_Index]])/256。 STL0=(tab[Song[k][Tone_Index]])%256。 P2=DSY_CODE[Song[k][Tone_Index]] 。 TR0 = 1。 delay1(300*Len[k][Tone_Index])。 Tone_Index++。 TR0 = 0。 } } } } } }
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1