新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 第12個試驗:單片機唱歌---“祝你平安”

        第12個試驗:單片機唱歌---“祝你平安”

        作者: 時間:2011-02-25 來源:網絡 收藏

        下面是他的asm源程序和hex程序(asm程序可以用配套光盤的uvw51e 編輯后得到hex,當然下面的hex也可以直接復制到記事本后存為txt,直接燒入芯片。注意XP套件支持文本燒寫方式。倚天版套件必須匯編。配套光盤里已經有匯編好的HEX,可以直接使用。)

        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 P3.3
        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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 永州市| 乐清市| 岢岚县| 南澳县| 辉县市| 赤峰市| 南昌县| 洪洞县| 龙海市| 普宁市| 全州县| 湘潭县| 简阳市| 筠连县| 和硕县| 南华县| 和政县| 纳雍县| 英吉沙县| 泽普县| 亚东县| 盐津县| 宿松县| 唐山市| 志丹县| 嘉善县| 静宁县| 株洲县| 沧源| 甘孜县| 仪征市| 修文县| 云林县| 公安县| 镇康县| 河东区| 林口县| 栖霞市| 德州市| 张家界市| 梨树县|