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

正文內(nèi)容

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

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

下一頁面
  

【正文】 我讓第一行的按鍵 觸發(fā)低音 4 7,第二行觸發(fā)中音 1 4,第三行觸發(fā)中音 5 7和高音 1,第四行觸發(fā)高音 2 5。 y == 0 amp。如果當(dāng)初采用 16 個燈的話,就沒有這個窘境了。例如高音 DO 的頻率( 1046Hz)剛好是中音 DO 的頻率( 523Hz)的一倍,中音 DO 的頻率( 523Hz)剛好是低音 DO 頻率( 266 Hz)的一倍;同樣的,高音 RE 的頻率( 1175Hz)剛好是中音 RE 的頻率( 587Hz)的一倍,中音 RE 的頻率( 587Hz)剛好是低音 RE 頻率( 294 Hz)的一倍。了解音樂的一些基礎(chǔ)知識,我們可知產(chǎn)生不同頻率的音頻脈沖即能產(chǎn)生音樂。 我們可以找到任意歌曲的簡譜圖,然后根據(jù)上述規(guī)則編寫出單片機(jī)識別的簡譜表。F 無極性電容 1 5 10K 9 10K x9 。 //高位 uchar song_l。//節(jié)拍延時 函數(shù) void key_check()。c) // 1+2 = 3 for(b=142。 /*有按鍵按下后 對應(yīng)按鍵的橫坐標(biāo)電位被拉低( 注意低電位引腳不能被高電位引腳抬高,只能是低電位拉低高電位) */ 19 if(P1_0 == 0) { delayms(5)。 } else if(P1_6 == 0) { delayms(5)。 //高音 2 5 } else P0 = 0x00。 beep = ~beep。 else if(x == 0 amp。 //第 i首歌 初值 0表示未選歌 uchar j。amp。amp。 if(x == 1 amp。amp。 else if(i == 0) //i等于初值 說明未按鍵 i = song_id。 if(song_id == allsong) 26 song_id = 1。 } else if(temp_id == 16) { song_id = 16。 if(dl[which] == 0xff) /* 遇到結(jié)束符 跳出循環(huán) 停止播放 */ break。是低音 0 中音 1 還是 高音 2 */ if(yindiao != 0) /*音調(diào)不為 0。 //蜂鳴器停止發(fā)聲 P0 = 0x00。 // 第一首歌開始 which = 2。 TMOD = 0x11。 if(song_id == 16) /*坐標(biāo) (4,4)的鍵盤作為停止播 放鍵 */ { while(1) { x = key_x()。 P2 = led_table[0]。 goto choose_id。 qusu = ymt[0]。//播放最后一首 else song_id。 if(song_id == 1) song_id = allsong 。 which = 2。 else if(x == 2 amp。 } return(i)。amp。 else if(x == 1 amp。amp。amp。 } } else if(x == 4) { f_h = chuzhi[(33+y)*2]。 y != 0 ) { if(x == 1) P0 = num[3 + y] 。 if(P1_4 == 0) { delayms(5)。a0。 uchar code test[]={//測試 0x78,0x00, //曲速 0x78表示 120拍 /分 0x01,0x04,0x02,0x04,0x03,0x04,0x04,0x04,0x05,0x04,0x06,0x04,0x07,0x04,0x00,0x04, 0x11,0x08,0x12,0x07,0x13,0x06,0x14,0x05,0x15,0x04,0x16,0x03,0x17,0x02,0x00,0x01, 0x21,0x01,0x22,0x02,0x23,0x03,0x24,0x04,0x25,0x05,0x26,0x06,0x27,0x07,0x00,0x08, 0xff, }。 //獲取鍵盤橫坐標(biāo) 函數(shù) uchar key_y()。 /*矩陣鍵盤橫坐標(biāo) 從 1開始 0為未按下的標(biāo)志 */ uchar y = 0。直到最后,忽然想到了定時器有優(yōu)先級的說法。右側(cè)兩橫: 0x0c。至于 1拍多少 s,并沒有嚴(yán)格規(guī)定,就像人的心跳一樣,大部分人的心跳是每分鐘 72下,有些人快一點(diǎn),有些人慢一點(diǎn),只要聽的悅耳就好。兩個音之間的距離有兩個“半音”,就叫“全音”。 P2 = led_table[flash]。amp。 【數(shù)碼管與 LED 燈】: 數(shù)碼管: 在本課題中,數(shù)碼管要顯示 A G , 1 7, 1. 7. ,所以段碼比較另類。 //延時 5ms 去抖動 if(P1_0 == 0) i = 1。(具體實(shí)現(xiàn)方法見附錄總程序) : ① 按鍵:讀出按鍵坐標(biāo)( x,y),用 if 語句來判斷( x,y)該給數(shù)碼管賦什 么值,然后從 uchar code num[] 表中讀取這個值賦給數(shù)碼管 (例如 P0)。 課程設(shè)計(jì)說明書 題 目: 基于單片機(jī)的電子琴設(shè)計(jì) 院 (系): 電子工程與自動化學(xué)院 專 業(yè): 測控技術(shù)與儀器 (卓越 ) 2020 年 9 月 21 日 目 錄 1 摘要 ?????????????????????????? 1 2 關(guān)鍵字 ????????????????????????? 1 3 設(shè)計(jì)任務(wù)及要求 ????????????????????? 1 4 方案可行性論證 ? ???????????????????? 1 5 程序框圖 ???????????????????????? 2 6 關(guān)鍵單元電路與程序介紹 ????????????????? 3 復(fù)位與震蕩電路 ?????????????????? 3 4x4 矩陣鍵盤 ??????????????????? 3 數(shù)碼管與 LED 燈 ?????????????????? 4 蜂鳴器 ?????????????????????? 6 音樂相關(guān)知識 ???? ??????????????? 7 7 調(diào)試過程 ???????????????????????? 11 8 總結(jié)與體會 ??????????????????????? 11 9 參考文獻(xiàn) ???????????????????????? 11 10 附錄 ?????????????????????????? 12 設(shè)備與儀器 ???????????????????? 12 軟件 ??????????????????????? 12 原件清單 ??? ?????????????????? 12 原理圖與 PCB圖 ?????????????????? 13 總程序??????????????????????? 14 實(shí)物圖 ??????????????????????? 31 【摘要】: 打造一個多功能電子琴,核心是一塊單片機(jī)。 ② 播放歌曲時:讀入音調(diào),根據(jù)音調(diào)的值來判斷 num[i]這個表中的 i,再把 num[i]賦給 P0口。 } else if(P1_1 == 0) { delayms(5)。 num[0]的值是沒用到的,起占位作用。 flash 8 ) //最大加到 8 ++flash。 這樣做,就能看得出音符的節(jié)拍了。在鋼琴等 鍵盤樂器上, C– D、 D– E、 F– G、 G– A、 A– B 兩音之間隔著一個黑鍵,他們之間的距離就是全音; E– F、 B– C兩音之間沒有黑鍵相隔,它們之間的距離就是半音。音持續(xù)時間的長短即時值,一般用拍數(shù)表示。右側(cè)三橫: 0x10;右下角有一點(diǎn):加上當(dāng)前延時的一半。試了一下,將控制蜂鳴器的定時器 T0 設(shè)為高優(yōu)先級。 /*矩陣鍵盤縱坐標(biāo) 從 1開始 0為未按下的標(biāo)志 */ uchar flash = 0。 //獲取鍵盤縱坐標(biāo) 函數(shù) void play()。 void delayms(uint ms) /*ms 等于 1時,延時 1ms 等于 2時,延時 2ms,以此類推 */ { uchar a,b,c。a)。 if(P1_4 == 0) j = 1。 //低音 4 7 else if(x == 2) P0 = num[7 + y]。 //高音 2 5 f_l = chuzhi[(33+y)*2 + 1]。 y != 0 amp。 flash 0) flash。amp。 y == 4) i = 16。 } uchar choose2() /*選歌 不用放開按鍵 在暫停的狀態(tài)下使用 */ { uchar i = 0。amp。 /*選了同一首歌時,重播這首歌 (0, 1用來存曲速了 故從 2開始 ) */ } else if(i allsong amp。//播放最后一首 else song_id。 } else if(temp_id == 15) //下一首 { which = 2。 yindiao = ymt[which]。 /*如果既沒有選歌 又沒有停止 返回去做選擇*/ } /********************************************************************************************/ yindiao_l = yindiao % 16。 } pai2 = (2400/qusu)*jiepai。 if(x == 0) break。 /*定時器 0 定時器 1 都采用方式 1( 。 /*播放鍵引腳置高電平,播放結(jié)束的標(biāo)志 */ song_id = 1。 /*延時 = 節(jié)拍數(shù) x 125ms (決定著 1個音的發(fā)聲時間 ) */ TR0 = 0。 /* 高四位 。 //節(jié)拍 } else if(song_id == 2) { key_play = 0。 //播放第一首 else ++song_id。 } else if(temp_id == 15) //下一首 { which = 2。 i 13) /*如果按鍵號 在 最大歌曲序號 和 功能鍵 之間,返回原歌曲序號 */ i = song_id。 else if(x == 4 amp。 y = key_y()。 //選同一首歌時,重播這首歌 } else if(i allsong amp。 else if(x == 2 amp。 } } uchar choose() //播放狀態(tài)下 選歌 { uchar i = 0。 flash 8 ) //最大加到 8 ++flash。 TH0 = song_h。 //中音 5 7 和 高音 1 else if(x == 4) P0 = num[15 + y]。 if(P1_5 == 0) j = 2。 P1 = 0x0f。c0。//延 時 xx ms 函數(shù) void delay(uint pai)。 /*按鍵發(fā)出音調(diào)的初值 (低位) */ uchar f_h。不過,終歸是值得的! 【參考文獻(xiàn)】: 《單片微機(jī)原理、匯編與 C51及接口技術(shù)》(朱定華 戴穎穎 李川香 著) 12 【附錄】: 設(shè)備與儀器: 電腦、單片機(jī)開發(fā)板(或者單片機(jī)燒寫器) 軟件: Keil uVision4 、 DXP 09 原件清單: 原理圖與PCB圖: 序 號 名 稱 數(shù) 量 備 注 1 四腳開關(guān) 18 6x6 mm 2 12Mhz晶振 1 3 30pF陶瓷電容 2 4 10181。所以音樂編碼表中的
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1