新聞中心

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

        單片機音樂程序設計

        作者: 時間:2012-09-02 來源:網絡 收藏

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

        本文引用地址:http://www.104case.com/article/170934.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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 五峰| 黄浦区| 定结县| 紫金县| 儋州市| 兴文县| 辽阳县| 九龙县| 正蓝旗| 福州市| 岳阳市| 资中县| 巨鹿县| 西盟| 肥乡县| 睢宁县| 象山县| 德安县| 襄樊市| 屯昌县| 枝江市| 吉林市| 时尚| 浪卡子县| 贡觉县| 阜南县| 富宁县| 密山市| 霸州市| 巩义市| 台东县| 安福县| 偏关县| 栖霞市| 延长县| 平舆县| 新龙县| 大英县| 张掖市| 青铜峡市| 靖江市|