⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dianziqinchengxu.txt

📁 51单片机学习的实用音乐程序的运用,希望给大家带来帮助!
💻 TXT
字号:
OUT       BIT    P0.0
NEXTSONG  BIT    P3.2
LASTSONG  BIT    P3.3
PLAY      BIT    P3.4
SONGNUM   EQU    40H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
          ORG    0000H
          AJMP   START
          ORG    0003H
          AJMP   INT0
          ORG    000BH
          AJMP   TIME
          ORG    0013H
          AJMP   INT1
          ORG    0100H
START:    MOV    SONGNUM,#0
          MOV    50H,#0
          MOV    TMOD,#01H         ;T0   方式1
          SETB   EA
          SETB   ET0               ;允许T0中断
          SETB   IT0               ;INT0 边沿触发
          SETB   IT1               ;INT1 边沿触发
          SETB   EX0               ;外部中断0
          SETB   EX1               ;外部中断1
          SETB   PX0               ;优先级1 INT0
          SETB   PX1               ;优先级2 INT1
START0:   MOV    30H,#0            ;音符+节拍序列号
NEXT:     ACALL  SON
          MOV    A,30H
          MOVC   A,@A+DPTR
          MOV    R2,A
          JZ     START0
          ANL    A,#0FH
          MOV    R5,A
          MOV    A,R2
          SWAP   A
          ANL    A,#0FH
          JNZ    SING
      ;    CLR   TR0
          AJMP   SING1
SING:     DEC    A
          MOV    60H,A
          MOV    A,SONGNUM
          CJNE   A,#0,SHIJIAN
          MOV    50H,#2
          AJMP   JK
SHIJIAN:  MOV    50H,#4          
JK:       MOV    A,60H
          ADD    A,50H ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
          MOV    22H,A
          RL     A
          MOV    DPTR,#TABLE1
          MOVC   A,@A+DPTR
          MOV    TH0,A
          MOV    21H,A
          MOV    A,22H
          RL     A
          INC    A
          MOVC   A,@A+DPTR
          MOV    TL0,A
          MOV    20H,A
     ;     SETB  TR0
SING1:    LCALL  DELAY
          INC    30H
          AJMP   NEXT
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SON:      MOV    A,SONGNUM
SON0:     CJNE   A,#0,KON
          MOV    DPTR,#SONG0
          RET
KON:      CJNE   A,#1,SON1
          MOV    DPTR,#KONG
          RET
SON1:     CJNE   A,#10,SON2
          MOV    DPTR,#SONG1
          RET      
SON2:     CJNE   A,#2,SON3
          MOV    DPTR,#SONG2
          RET
SON3:     CJNE   A,#3,SON4
          MOV    DPTR,#SONG3
          RET
SON4:     CJNE   A,#4,SON5
          MOV    DPTR,#SONG4
          RET
SON5:     CJNE   A,#5,SON6
          MOV    DPTR,#SONG5
          RET
SON6:     CJNE   A,#6,SON7
          MOV    DPTR,#SONG6
          RET
SON7:     CJNE   A,#7,SON8
          MOV    DPTR,#SONG7
          RET
SON8:     CJNE   A,#8,SON9
          MOV    DPTR,#SONG8
          RET
SON9:     MOV    DPTR,#SONG9
          RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;外部中断0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
INT0:     CLR    EX0
          PUSH   ACC
          PUSH   PSW
          ACALL  DELAY0
          JB     NEXTSONG,TO1            ;P3.2
K1:       MOV    A,SONGNUM
          INC    A
          MOV    SONGNUM,A
          CJNE   A,#11,TOE0
          MOV    SONGNUM,#0
TOE0:     ACALL  DISP
          MOV    30H,#0
TO1:      POP    PSW
          POP    ACC
          SETB   EX0
          RETI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;外部中断1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
INT1:     CLR    EX1
          PUSH   ACC
          PUSH   PSW
          ACALL  DELAY0
          JB     LASTSONG,TO2            ;P3.3
          JNB    PLAY,K3                 ;P3.4
K2:       MOV    A,SONGNUM
          DEC    A
          MOV    SONGNUM,A
          CJNE   A,#0FFH,TOE1
          MOV    SONGNUM,#10
          AJMP   TOE1
K3:       ACALL  DELAY0
          CPL    TR0
TOE1:     ACALL  DISP
          MOV    30H,#0
TO2:      POP    PSW
          POP    ACC
          SETB   EX1
          RETI
;;;;;;;;;;;;;;;;;;;;;;;;;T0中断;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TIME:     PUSH   ACC
          PUSH   PSW
          MOV    TL0,20H
          MOV    TH0,21H
          CPL    OUT
          POP    PSW
          POP    ACC
          RETI
;;;;;;;;;;;;;;;;;;;;;;;;显示程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DISP:     PUSH   DPL
          PUSH   DPH
          MOV    A,SONGNUM
          MOV    DPTR,#TAB
          MOVC   A,@A+DPTR
          MOV    P1,A
          CLR    P2.0
          POP    DPH
          POP    DPL
          RET
