<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> 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--
        關閉窗口

        相關文章

        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