專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

51單片機(jī)演奏音樂(lè)“祝你生日快樂(lè)”

作者:浪子   來(lái)源:浪子   點(diǎn)擊數(shù):  更新時(shí)間:2014年06月10日   【字體:

 ;祝你生日快樂(lè)

         ORG      0000H
         LJMP     START
         ORG      000BH
         INC      20H         ;中斷服務(wù),中斷計(jì)數(shù)器加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         ;中斷計(jì)數(shù)器清0
         MOV      B,#00H           ;表序號(hào)清0
MUSIC1: NOP
         CLR      A
         MOVC     A,@A+DPTR        ;查表取代碼
         JZ       END0       ;是00H,則結(jié)束
    CPL P1.7
          CPL P1.6
         CJNE     A,#0FFH,MUSIC5   ;是休止符則繼續(xù)執(zhí)行
         LJMP     MUSIC3
MUSIC5: NOP
         MOV      R6,A             ;r6=18H音符的頻率
         INC      DPTR
         MOV      A,B
         MOVC     A,@A+DPTR        ;取節(jié)拍代碼送R7
         MOV      R7,A ;r7=30H音符發(fā)音的時(shí)間
         SETB     TR0              ;啟動(dòng)計(jì)數(shù)
MUSIC2: NOP
        CPL      P2.3 ;音樂(lè)輸出的管腳    
         MOV      A,R6
         MOV      R3,A
         LCALL    DEL
         MOV      A,R7
         CJNE     A,20H,MUSIC2     ;中斷計(jì)數(shù)器(20H)=R7否?
                                 ;不等,則繼續(xù)循環(huán)
         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   ;歌曲結(jié)束,延時(shí)1秒后繼續(xù)
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:
 
 
; 豬你生日快樂(lè)曲譜
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--
關(guān)閉窗口

相關(guān)文章