新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機音樂程序設計(含源程序)

        單片機音樂程序設計(含源程序)

        作者: 時間:2011-05-31 來源:網絡 收藏

        隨便找一個仿真機或者什么實驗板,只要能工作的就行,將程序輸入,運行,然后找個音箱(你計算機旁邊應當就有一對吧)撥出插頭,插頭的前端接在P1。0上,后面部分找根線接的地,就應當有聲了,然后怎么改進硬件連接就是你的事了。。。。

        本文引用地址:http://www.104case.com/article/172719.htm

        程序匯編代碼代碼1 -------------Voice.asm--------------------------

        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
        MOV B,#00H ;表序號清0
        MUSIC1:
        NOP
        CLR A
        MOVC A,@A+DPTR ;查表取代碼
        JZ END0 ;是00H,則結束
        CJNE A,#0FFH,MUSIC5
        LJMP MUSIC3
        MUSIC5:
        NOP
        MOV R6,A
        INC DPTR
        MOV A,B
        MOVC A,@A+DPTR ;取節拍代碼送R7
        MOV R7,A
        SETB TR0 ;啟動計數
        MUSIC2:
        NOP
        CPL P1.0
        MOV A,R6
        MOV R3,A
        LCALL DEL
        MOV A,R7
        CJNE A,20H,MUSIC2 ;中斷計數器(20H)=R7否?
        ;不等,則繼續循環
        MOV 20H,#00H ;等于,則取下一代碼
        INC DPTR
        ; INC B
        LJMP MUSIC1
        MUSIC3:
        NOP
        CLR TR0 ;休止100毫秒
        MOV R2,#0DH
        MUSIC4:
        NOP
        MOV R3,#0FFH
        LCALL DEL
        DJNZ R2,MUSIC4
        INC DPTR
        LJMP MUSIC1
        END0:
        NOP
        MOV R2,#64H ;歌曲結束,延時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 26h,20h,20h,20h,20h,20h,26h,10h,20h,10h,20h,80h,26h,20h,30h,20h
        db 30h,20h,39h,10h,30h,10h,30h,80h,26h,20h,20h,20h,20h,20h,1ch,20h
        db 20h,80h,2bh,20h,26h,20h,20h,20h,2bh,10h,26h,10h,2bh,80h,26h,20h
        db 30h,20h,30h,20h,39h,10h,26h,10h,26h,60h,40h,10h,39h,10h,26h,20h
        db 30h,20h,30h,20h,39h,10h,26h,10h,26h,80h,26h,20h,2bh,10h,2bh,10h
        db 2bh,20h,30h,10h,39h,10h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,20h
        db 20h,10h,20h,10h,2bh,10h,26h,30h,30h,80h,18h,20h,18h,20h,26h,20h
        db 20h,20h,20h,40h,26h,20h,2bh,20h,30h,20h,30h,20h,1ch,20h,20h,20h
        db 20h,80h,1ch,20h,1ch,20h,1ch,20h,30h,20h,30h,60h,39h,10h,30h,10h
        db 20h,20h,2bh,10h,26h,10h,2bh,10h,26h,10h,26h,10h,2bh,10h,2bh,80h
        db 18h,20h,18h,20h,26h,20h,20h,20h,20h,60h,26h,10h,2bh,20h,30h,20h
        db 30h,20h,1ch,20h,20h,20h,20h,80h,26h,20h,30h,10h,30h,10h,30h,20h
        db 39h,20h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,10h,40h,10h,20h,10h
        db 20h,10h,2bh,10h,26h,30h,30h,80h,00H

        END

        程序匯編代碼代碼2 -------------Voice1.asm--------------------------

        ;標題 '八月桂花香'發聲程序
        ;摘要 詳見'無線電'92年3期
        ;作者 周振安
        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
        MOV B,#00H ;表序號清0
        MUSIC1:
        NOP
        CLR A


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 抚顺市| 买车| 彰化市| 大同市| 二连浩特市| 筠连县| 潜江市| 浪卡子县| 塔城市| 大同市| 长沙市| 聂荣县| 铁岭市| 资兴市| 攀枝花市| 麻阳| 博野县| 依安县| 象山县| 靖宇县| 宿州市| 文水县| 永清县| 融水| 江陵县| 赣榆县| 阳原县| 南宫市| 安岳县| 雷州市| 平湖市| 凌云县| 宿州市| 天等县| 靖州| 手机| 大埔区| 永宁县| 灌云县| 武义县| 彭州市|