找回密碼
         注冊會員
        搜索附件  
        MCU資訊論壇 附件中心 單片機論壇 51單片機論壇 單片機音樂演奏系統.doc

        單片機音樂演奏系統.doc

         

        求助“單片機音樂演奏系統”論文 急!!! 高手幫忙下 謝謝:
        還望高手幫個忙啊 謝謝了先
        利用單片機演奏音樂大概是單片機愛好者感興趣的問題之一。這里我們用網站提供的實驗板來做這個實驗,并且了解單片機演奏音樂的基本原理,和相關的源程序。

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


        720){this.width=720;this.height=720/tempx*tempy}">

        720){this.width=720;this.height=720/tempx*tempy}">
        AT89C51單片機的P2.5口控制一個8550的三極管,三極管控制電磁蜂鳴器的電源通斷。

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

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

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

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

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

        程序框圖如圖2所示。


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

        ;標題 '八月桂花香'發聲程序



        ORG 0000H

        LJMP START

        ORG 000BH

        INC 20H ;中斷服務,中斷計數器加1

        MOV TH0,#0D8H

        MOV TL0,#0EFH ;12M晶振,形成10毫秒中斷

        RETI

        START:

        MOV SP,#50H

        MOV TH0,#0D8H

        MOV TL0,#0EFH

        MOV TMOD,#01H

        MOV IE,#82H

        MUSIC0:

        NOP

        MOV DPTR,#DAT ;表頭地址送DPTR

        MOV 20H,#00H ;中斷計數器清0

        MUSIC1:

        NOP

        CLR A ;A清零

        MOVC A,@A+DPTR ;查表取代碼

        JZ END0 ;是00H,則結束

        CJNE A,#0FFH,MUSIC5 ;如果是休止符,往下執行

        LJMP MUSIC3

        MUSIC5:

        NOP

        MOV R6,A ;R6=18H音符的頻率

        INC DPTR ;DPTR加一

        MOV A,#0

        MOVC A,@A+DPTR ;取節拍代碼送R7

        MOV R7,A ;R7=30H音符發音的時間

        SETB TR0 ;啟動計數

        MUSIC2:

        NOP

        CPL P2.5 ;P2.5是音樂輸出引腳

        MOV A,R6

        MOV R3,A ;R3=R6=18H

        LCALL DEL

        MOV A,R7

        CJNE A,20H,MUSIC2 ;中斷計數器(20H)=R7否?

        ;不等,則繼續循環

        MOV 20H,#00H ;等于,則取下一代碼

        INC DPTR

        LJMP MUSIC1

        MUSIC3:

        NOP ;休止100毫秒

        CLR TR0

        MOV R2,#0DH ;R2=13

        MUSIC4:

        NOP

        MOV R3,#0FFH ;R3=255

        LCALL DEL

        DJNZ R2,MUSIC4

        INC DPTR

        LJMP MUSIC1

        END0:

        NOP

        MOV R2,#0FFH ;歌曲結束,延時1秒后繼續

        MUSIC6:

        MOV R3,#00H

        LCALL DEL

        DJNZ R2,MUSIC6

        LJMP MUSIC0

        DEL:

        NOP

        DEL3:

        MOV R4,#02H

        DEL4:

        NOP

        DJNZ R4,DEL4

        NOP

        DJNZ R3,DEL3

        RET

        NOP

        DAT:

        DB 18H, 30H, 1CH, 10H

        DB 20H, 40H, 1CH, 10H

        DB 18H, 10H, 20H, 10H

        DB 1CH, 10H, 18H, 40H

        DB 1CH, 20H, 20H, 20H

        DB 1CH, 20H, 18H, 20H

        DB 20H, 80H, 0FFH, 20H

        DB 30H, 1CH, 10H , 18H

        DB 20H, 15H, 20H , 1CH

        DB 20H, 20H, 20H , 26H

        DB 40H, 20H , 20H , 2BH

        DB 20H, 26H, 20H , 20H

        DB 20H, 30H , 80H , 0FFH

        DB 20H, 20H, 1CH , 10H

        DB 18H, 10H, 20H , 20H

        DB 26H, 20H , 2BH , 20H

        DB 30H, 20H , 2BH , 40H

        DB 20H, 20H , 1CH , 10H

        DB 18H, 10H, 20H, 20H

        DB 26H, 20H , 2BH, 20H

        DB 30H, 20H, 2BH , 40H

        DB 20H, 30H, 1CH , 10H

        DB 18H, 20H , 15H , 20H

        DB 1CH, 20H , 20H , 20H

        DB 26H, 40H, 20H , 20H

        DB 2BH, 20H, 26H , 20H

        DB 20H, 20H, 30H , 80H

        DB 20H, 30H, 1CH , 10H

        DB 20H, 10H, 1CH , 10H

        DB 20H, 20H, 26H , 20H

        DB 2BH, 20H, 30H , 20H

        DB 2BH, 40H, 20H , 15H

        DB 1FH, 05H, 20H , 10H

        DB 1CH, 10H, 20H , 20H

        DB 26H, 20H, 2BH , 20H

        DB 30H, 20H, 2BH , 40H

        DB 20H, 30H, 1CH , 10H

        DB 18H, 20H , 15H , 20H

        DB 1CH, 20H , 20H , 20H

        DB 26H, 40H, 20H , 20H

        DB 2BH, 20H, 26H , 20H

        DB 20H, 20H, 30H, 30H

        DB 20H, 30H, 1CH, 10H

        DB 18H, 40H, 1CH, 20H

        DB 20H, 20H, 26H, 40H

        DB 13H, 60H, 18H , 20H

        DB 15H, 40H, 13H , 40H

        DB 18H, 80H, 00H

        END
        誰能幫忙的請告知下你的郵箱或者QQ 還有一附件不會添加進去 謝謝
        [ 此貼被qj_bhhwx在2009-06-01 16:46重新編輯 ]




        樓主,下下來就2頁?{:e114:}

        QQ|手機版|MCU資訊論壇 ( 京ICP備18035221號-2 )|網站地圖

        GMT+8, 2025-5-1 11:15 , Processed in 0.040362 second(s), 8 queries , Redis On.

        Powered by Discuz! X3.5

        © 2001-2025 Discuz! Team.

        返回頂部
        无码人妻精品一区二区三区99仓本 | 精品久久久久久无码免费| 91精品成人免费国产片| 国产天天综合永久精品日| 亚洲欧美精品一区久久中文字幕| 香蕉久久夜色精品升级完成| 国产午夜精品一区理论片| 久久精品国产99久久香蕉| 一本一本久久a久久综合精品蜜桃 一本一道精品欧美中文字幕 | 午夜精品一区二区三区在线观看| 亚洲欧洲精品无码AV| 国产精品视频a播放| 精品人妻伦九区久久AAA片69| 日本特黄a级120秒试看| 国产精品中文字幕在线观看| 国产成人精品一区二三区在线观看 | 午夜福利麻豆国产精品 | 国产精品白丝jkav网站| 亚洲日韩精品一区二区三区| 国产亚洲美女精品久久久久狼| 久草热8精品视频在线观看| 四虎国产精品永久在线观看| 久久久精品一区二区三区| 亚洲精品tv久久久久| 97热久久免费频精品99| 欧美精品国产一区二区三区| 国产精品免费看久久久| 久久久久国产精品麻豆AR影院| 国产精品视频一区二区噜噜| 久久精品一区二区影院| japanese乱人伦精品| 亚洲国产成人精品91久久久| 97久久久精品综合88久久| 人妻精品久久久久中文字幕| 国产成人久久精品激情 | 精品久久久久久无码专区不卡| 国产精品午夜免费观看网站| 欧美日韩人妻精品一区二区在线| 国产精品v欧美精品v日本精| 日韩精品久久无码中文字幕| 久久精品亚洲欧美日韩久久|