單片機(jī)音樂(lè)播放器設(shè)計(jì)報(bào)告.doc
《單片機(jī)音樂(lè)播放器設(shè)計(jì)報(bào)告.doc》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《單片機(jī)音樂(lè)播放器設(shè)計(jì)報(bào)告.doc(19頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
目 錄 1 方案與論證 1 1 1 顯示電路 1 1 2 時(shí)鐘電路 1 2 電子音樂(lè)產(chǎn)生原理 1 2 1 音調(diào) 1 2 2 節(jié)拍 3 3 系統(tǒng)硬件設(shè)計(jì) 6 3 1 系統(tǒng)總框圖 6 3 2 電路設(shè)計(jì) 7 3 2 1 單片機(jī)時(shí)鐘電路 7 3 2 2 復(fù)位電路 8 3 2 3 電源電路 8 3 2 4 USB 程序下載電路 9 3 2 5 蜂鳴器驅(qū)動(dòng)電路 10 3 2 6 顯示電路 11 3 2 8 矩陣電路 11 4 系統(tǒng)軟件設(shè)計(jì) 12 5 總結(jié)與展望 14 6 參考文獻(xiàn) 14 附 錄 15 附錄 1 系統(tǒng)總電路 15 附錄 2 源代碼 16 1 方案與論證 1 1 顯示電路 方案 1 采用LED數(shù)碼管來(lái)顯示 電路簡(jiǎn)單 成本低 方案 2 采用LCD液晶顯示器來(lái)顯示 電路簡(jiǎn)單 成本高 方案3 采用TFT真彩液晶顯示 電路復(fù)雜 成本高 但顯示的分辨率高 綜上所述 選擇方案一進(jìn)行設(shè)計(jì) 1 2 時(shí)鐘電路 方案 1 選擇DS1302實(shí)時(shí)時(shí)鐘芯片來(lái)實(shí)現(xiàn)音樂(lè)播放器 時(shí)間準(zhǔn)確 但要增加額外 開(kāi)銷(xiāo) 方案 2 選擇單片機(jī)的軟件實(shí)時(shí)來(lái)實(shí)現(xiàn)音樂(lè)播放器 靈活性高 時(shí)間不準(zhǔn)確 方案 3 選擇單片機(jī)內(nèi)部可編程定時(shí)器來(lái)實(shí)現(xiàn)音樂(lè)播放器 在不增加額外的開(kāi)銷(xiāo) 前提下 時(shí)間可以做到準(zhǔn)確 綜上所述 選擇方案三進(jìn)行設(shè)計(jì) 2 電子音樂(lè)產(chǎn)生原理 單片機(jī)發(fā)音原理 單片機(jī)演奏音樂(lè)基本是單音頻率 它不包含相應(yīng)幅度的諧波頻 率 也就是說(shuō)不能象電子琴那樣能奏出多種音色的聲音 但一定要弄清楚兩個(gè)概念即 可 也就是 音調(diào) 和 節(jié)拍 音調(diào) 表示一個(gè)音符唱多高的頻率 節(jié)拍 表示一個(gè)音符唱多長(zhǎng)的時(shí)間 下面 就此兩點(diǎn) 闡述說(shuō)明 2 1 音調(diào) 在音樂(lè)中所謂 音調(diào) 其實(shí)就是我們常說(shuō)的 音高 在音樂(lè)中常把中央 C 上方 的 A 音定為標(biāo)準(zhǔn)音高 其頻率 f 440Hz 其余與其比較 f1 和 f2 為兩個(gè)音符 當(dāng)這兩 個(gè)音符的頻率相差一倍時(shí) 也即 f2 2 f1 時(shí) 則稱(chēng) f2 比 f1 高一個(gè)倍頻程 在音樂(lè)中 1 與 2 與 正好相差一個(gè)倍頻程 在音樂(lè)學(xué)中稱(chēng)它相差一個(gè)八度音 在一個(gè) 八度音內(nèi) 有 12 個(gè)半音 以 1 i 八音區(qū)為例 12 個(gè)半音是 1 1 1 2 2 2 2 3 3 4 4 4 4 5 5 一 5 5 6 6 6 6 7 7 i 這 12 個(gè)音階的分度基本上是以對(duì)數(shù)關(guān)系來(lái)劃分的 如果我們只要知道了這十二個(gè)音符 的音高 也就是其基本音調(diào)的頻率 我們就可根據(jù)倍頻程的關(guān)系得到其他音符基本音 調(diào)的頻率 確定一個(gè)頻率所對(duì)應(yīng)的定時(shí)器的定時(shí)初值的方法 以標(biāo)準(zhǔn)音高 A 為例 標(biāo)準(zhǔn)音高 A 的頻率 f 440 Hz 其對(duì)應(yīng)的周期為 T 1 f 1 440 2272 s 因此 需要在單片機(jī) I O 端口輸出周期為 T 2272 s 的方波脈沖 如下圖所示 圖 1 方波脈沖 由上圖可知 單片機(jī)上對(duì)應(yīng)喇叭的 I O 口來(lái)回取反的時(shí)間應(yīng)為 t T 2 2272 2 1136 s 此處分兩種方式敘述 請(qǐng)比較選用 其實(shí)結(jié)果相同 這個(gè)時(shí)間 t 也就是單片機(jī)上定時(shí)器應(yīng)有的中斷觸發(fā)時(shí)間 一般情況下 單片機(jī)奏樂(lè)時(shí) 其定時(shí)器 為工作方式 1 它以振蕩器的十二分頻信號(hào)為計(jì)數(shù)脈沖 設(shè)振蕩器頻率為 f0 則定時(shí) 器的予置初值由下式來(lái)確定 t 12 T ALL THL f0式中 T ALL 216 65536 T HL為定時(shí)器待確定的計(jì)數(shù)初值 因此定時(shí)器的高低計(jì)數(shù)器的初值為 TH THL 256 TALL t f0 12 256 TL THL 256 TALL t f0 12 256 將 t 1136 s 代入上面兩式 注意 計(jì)算時(shí)應(yīng)將時(shí)間和頻率的單位換算一致 即 可求出標(biāo)準(zhǔn)音高 A 在單片機(jī)晶振頻率 f0 12Mhz 定時(shí)器在工作方式 1 下的定時(shí)器高低 計(jì)數(shù)器的預(yù)置初值為 TH440Hz 65536 1136 12 12 256 FBH TL440Hz 65536 1136 12 12 256 90H 根據(jù)上面的求解方法 我們就可求出其他音調(diào)相 應(yīng)的計(jì)數(shù)器的予置初值 假設(shè)單片機(jī)晶振頻率 f0 12Mhz 定時(shí)器在工作方式 1 計(jì)數(shù) 脈沖值與頻率的關(guān)系為 N FI 2 FR 其中 N 計(jì)數(shù)值 FI 內(nèi)部計(jì)時(shí)一次為 1us 故其頻率為 1MHz FR 要產(chǎn)生 的頻率 其計(jì)數(shù)值的求法為 T 65536 N 65536 F I 2 FR 則標(biāo)準(zhǔn)音高 A 頻率 f 440 Hz 的計(jì)數(shù)值為 T 65536 N 65536 F I 2 FR 65536 1000000 2 FR 65536 500000 440 65536 1136 64400 0FB90H 下面給出 C 調(diào)各音符頻率值和定時(shí)器 定時(shí)初值 晶振頻率 f0 12Mhz 定時(shí)器在工作方式 1 表 1 C 調(diào)各音符頻率值和定時(shí)初值對(duì)照表 C 調(diào) 音符 1 1 2 2 3 4 4 5 5 6 6 7 頻率 Hz 262 277 293 311 329 349 370 392 415 440 466 494 TH TL F88B F8F2 F9B7 FA14 FA66 FAB9 FB03 FB4A FB8F FBCF FBCF FC0B C 調(diào) 音符 1 1 2 4 5 6 頻率 Hz 523 553 586 621 658 697 739 783 830 879 931 987 TH TL FC43 FC78 FCAB FCDB FD08 FD33 FD5B FD81 FDA5 FDC7 FDE7 FE05 C 調(diào) 音符 1 1 2 2 3 4 4 5 5 6 6 7 頻率 Hz 1045 1106 1171 1241 1316 1393 1476 1563 1658 1755 1860 1791 TH TL FB21 FE3C FE55 FE6D FE84 FE99 FEAD FEC0 FE02 FEE3 FEF3 FF02 對(duì)于非 C 調(diào)的歌曲 要對(duì)各音符的頻率做相應(yīng)的變化 調(diào)號(hào) 音樂(lè)上指用以確定樂(lè)曲主音高度的符號(hào) 升 C 調(diào) 1 C 也就是降 D 調(diào) 1 bD 277 頻率 升 D 調(diào) 1 D 也就是降 E 調(diào) 1 bE 311 升 F 調(diào) 1 F 也就是降 G 調(diào) 1 bG 369 升 G 調(diào) 1 G 也就是降 A 調(diào) 1 bA 415 升 A 調(diào) 1 A 也就是降 B 調(diào) 1 bB 4 所謂 1 A 就是說(shuō) 這首歌曲的 導(dǎo) 即作為基調(diào)的中音 DO 要唱得同 A 音 符一樣高 其它各音符依次向后遞推 通常把這首歌曲叫做 A 調(diào)歌曲 或叫 唱 A 調(diào) 1 C 就是說(shuō) 這首歌曲的 導(dǎo) 要唱得同 C 一樣高 或者說(shuō) 這歌曲唱 C 調(diào) 同樣 是 導(dǎo) 不同的調(diào)唱起來(lái)的高低是不一樣的 在遞推的時(shí)候要嚴(yán)格按各音符間音程關(guān) 系進(jìn)行 全音還是半音 只有 3 4 和 7 i 之間是半音關(guān)系 其它音之間都是全音關(guān) 系 下面以 1 D 調(diào)進(jìn)行說(shuō)明 參照上面的鋼琴鍵盤(pán)圖和表 1 確定出 D 調(diào)各音符對(duì)應(yīng)的頻率值為 到后來(lái)制表 時(shí)就以各音符對(duì)應(yīng)的新頻率值確定定時(shí)初值 2 2 節(jié)拍 音符的節(jié)拍我們可以舉例來(lái)說(shuō)明 在一張樂(lè)譜中 我們經(jīng)常會(huì)看到這樣的表達(dá)式 如 1 C 1 G 等等 這里 1 C 1 G 表示樂(lè)譜的曲調(diào) 和我們前面所談的音調(diào)43 有很大的關(guān)聯(lián) 就是用來(lái)表示節(jié)拍的 以 為例加以說(shuō)明 它表示樂(lè)譜中以四4343 分音符為節(jié)拍 每一小結(jié)有三拍 比如 其中 1 2 為一拍 3 4 5 為一拍 6 為一拍共三拍 1 2 的時(shí)長(zhǎng)為四分音符 的一半 即為八分音符長(zhǎng) 3 4 的時(shí)長(zhǎng)為八分音符的一半 即為十六分音符長(zhǎng) 5 的 時(shí)長(zhǎng)為四分音符的一半 即為八分音符長(zhǎng) 6 的時(shí)長(zhǎng)為四分音符長(zhǎng) 那么一拍到底該唱 多長(zhǎng)呢 一般說(shuō)來(lái) 如果樂(lè)曲沒(méi)有特殊說(shuō)明 一拍的時(shí)長(zhǎng)大約為 400 500ms 我們以 一拍的時(shí)長(zhǎng)為 400ms 為例 則當(dāng)以四分音符為節(jié)拍時(shí) 四分音符的時(shí)長(zhǎng)就為 400ms 八 分音符的時(shí)長(zhǎng)就為 200ms 十六分音符的時(shí)長(zhǎng)就為 100ms 若樂(lè)譜有特別說(shuō)明則另行對(duì) 待 如有樂(lè)譜中注明每分鐘 86 拍 則一拍時(shí)間為 60 86s 698ms 可見(jiàn) 在單片機(jī)上控 制一個(gè)音符唱多長(zhǎng)可采用循環(huán)延時(shí)的方法來(lái)實(shí)現(xiàn) 首先 我們確定一個(gè)基本時(shí)長(zhǎng)的延 時(shí)程序 比如說(shuō)以十六分音符的時(shí)長(zhǎng)為基本延時(shí)時(shí)間 那么 對(duì)于一個(gè)音符 如果它 為十六分音符 則只需調(diào)用一次延時(shí)程序 如果它為八分音符 則只需調(diào)用二次延時(shí) 程序 如果它為四分音符 則只需調(diào)用四次延時(shí)程序 依次類(lèi)推 具體來(lái)說(shuō) 每個(gè)音符使用一個(gè)字節(jié) 字節(jié)的高 4 位代表音符的高低 低 4 位 代表音符的節(jié)拍 節(jié)拍與節(jié)拍碼的對(duì)照 如下表所示 表 2 節(jié)拍與節(jié)拍碼的對(duì)照表 節(jié)拍碼 節(jié)拍數(shù) 節(jié)拍碼 節(jié)拍數(shù) 1 十六分音符 1 4 拍 為 1DELAY 1 1 8 拍 2 八分音符 2 4 拍 2 1 4 拍 3 3 4 拍 3 3 8 拍 4 四分音符 1 拍 4 1 2 拍 5 1 又 1 4 拍 5 5 8 拍 6 1 又 1 2 拍 6 3 4 拍 8 二分音符 2 拍 8 1 拍 10 A 2 又 1 2 拍 A 1 又 1 4 拍 12 C 3 拍 C 1 又 1 2 拍 15 F 3 又 3 4 拍 16 全音符 4 拍 以 1 4 拍 十六分音符 為一個(gè)基準(zhǔn)定時(shí)單位 1DELAY 則 2 4 拍 八分音 符 為 2DELAY 1 拍 四分音符 為 4DELAY 2 拍 二分音符 為 8DELAY 4 拍 全音符 為 16DELAY 1 4 和 1 8 節(jié)拍的時(shí)間設(shè)定 如下表所示 表 3 各調(diào)節(jié)拍時(shí)間設(shè)定表 1 4 節(jié)拍的時(shí)間設(shè)定 1 8 節(jié)拍的時(shí)間設(shè)定 曲調(diào)值 DELAY 曲調(diào)值 DELAY 調(diào) 4 4 125ms 調(diào) 4 4 62ms 調(diào) 3 4 187ms 調(diào) 3 4 94ms 調(diào) 2 4 250ms 調(diào) 2 4 125ms 通過(guò)上面介紹的音符音調(diào)和節(jié)拍的相關(guān)知識(shí) 以及它們?cè)趩纹瑱C(jī)系統(tǒng)中的確定方 法 我們就可以在單片機(jī)上實(shí)現(xiàn)演奏音樂(lè)了 具體的實(shí)現(xiàn)方法為 將樂(lè)譜中的每個(gè)音 符的音調(diào)及節(jié)拍變換成相應(yīng)的音調(diào)參數(shù)和節(jié)拍參數(shù) 將他們做成數(shù)據(jù)表格 存放在存 儲(chǔ)器中通過(guò)程序取出一個(gè)音符的相關(guān)參數(shù) 播放該音符 該音符唱完后 接著取出下 一個(gè)音符的相關(guān)參數(shù) 如此直到播放完畢最后一個(gè)音符 根據(jù)需要也可循環(huán)不停 地播放整個(gè)樂(lè)曲 請(qǐng)注意 用單片機(jī)上實(shí)現(xiàn)音樂(lè)演奏關(guān)鍵在于 根據(jù)樂(lè)譜制作出數(shù)據(jù) 表格 編程在其次 這個(gè)過(guò)程很耗費(fèi)時(shí)間和精力 另外 對(duì)于樂(lè)曲中的休止符 一般 將其音調(diào)參數(shù)設(shè)為 FFH 或 00H 其節(jié)拍參數(shù)與其它音符的節(jié)拍參數(shù)確定方法一致 樂(lè)曲 結(jié)束用節(jié)拍參數(shù)為 00H 來(lái)表示 實(shí)例說(shuō)明建立音樂(lè)的方法 1 建立簡(jiǎn)譜對(duì)應(yīng)的簡(jiǎn)譜碼 T 值及節(jié)拍數(shù)表 畫(huà)在草稿紙上 先對(duì)照歌曲的簡(jiǎn)譜把其中所有出現(xiàn)的音符找出 從 低音到高音依次排序 確定各音的數(shù)值 編寫(xiě)查表程序時(shí)將此值減 1 即得對(duì)應(yīng)音符相 對(duì)于 TABL1 表頭的偏移量 對(duì)于不是 C 調(diào)的歌曲 要對(duì)各音符的頻率做相應(yīng)的變化 對(duì)照歌曲的簡(jiǎn)譜確定各音符的節(jié)拍數(shù)相對(duì)于基準(zhǔn)定時(shí)單位的倍數(shù) 從小到大排列 各音符時(shí)值的倍數(shù)關(guān)系是確定不變的 關(guān)鍵要正確確定其值 這需要懂一點(diǎn)簡(jiǎn)譜知識(shí) 才能準(zhǔn)確的確定出樂(lè)譜中音符節(jié)拍數(shù) 以歌曲蘭花草為例 如下表 表 4 簡(jiǎn)譜 發(fā)音 這一列知道就行不必寫(xiě)出 簡(jiǎn)譜碼 T 值 節(jié)拍碼 節(jié)拍數(shù) 低 3 低音 MI 1 64021 1 1 4 拍 低 4 低音 FA 2 64103 2 2 4 拍 低 5 低音 SO 3 64260 3 3 4 拍 低 6 低音 LA 4 64400 4 1 拍 低 7 低音 TI 5 64254 5 1 又 1 4 拍 中 1 中音 DO 6 64580 6 1 又 1 2 拍 中 2 中音 RE 7 64684 8 2 拍 中 3 中音 MI 8 64777 10 A 2 又 1 2 拍 中 4 中音 FA 9 64820 12 C 3 拍 中 5 中音 SO A 64898 15 F 3 又 3 4 拍 中 6 中音 LA B 64968 16 4 拍 中 7 中音 TI C 65030 休止符 不發(fā)音 0 關(guān)定時(shí)器 注 以四分音符為一拍 現(xiàn)在以 1 4 拍為定時(shí)的基準(zhǔn)單位 為 1DELAY 則 1 拍應(yīng) 為 4 倍 DELAY 依次類(lèi)推 所以只要求得 1 4 拍的 DELAY 時(shí)間 其余的節(jié)拍數(shù)就是它的 倍數(shù) 2 把各音符頻率對(duì)應(yīng)的定時(shí) T 值建立在 TABLE1 表 各音符頻率對(duì)應(yīng)的定時(shí)值 表 TABLE1 DW 64021 64103 64260 64400 DW 64524 64580 64684 64777 DW 64820 64898 64968 65030 3 根據(jù)第一步建立的表 建立樂(lè)曲對(duì)應(yīng)音符 節(jié)拍碼表 TABLE 其中簡(jiǎn)譜碼 音符 在高 4 位 但是此種方法只能排 16 個(gè)音 若樂(lè) 譜中音符較多可占一個(gè)字節(jié)來(lái)表示 節(jié)拍碼 節(jié)拍數(shù) 在低 4 位 但此種方法也只能 最大延時(shí) 15 個(gè)基準(zhǔn)定時(shí)單位的時(shí)間 TABLE 歌曲蘭花草的音符與節(jié)拍碼表 高 4 位為簡(jiǎn)譜碼 音符 低 4 位為該音符對(duì)應(yīng)的節(jié)拍數(shù) DB 42H 82H 82H 82H 84H 02 72H DB 62H 72H 62H 52H 48H DB0B2H 0B2H 0B2H 0B2H 0B4H 02H 0A2HDB12H 0A2H 0D2H 92H 88H DB 82H 0B2H 0B2H 0A2H 84H 02H 72H DB 62H 72H 62H 52H 44H 02H 12H DB 12H 62H 62H 52H 44H 02H 82H DB 72H 62H 52H 32H 48H DB 00H 3 系統(tǒng)硬件設(shè)計(jì) 3 1 系統(tǒng)總框圖 電路主要由AT89C51芯片 LED發(fā)光二極管 喇叭 晶振電路組成 由引腳輸出定 時(shí)器產(chǎn)生的各種固定頻率的方波信號(hào) 然后由喇叭產(chǎn)生各種頻率的聲音 同理 方波 信號(hào)通過(guò)發(fā)光二極管可以使二極管閃爍發(fā)光 產(chǎn)生韻律燈的效果 由于該方案中使用 內(nèi)部振蕩電路 XTAL1 XTAL2引腳外界石英晶體和微調(diào)電容構(gòu)成的晶振電路 晶振電路 存儲(chǔ)器擴(kuò)展電路 4 4 矩陣電路 A T 8 9 C 5 1 復(fù)位電路 蜂鳴器 數(shù)碼管 圖2 系統(tǒng)框圖 3 2 電路設(shè)計(jì) 音樂(lè)播放器的硬件電路主要是以下8大部分 3 2 1 單片機(jī)時(shí)鐘電路 1 2 3 4 5 6 A B C D 654321 D C B A Title Nu mber R ev isio nS ize B Date 1 2 Ju n 2 0 11 S heet o f F ile F 動(dòng)動(dòng) p ro tel 動(dòng)動(dòng)動(dòng)動(dòng)動(dòng)動(dòng) 動(dòng)動(dòng)動(dòng)動(dòng) 動(dòng)動(dòng)動(dòng)動(dòng)動(dòng)動(dòng) Dd bDrawn B y C 4 3 0p C 5 3 0p Y2 1 1 0 59 2 M X 1 X 2 圖3 單片機(jī)時(shí)鐘電路 單片機(jī)時(shí)鐘電路是用來(lái)配合外部晶體實(shí)現(xiàn)振蕩的電路 這樣可以為單片機(jī)提供運(yùn) 行時(shí)鐘 如果運(yùn)行時(shí)鐘為 0 的話(huà) 單片機(jī)就不工作 當(dāng)然超出單片機(jī)的工作頻率的時(shí) 鐘也會(huì)導(dǎo)致單片機(jī)不工作 在 MCS 51 單片機(jī)片內(nèi)有一個(gè)高增益的反相放大器 反相 放大器的輸入端為 XTAL1 輸出端為 XTAL2 由該放大器構(gòu)成的振蕩電路和時(shí)鐘電路一 起構(gòu)成了單片機(jī)的時(shí)鐘方式 根據(jù)硬件電路的不同 單片機(jī)的時(shí)鐘連接方式可分為內(nèi) 部時(shí)鐘方式和外部時(shí)鐘方式 在內(nèi)部方式時(shí)鐘電路中 必須在 XTAL1 和 XTAL2 引腳兩 端跨接石英晶體振蕩器和兩個(gè)微調(diào)電容構(gòu)成振蕩電路 通常 C1 和 C2 一般取 30pF 晶 振的頻率取值在 1 2MHz 12MHz 之間 對(duì)于外接時(shí)鐘電路 要求 XTAL1 接地 XTAL2 腳 接外部時(shí)鐘 對(duì)于外部時(shí)鐘信號(hào)并無(wú)特殊要求 只要保證一定的脈沖寬度 時(shí)鐘頻率 低于 12MHz 即可 晶體振蕩器的振蕩信號(hào)從 XTAL2 端送入內(nèi)部時(shí)鐘電路 它將該振蕩 信號(hào)二分頻 產(chǎn)生一個(gè)兩相時(shí)鐘信號(hào) P1 和 P2 供單片機(jī)使用 時(shí)鐘信號(hào)的周期稱(chēng)為狀 態(tài)時(shí)間 S 它是振蕩周期的 2 倍 P1 信號(hào)在每個(gè)狀態(tài)的前半周期有效 在每個(gè)狀態(tài)的 后半周期 P2 信號(hào)有效 CPU 就是以?xún)上鄷r(shí)鐘 P1 和 P2 為基本節(jié)拍協(xié)調(diào)單片機(jī)各部分有 效工作的 3 2 2 復(fù)位電路 S1RETC2uf0K4V 圖4 復(fù)位電路 復(fù)位電路就好比電腦的重啟部分 當(dāng)電腦在使用中出現(xiàn)死機(jī) 按下重啟按鈕電腦 內(nèi)部的程序從頭開(kāi)始執(zhí)行 單片機(jī)也一樣 當(dāng)單片機(jī)系統(tǒng)在運(yùn)行中 受到環(huán)境干擾出 現(xiàn)程序跑飛的時(shí)候 按下復(fù)位按鈕內(nèi)部的程序自動(dòng)從頭開(kāi)始執(zhí)行 在單片機(jī)系統(tǒng)中 系統(tǒng)上電啟動(dòng)的時(shí)候復(fù)位一次 當(dāng)按鍵按下的時(shí)候系統(tǒng)再次復(fù)位 如果釋放后再按下 系統(tǒng)還會(huì)復(fù)位 所以可以通過(guò)按鍵的斷開(kāi)和閉合在運(yùn)行的系統(tǒng)中控制其復(fù)位 在電路圖中 電容的的大小是 10uF 電阻的大小是 10k 所以根據(jù)公式 可以算 出電容充電到電源電壓的 0 7 倍 單片機(jī)的電源是 5V 所以充電到 0 7 倍即為 3 5V 需要的時(shí)間是 10K 10UF 0 1S 也就是說(shuō)在電腦啟動(dòng)的 0 1S 內(nèi) 電容兩端的電壓時(shí)在 0 3 5V 增加 這個(gè)時(shí)候 10K 電阻兩端的電壓為從 5 1 5V 減少 串聯(lián)電路各處電壓之和 為總電壓 所以在 0 1S 內(nèi) RST 引腳所接收到的電壓是 5V 1 5V 在 5V 正常工作的 51 單片機(jī)中小于 1 5V 的電壓信號(hào)為低電平信號(hào) 而大于 1 5V 的電壓信號(hào)為高電平信 號(hào) 所以在開(kāi)機(jī) 0 1S 內(nèi) 單片機(jī)系統(tǒng)自動(dòng)復(fù)位 RST 引腳接收到的高電平信號(hào)時(shí)間為 0 1S 左右 3 2 3 電源電路 AC1V 23 4DkBP 0RK uf75inGdLM8NJO9s 圖5 電源電路 電 源 電 路 是 指 提 供 給 用 電 設(shè) 備 電 力 供 應(yīng) 的 電 源 部 分 的 電 路 設(shè) 計(jì) 使 用 的 電 路 形 式 和 特 點(diǎn) 電 源 有 交 流 電 源 也 有 直 流 電 源 直 流 電 源 電 路 分 為 開(kāi) 關(guān) 電 源 和 非 開(kāi) 關(guān) 電 源 兩 種 形 式 電 路 也 大 不 相 同 開(kāi) 關(guān) 電 源 一 般 不 使 用 變 壓 器 非 開(kāi) 關(guān) 電 源 是 傳 統(tǒng) 的 設(shè) 計(jì) 方 式 電 源 電 路 里 多 使 用 變 壓 器 來(lái) 變 壓 后 再 整 流 濾 波 的 方 式 幾 個(gè) 組 件 通 過(guò) 導(dǎo) 線(xiàn) 互 相 連 接 形 成 電 路 也 可 以 稱(chēng) 為 網(wǎng)絡(luò) 更 特 定 地 電 路 是 可 以 形 成 閉合回路 的 網(wǎng) 絡(luò) 支 路 是 電 路 的 一 部 分 每 一 個(gè) 組 件 都 有 它 獨(dú) 屬 的 支 路 任 意 兩 條 或 多 條 支 路 的 相 交 點(diǎn) 稱(chēng) 為 節(jié) 點(diǎn) 幾 個(gè) 組 件 通 過(guò) 導(dǎo) 線(xiàn) 互 相 連 接 形 成 電 路 也 可 以 稱(chēng) 為 網(wǎng) 絡(luò) 更 特 定 地 電 路 是 可 以 形 成 閉 合 回 路 的 網(wǎng) 絡(luò) 3 2 4 USB 程序下載電路 6IbUS 圖6 USB下載電路 USB 即 Universal Serial Bus 中文名稱(chēng)為通用串行總線(xiàn) 這是近幾年逐步 在 PC 領(lǐng)域廣為應(yīng)用的新型接口技術(shù) USB 接口具有傳輸速度更快 支持熱插拔以及連 接多個(gè)設(shè)備的特點(diǎn) 目前已經(jīng)在各類(lèi)外部設(shè)備中廣泛的被采用 目前 USB 接口有兩種 USB1 1 和 USB2 0 USB 接口的輸出電壓為直流 5V 輸出電流不大于 500 毫安 PC 機(jī)的 USB 接口可以連接外設(shè) 復(fù)合設(shè)備和集線(xiàn)器 最多可以連接 5 級(jí)集線(xiàn)器 最多可連接 127 臺(tái)外設(shè)和集線(xiàn)器 USB1 1 的高速模式為 12Mb s 低速模式為 1 5Mb s USB 采用 半雙工傳輸方式 但當(dāng)一個(gè) USB 連接多個(gè)設(shè)備時(shí) 各個(gè)設(shè)備共享 12Mb s 的傳輸帶寬 在傳輸?shù)男畔⒅羞€攜帶有狀態(tài) 控制和差錯(cuò)校驗(yàn)信息 實(shí)際的信息傳輸速率要低一些 只連接一臺(tái)設(shè)備時(shí) 最高有效傳輸速率約為 9 6Mb s USB2 0 的最高傳輸速率為 480Mb s USB 采用平衡傳輸方式 抗干擾性好 USB 帶糾錯(cuò)能力 可完成對(duì)軟件透明 的檢錯(cuò)和重發(fā) 3 2 5 蜂鳴器驅(qū)動(dòng)電路 R3ES2Q1890JDPAKVC 圖7 蜂鳴器驅(qū)動(dòng)電路 蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器 他廣泛應(yīng)用于計(jì)算機(jī) 打印機(jī) 復(fù)印機(jī) 報(bào)警器 電話(huà)機(jī)等電子產(chǎn)品中作發(fā)聲器件 蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類(lèi)型 電磁式蜂鳴器由振蕩器 電磁線(xiàn)圈 磁鐵 振動(dòng)膜片及外殼等組成 接通電源后 振蕩器產(chǎn)生的音頻信號(hào)電流通過(guò)電磁線(xiàn)圈 使電磁線(xiàn)圈產(chǎn)生磁場(chǎng) 振動(dòng)膜片在電磁線(xiàn) 圈和磁鐵的相互作用下 周期性地振動(dòng)發(fā)聲 蜂鳴器發(fā)聲原理是電流通過(guò)電磁線(xiàn)圈 使電磁線(xiàn)圈產(chǎn)生磁場(chǎng)來(lái)驅(qū)動(dòng)振動(dòng)膜發(fā)聲的 因此需要一定的電流才能驅(qū)動(dòng)它 單片機(jī) IO 引腳輸出的電流較小 單片機(jī)輸出的 TTL 電平基本上驅(qū)動(dòng)不了蜂鳴器 因此需要增加一個(gè)電流放大的電路 S51 增強(qiáng)型單片機(jī)實(shí) 驗(yàn)板通過(guò)一個(gè)三極管 C8550 來(lái)放大驅(qū)動(dòng)蜂鳴器 原理圖見(jiàn)下面圖 3 蜂鳴器的正極接到 VCC 5V 電源上面 蜂鳴器的負(fù)極接到三極管的發(fā)射極 E 三極管的基級(jí) B 經(jīng)過(guò)限流電阻 R1 后由單片機(jī)的 P3 7 引腳控制 當(dāng) P3 7 輸出高電平時(shí) 三極管 T1 截止 沒(méi)有電流流過(guò)線(xiàn)圈 蜂鳴器不發(fā)聲 當(dāng) P3 7 輸出低電平時(shí) 三極管 導(dǎo)通 這樣蜂鳴器的電流形成回路 發(fā)出聲音 因此 我們可以通過(guò)程序控制 P3 7 腳 的電平來(lái)使蜂鳴器發(fā)出聲音和關(guān)閉 3 2 6 顯示電路 本設(shè)計(jì)顯示是采用液晶顯示器LCD1602進(jìn)行顯示 LCD1602的功能 P0口是一個(gè)地 址 數(shù)據(jù)復(fù)用的雙向I O口 當(dāng)使用P0口訪(fǎng)問(wèn)外部存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器時(shí) P0口內(nèi)部已 有上拉電阻 當(dāng) P0口作程序檢驗(yàn) 輸出指令字節(jié)時(shí) 必須外界上拉電阻 LCD1602的控 制信號(hào)RS RW E分別接到單片機(jī)的P2 0 P2 1 P2 2 本設(shè)計(jì)中主要用LCD1602顯示 開(kāi)機(jī)畫(huà) VS1D23R4W560789BLAKJCP GN 圖8 液晶顯示 3 2 8 矩陣電路 采用4 4行列式鍵盤(pán)來(lái)實(shí)現(xiàn)選擇歌曲播放 以及對(duì)歌曲號(hào)做基本的操作 即上一曲 下一曲以及暫停 播放 H 圖8 矩陣電路 4 系統(tǒng)軟件設(shè)計(jì) 本設(shè)計(jì)采用了自定義下的流程圖 主要程序流程有 主程序 判斷有無(wú)按鍵子程 序 鍵盤(pán)掃描子程序 顯示鍵號(hào) 歌曲號(hào)子程序 開(kāi)機(jī)畫(huà)面子程序 按鍵值播放歌曲子 程序等 程序中使用了兩個(gè)定時(shí)中斷 定時(shí)中斷 0 用于產(chǎn)生整個(gè)音程的頻率 以便驅(qū) 動(dòng)揚(yáng)聲器 程序的總體流程是當(dāng) P1 由按鍵按下時(shí) 讀鍵盤(pán) 并儲(chǔ)存鍵值 若為 F 鍵則 通過(guò)查表的方式 調(diào)用字符串下手鍵號(hào) 曲目子程序 將鍵號(hào)顯示出來(lái) 若為 1 A 程 序根據(jù)儲(chǔ)存的鍵號(hào) 將相應(yīng)歌曲的表頭地主賦給 DPTR 取出曲譜 判斷是否為休止符 通過(guò)查表的方式將表中的定時(shí)器初值裝入定時(shí)器 T0 在定時(shí)中斷 0 里面 重裝初值 將輸出口取反 完成發(fā)聲 在此設(shè)計(jì)中 每發(fā)一個(gè)調(diào) 調(diào)用一個(gè) 30MS 的延時(shí) 一次當(dāng) 做曲譜的節(jié)拍碼 在此過(guò)程中若有功能鍵按下 將當(dāng)前歌曲的表頭地址加 513 減 513 或等待 于此同時(shí)調(diào)用播放時(shí)間初始化子程序 顯示 00 00 00 裝定時(shí)器 T1 的初值 準(zhǔn)備更新播放時(shí)間 程序流程如圖 9 所示 開(kāi)始 顯示初始 化 內(nèi)存初始 化 有無(wú)按鍵 判斷鍵值并存儲(chǔ) 取鍵值 ASCII 碼顯 示 1 A 鍵 播放時(shí)間初始 化 按鍵值存儲(chǔ)相應(yīng)曲譜首 地址 開(kāi)機(jī)畫(huà)面 取樂(lè)譜進(jìn)行演奏 F 鍵 有無(wú)功能鍵 裝 T1 初值刷新播放時(shí)間 單獨(dú)唱完 全部唱完 結(jié)束 暫停 上 1 曲 下 1 曲 樂(lè)譜首地址加 513 樂(lè)譜首地址減 513 等待 再一次按下 下 是 無(wú) 有 否 否 是 是 是 是否 否 否 否 否 有 無(wú) 是 是 是 圖 9 音樂(lè)播放器程序流程圖 5 總結(jié)與展望 通過(guò)這幾天的單片機(jī)的實(shí)訓(xùn) 我在理論的基礎(chǔ)上更深刻的掌握了單片機(jī)的深層內(nèi) 容及實(shí)際生活中的應(yīng)用 實(shí)訓(xùn)鍛煉了自己的動(dòng)手能力和思維能力 還有在軟件方面的 編程能力 讓我受益匪淺 學(xué)會(huì)了如何制作單片機(jī)應(yīng)用程序 并且可以在今后的日常 生活中靈活運(yùn)用 在單片機(jī)音樂(lè)播放器的制作過(guò)程中 在設(shè)計(jì)中因?yàn)榕平M的方向出現(xiàn)錯(cuò)誤 導(dǎo)致電 路無(wú)法連接成功 但是經(jīng)過(guò)修改正確后 效果還是比較理想 也說(shuō)明動(dòng)手能力還有不 足 仍有待提高 現(xiàn)將本次的設(shè)計(jì)總結(jié)如下 5 1 加深了對(duì) 16 位單片機(jī)結(jié)構(gòu)和原理的了解 5 2 基本掌握了用 Altium Desinger Summer09 Keil uvision4 Protues7 Profession Microsoft Visio 的制圖的方法 5 3 再次溫習(xí)數(shù)字電路與模擬電路 提高了分析電路原理圖的能力 綜合了解了不同的 使用與制圖方法 總結(jié)了分析電路原理的方法 5 4 遇到不懂時(shí) 多動(dòng)腦 多看 多聽(tīng) 虛心接受別人給予的意見(jiàn)但不改變自己的初衷 在肯定成績(jī)的同時(shí)也要指出缺點(diǎn)和不足 5 5 今后 我會(huì)更加努力學(xué)習(xí) 認(rèn)真掌握老師所講的知識(shí) 勤動(dòng)腦 勤動(dòng)手 相信有一 天 我會(huì)以?xún)?yōu)秀的成績(jī)來(lái)回報(bào)老師 回報(bào)學(xué)校 回報(bào)社會(huì) 6 參考文獻(xiàn) 1 侯玉寶 陳忠平 李成群 基于 Proteus 的 51 系列單片機(jī)設(shè)計(jì)與仿真 M 北京 電子工業(yè)出版 社 2008 2 沈德金 陳粵初 MCS 51 系列單片機(jī)接口電路與應(yīng)用程序?qū)嵗?M 北京航空航天大學(xué)出版 社 1990 3 胡漢才 單片機(jī)原理及接口技術(shù) M 清華大學(xué)出版社 1996 4 何立民 MCS 51 系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì) M 北京航空航天大學(xué)出版社 1990 1 5 張毅剛 彭喜元 姜守達(dá) 喬立巖 新編 MCS 51 系列單片機(jī)應(yīng)用設(shè)計(jì) M 哈爾濱工業(yè)大學(xué)出 版社 2003 6 附 錄 附錄 1 系統(tǒng)總電路 P 02345678RST9 XD INWALGE OVpcCUKFYMHzJB Qinoutsb 附錄 2 源代碼 include 包含頭文件 一般情況不需要改動(dòng) 頭文件包含 特殊功能寄存器的定義 sbit speaker P1 2 定義音樂(lè)輸出端口 需要連接到對(duì)應(yīng)的喇叭 請(qǐng)參 考電路圖 unsigned char timer0h timer0l time 送別數(shù)據(jù)表 code unsigned char sszymmh 6 2 3 5 2 1 3 2 2 5 2 2 1 3 2 6 2 1 5 2 1 6 2 4 3 2 2 5 2 1 6 2 1 5 2 2 3 2 2 1 2 1 6 1 1 5 2 1 3 2 1 2 2 4 2 2 3 3 2 1 5 2 2 5 2 1 6 2 1 3 2 2 2 2 2 1 2 4 5 2 3 3 2 1 2 2 1 1 2 1 6 1 1 1 2 1 5 1 6 0 0 0 音階頻率表 高八位 code unsigned char FREQH 0 xF2 0 xF3 0 xF5 0 xF5 0 xF6 0 xF7 0 xF8 0 xF9 0 xF9 0 xFA 0 xFA 0 xFB 0 xFB 0 xFC 0 xFC 1 2 3 4 5 6 7 8 i 0 xFC 0 xFD 0 xFD 0 xFD 0 xFD 0 xFE 0 xFE 0 xFE 0 xFE 0 xFE 0 xFE 0 xFE 0 xFF 音階頻率表 低八位 code unsigned char FREQL 0 x42 0 xC1 0 x17 0 xB6 0 xD0 0 xD1 0 xB6 0 x21 0 xE1 0 x8C 0 xD8 0 x68 0 xE9 0 x5B 0 x8F 1 2 3 4 5 6 7 8 i 0 xEE 0 x44 0 x6 B 0 xB4 0 xF4 0 x2D 0 x47 0 x77 0 xA2 0 xB6 0 xDA 0 xFA 0 x16 延時(shí)函數(shù) void delay unsigned char t unsigned char t1 unsigned long t2 for t1 0 t1 t t1 for t2 0 t2 8000 t2 TR0 0 定時(shí)器中斷函數(shù) void t0int interrupt 1 TR0 0 speaker speaker TH0 timer0h TL0 timer0l TR0 1 音樂(lè)處理函數(shù) void song TH0 timer0h TL0 timer0l TR0 1 delay time 主函數(shù) void main void unsigned char k i TMOD 1 置 CT0 定時(shí)工作方式 1 EA 1 ET0 1 IE 0 x82 CPU 開(kāi)中斷 CT0 開(kāi)中斷 while 1 i 0 while i 100 音樂(lè)數(shù)組長(zhǎng)度 唱完從頭再來(lái) k sszymmh i 7 sszymmh i 1 1 timer0h FREQH k timer0l FREQL k time sszymmh i 2 i i 3 song- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 單片機(jī) 音樂(lè) 播放 設(shè)計(jì) 報(bào)告
鏈接地址:http://www.3dchina-expo.com/p-9613442.html