• 專注電子技術學習與研究
    當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

    51單片機演奏音樂“祝你生日快樂”

    作者:浪子   來源:浪子   點擊數:  更新時間:2014年06月10日   【字體:

     ;祝你生日快樂

             ORG      0000H
             LJMP     START
             ORG      000BH
             INC      20H         ;中斷服務,中斷計數器加1
             MOV      TH0,#0bbH  ;d8
             MOV      TL0,#0EFH   ;12M晶振,形成10毫秒中斷
             RETI
     
    START:
    INITIAL:MOV      SP,#50H
             MOV      TH0,#0D8H
             MOV      TL0,#0EFH
             MOV      TMOD,#01H
             MOV      IE,#82H
       CPL P1.6
    MUSIC0: NOP
             MOV      DPTR,#MUSIC_DAT ;表頭地址送DPTR
             MOV      20H,#00H         ;中斷計數器清0
             MOV      B,#00H           ;表序號清0
    MUSIC1: NOP
             CLR      A
             MOVC     A,@A+DPTR        ;查表取代碼
             JZ       END0       ;是00H,則結束
        CPL P1.7
              CPL P1.6
             CJNE     A,#0FFH,MUSIC5   ;是休止符則繼續執行
             LJMP     MUSIC3
    MUSIC5: NOP
             MOV      R6,A             ;r6=18H音符的頻率
             INC      DPTR
             MOV      A,B
             MOVC     A,@A+DPTR        ;取節拍代碼送R7
             MOV      R7,A ;r7=30H音符發音的時間
             SETB     TR0              ;啟動計數
    MUSIC2: NOP
            CPL      P2.3 ;音樂輸出的管腳    
             MOV      A,R6
             MOV      R3,A
             LCALL    DEL
             MOV      A,R7
             CJNE     A,20H,MUSIC2     ;中斷計數器(20H)=R7否?
                                     ;不等,則繼續循環
             MOV      20H,#00H         ;等于,則取下一代碼
             INC      DPTR
             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
     
     
    MUSIC_DAT:
     
     
    ; 豬你生日快樂曲譜
    DB 3FH,10H
    DB 0FFH
    DB 3FH,      10H
             DB       39H,      20H,      3FH,      20H
    DB       30H,      20H,      33H,      40H
     
              DB       3FH,      10H
    DB 0FFH
    DB       3FH,      10H
             DB       39H,      20H,      3FH,      20H
    DB       2BH,      20H,      30H,      40H
     
    DB       3FH,      10H
    DB 0FFH
    DB       3FH,      10H
    DB 20H,   20H,     26H,     20H
    DB 30H,   20H,     33H,     10H
    db 39H,       30H
    DB 23H,    10H
    DB 0FFh
    DB 23H,    10H
    DB 26H,    20H,      30H,     20H,       2BH
    DB 20H, 30H, 40H
    DB 00H 
     
     
     
    end--
    關閉窗口

    相關文章

    亚洲一区二区制服在线|在绩专区欧美自拍日韩|青春娱乐网97超碰人人射|在线观看国产网址你懂的