• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機演奏音樂原理與模擬實驗

    單片機演奏音樂原理與模擬實驗

    作者: 時間:2011-12-03 來源:網絡 收藏

    利用大概是愛好者感興趣的問題之一。這里我們用網站提供的板來做這個,并且了解的基本,和相關的源程序。

    本文引用地址:http://www.czjhyjcfj.com/article/172389.htm

    首先來完成必要的硬件部分,硬件部分比較簡單,如下圖:

    AT89C51單片機的P2.5口控制一個8550的三極管,三極管控制電磁蜂鳴器的電源通斷。

    我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單處機某個口線的高電平或低電平,則在該口線上就能產生一定頻率的矩形波,接上喇叭就能發出一定頻率的聲音,若再利用延時程序控制“高”“低”電平的持續時間,就能改變輸出頻率,從而改變音調。

    例如,要產生200HZ的音頻信號,200HZ音頻的變化周期為1/200秒,即5ms。這樣,當P2.5的高電平或低電平的持續時間為2.5ms時就能發出200HZ的音調。

    樂曲中,每一音符對應著確定的頻率,我們將每一音符的時間常數和其相應的節拍常數作為一組,按順序將樂曲中的所有常數排列成一個表,然后由查表程序依次取出,產生音符并控制節奏,就可以實現效果。

    此外,結束符和體止符可以分別用代碼00H和FFH來表示,若查表結果為00H,則表示曲子終了;若查表結果為FFH,則產生相應的停頓效果。

    為了產生手彈的節奏感,在某些音符(例如兩個相同音符)音插入一個時間單位的頻率略有不同的音符。

    程序框圖如圖2所示。

    下面給出程序序請單,可直接在51板上進行演奏。本程序演奏的是民歌“八月桂花遍地開”,C調,節奏為94拍/分。網友也可以自行找出一首歌,將樂曲翻譯成碼表輸入機器,而程序不變。本實驗方法簡便,即使不懂的人,將一首陌生的曲子翻譯成代碼也是易事,和著機器的演奏學唱一首歌曲,其趣味無窮。


    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 邵阳市| 博野县| 霍州市| 略阳县| 鲜城| 阿瓦提县| 佳木斯市| 靖远县| 正蓝旗| 宝丰县| 罗甸县| 库伦旗| 深圳市| 白河县| 景德镇市| 阜新| 临夏县| 韩城市| 普安县| 眉山市| 道孚县| 潼南县| 昆山市| 房产| 阜宁县| 崇礼县| 锡林浩特市| 淮滨县| 玛曲县| 松阳县| 延川县| 卢龙县| 建水县| 普兰店市| 利辛县| 大田县| 营口市| 拉孜县| 沂水县| 疏勒县| 崇义县|