;;;;;;;;;;;;;;;;;;;;;;;;;;消抖延时;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DELAY0:   MOV    R6,#200
          MOV    R1,#250
          DJNZ   R1,$
          DJNZ   R6,$-4
          RET
;;;;;;;;;;;;;;;;;;;;;;;;;;延时;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DELAY:    MOV    R7,#2
D2:       MOV    R4,#155
D3:       MOV    R3,#248
          DJNZ   R3,$
          DJNZ   R4,D3
          DJNZ   R7,D2
          DJNZ   R5,DELAY
          RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TAB:      DB     0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H  ;0-9 "灭"
;;;;;;;;;;;;;;;;;;;;;;音符控制常数;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TABLE1:   DW     63628,63835,64021,64103,64260,64400,64524     ;低音1234657
          DW     64580,64684,64777,64820,64898,64968,65030     ;中音1234567
          DW     65058,65110,65157,65178,65217,65252,65282     ;高音1234567
;;;;;;;;;;;;;;;;;;;;;;;;;音符+节拍;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SONG0:;;;;;;;;;;;;;;;;;;;兰花草;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
          DB     42H,82H,82H,82H,86H,72H,63H,71H,62H,52H,48H
          DB     0B2H,0B2H,0B2H,0B2H,0B6H,0A2H
          DB     83H,0A1H,0A2H,92H,88H,82H,0B2H,0B2H,0A2H,86H,72H
          DB     63H,71H,62H,52H,44H,12H,02H
          DB     12H,62H,62H,52H,46H,82H,73H,61H,52H,32H,48H
          DB     00H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SONG1:;;;;;;;;;;;;;;;;;;;两只老虎;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
          DB     44H,54H,64H,44H
          DB     44H,54H,64H,44H
          DB     64H,74H,88H
          DB     64H,74H,88H
          DB     82H,92H,82H,72H,64H,44H
          DB     82H,92H,82H,72H,64H,44H
          DB     54H,14H,48H
          DB     54H,14H,48H
          DB     00H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SONG2:;;;;;;;;;;;;;;;;;;;生日快乐;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
          DB     82H,01H,81H,94H,84H
          DB     0B4H,0A4H,04H
          DB     82H,01H,81H,94H,84H
          DB     0C4H,0B4H,04H
          DB     82H,01H,81H,0F4H,0D4H
          DB     0B4H,0A4H,94H,04H
          DB     0E2H,01H,0E1H,0D4H,0B4H
          DB     0C4H,0B4H,04H
          DB     00H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SONG3:;;;;;;;;;;;;;;;;;;;两只蝴蝶;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
          DB     62H,52H,64H,04H,
          DB     52H,62H,52H,44H,04H
          DB     22H,42H,54H,64H,52H,42H,22H,42H,14H,04H
          DB     62H,52H,64H,04H
          DB     52H,62H,52H,44H,04H
          DB     22H,42H,54H,64H,52H,42H,22H,42H,54H,04H
          DB     62H,52H,64H,04H
          DB     52H,62H,52H,44H,04H
          DB     22H,42H,54H,64H,52H,42H,22H,42H,14H,04H
          DB     62H,82H,84H,04H
          DB     82H,92H,82H,64H,04H
          DB     52H,62H,54H,64H,52H,42H,22H,42H,44H,04H
          DB     82H,82H,92H,0B2H,0A2H,0A2H,92H,62H,52H,52H,66H,04H
          DB     62H,62H,82H,94H,94H,22H,62H,56H,04H
          DB     62H,82H,82H,62H,84H,04H
          DB     0B4H,0A2H,92H,0A2H,64H,04H
          DB     92H,92H,0A2H,92H,82H,62H,53H,63H,53H,84H,04H
          DB     82H,82H,92H,0B2H,0A2H,0A2H,92H,62H,52H,52H,66H,04H
          DB     62H,62H,82H,94H,94H,22H,62H,56H,04H
          DB     62H,82H,82H,62H,84H,04H
          DB     0B4H,0A2H,92H,0A2H,64H,04H
          DB     92H,92H,0A2H,92H,82H,62H,53H,63H,53H,84H,04H
          DB     62H,82H,82H,62H,84H,04H
          DB     0B4H,0A2H,92H,0A2H,64H,04H
          DB     92H,92H,0A2H,92H,82H,62H,53H,63H,53H,84H,04H
          DB     00H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SONG4:;;;;;;;;;;;;;;;;;;;;记事本;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
          DB     84H,82H,82H,82H,0B2H,0B2H,82H,0C2H,0C3H,82H,84H,0B2H,0A2H,0A2H,93H,04H
          DB     94H,92H,82H,82H,63H,62H,62H,52H,52H,42H,44H,04H
          DB     62H,52H,52H,42H,84H,04H
          DB     92H,82H,94H,82H,63H,04H
          DB     84H,82H,82H,82H,0B2H,0B2H,82H,0C2H,0C3H,83H,04H
          DB     84H,0B2H,0A2H,0A2H,93H,94H,82H,92H,82H,63H,04H
          DB     52H,62H,52H,62H,44H,04H
          DB     52H,62H,52H,42H,84H,04H
          DB     14H,62H,52H,52H,42H,54H,42H,44H,04H
          DB     0A2H,0B2H,0A2H,63H,04H
          DB     0A2H,0B2H,0A2H,63H,04H
          DB     0D2H,0C2H,0C2H,0B2H,0C2H,0B2H,0B2H,0B2H,94H,84H,94H,64H,04H
          DB     64H,62H,52H,52H,42H,44H,04H
          DB     64H,62H,52H,52H,42H,84H,04H
          DB     84H,92H,82H,92H,83H,63H,04H
          DB     0A2H,0B2H,0A2H,63H,04H
          DB     0A2H,0B2H,0A2H,63H,04H
          DB     0D2H,0C2H,0C2H,0B2H,0D2H,0C2H,0C2H,0B2H,0C2H,0C2H,0C4H,0E4H,64H,04H
          DB     0D4H,0C2H,0D2H,0C2H,0B2H,94H,04H
          DB     0D4H,0C2H,0D2H,0C2H,0B2H,0C4H,04H
          DB     0D4H,0C2H,0D2H,0C2H,0B2H,0C4H,0B4H,96H,04H
          DB     00H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SONG5:;;;;;;;;;;;;;;;;;;;;;;;;新年快乐;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
          DB     42H,42H,44H,14H,02H
          DB     62H,62H,64H,44H,04H
          DB     42H,62H,84H,84H,02H
          DB     72H,62H,54H,04H
          DB     52H,62H,74H,74H,02H
          DB     62H,52H,64H,44H,04H
          DB     42H,62H,54H,14H,02H
          DB     32H,52H,44H,04H
          DB     00H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SONG6:;;;;;;;;;;;;;;;;;;;;;;;;哈巴狗;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
          DB     42H,42H,42H,52H,64H,04H
          DB     62H,62H,62H,72H,84H,04H
          DB     92H,92H,82H,72H,64H,04H
          DB     82H,82H,52H,62H,44H,04H
          DB     42H,42H,42H,52H,84H,04H
          DB     62H,62H,62H,72H,84H,04H
          DB     92H,92H,82H,72H,64H,04H
          DB     82H,82H,52H,62H,44H,04H
          DB     00H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SONG7:;;;;;;;;;;;;;;;;;;;;;;;;绿岛小夜曲;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
          DB     0A2H,0B2H,0D2H,0B2H,0A4H,0B2H,0D2H
          DB     0B2H,0A2H,82H ,72H,88H
          DB     72H, 82H,0A2H,82H,72H,62H,42H,62H
          DB     38H,38H
          DB     0A4H,02H,0B2H,0A4H,084H
          DB     72H,82H,72H,62H,72H,84H,72H
          DB     64H,62H,12H,34H,02H,42H
          DB     38H,38H
          DB     44H,02H,32H,44H,64H
          DB     72H,82H,72H,62H,72H,84H,0A2H
          DB     72H,74H,82H,0A2H,02H,0B2H
          DB     0A8H,0A8H
          DB     0B2H,0B4H,0A2H,84H,82H,72H
          DB     62H,72H,82H, 0A2H,88H
          DB     72H,74H,62H,42H,32H,32H,62H
          DB     78H,78H
          DB     82H,84H,72H,82H,0A2H,84H
          DB     72H,82H, 72H, 62H, 48H
          DB     32H,0A2H,82H,0F2H,0A2H,0B2H,82H,72H
          DB     68H,68H
          DB     0B2H, 0B2H,0A2H, 82H,84H,02H
          DB     72H,74H,62H,42H,32H,42H,62H
          DB     78H,78H
          DB     0A2H,0B2H,0A2H,72H,82H,84H,82H
          DB     72H,74H,62H,44H,64H
          DB     0A8H,0A4H,02H,0A2H
          DB     0A2H ,0B1H ,0A1H,82H,0A2H,0B4H,0B2H,0C2H
          DB     0A2H,0B2H,0A2H,82H,78H
          DB     84H,72H,62H,44H,02H,62H
          DB     72H,81H,71H,62H,72H,84H,02H,0A2H
          DB     0B4H,02H,82H,74H,82H,72H
          DB     68H,68H,04H
          DB     00H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SONG8:;;;;;;;;;;;;;;;;;;;;;弯弯的月亮;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
          DB     62H,82H,82H,62H,98H
          DB     92H,0B2H,0B2H,82H,98H
          DB     62H,82H,82H,52H,68H
          DB     92H,0B2H,0B2H,82H,92H,92H,94H
          DB     92H,0B2H,0B2H,92H,84H,94H
          DB     0B8H,0B4H,04H
          DB     00H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SONG9:;;;;;;;;;;;;;;;;;;;;妹妹背着洋娃娃;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
          DB     84H,02H,82H,64H,54H
          DB     64H,54H,48H
          DB     64H,02H,52H,44H,24H
          DB     14H,24H,18H
          DB     84H,94H,88H
          DB     64H,54H,68H
          DB     84H,64H,54H,44H
          DB     52H,42H,52H,62H,48H
          DB     00H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
KONG:     DB     04H,00H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
          END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -