视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
音乐播放程序
2025-09-25 14:17:53 责编:小OO
文档
附录一

         ORG  0000H

         LJMP MAIN

         ORG  0003H

         LJMP SUM ;上一曲中断

         ORG  000BH

         LJMP BOF ;播放/暂停

         ORG  0013H

         LJMP DUM ;下一曲中断

         ORG  001BH

         LJMP TIMER1

         ORG  50H

MAIN:    MOV  R0,#01H

         MOV  R1,#00H

         MOV  R7,#00H

         MOV  TMOD,#1EH ;置T1为定时工作方式1,T0为计数工作方式2

         MOV  TCON,#15H ;启动T0、T1

         MOV  TH0,#0FFH

         MOV  TL0,#0FFH

         MOV  IE,#9FH ;开放全部中断

KEYCHECK:MOV  A,R0 ;乐曲判断

         DEC  A

         JZ   MUSIC1

         DEC  A

         JZ   MUSIC2

         DEC  A

         JZ   MUSIC3

         SJMP KEYCHECK 

MUSIC1: LCALL XIAN

        LCALL DELAY0

         MOV  DPTR,#TONE1

        LCALL LOP

         SJMP MUSIC1

MUSIC2: LCALL XIAN

        LCALL DELAY0

         MOV  DPTR,#TONE2

        LCALL LOP

         SJMP MUSIC2

MUSIC3: LCALL XIAN

        LCALL DELAY0

         MOV  DPTR,#TONE3

        LCALL LOP

         SJMP MUSIC3

LOP:   CJNE R1,#00H,LOOP5 ;判断是否播放

         CLR  P0.0

         CLR  TR1

         CJNE R7,#01H,LOOP4 ;暂停过程中的标识符判断

         MOV  R7,#00H

         SJMP KEYCHECK

LOOP4:   LJMP LOP

LOOP5:   SETB P0.0

         MOV  A,#0

         MOVC A,@A+DPTR

         JZ   QUIT

         CJNE A,#01H,LOOP6

         CLR  TR1

         INC  DPTR

         LJMP LOOP7

LOOP6:   MOV  R5,A

         MOV  TH1,A

         INC  DPTR

         MOV  A,#0

         MOVC A,@A+DPTR

         MOV  R6,A

         MOV  TL1,R6

         SETB TR1

LOOP7:   INC  DPTR

         MOV  A,#0

         MOVC A,@A+DPTR

         MOV  R2,A

LOOP1:   MOV  R3,#80H

LOOP2:   MOV  R4,#0FFH

LOOP3:   DJNZ R4,LOOP3

         DJNZ R3,LOOP2

         DJNZ R2,LOOP1

         INC  DPTR

LOOP8:   CJNE R7,#01H,GOON ;播放中的标识符判断

         MOV  R7,#00H

         SJMP KEYCHECK

GOON:    LJMP LOP

QUIT:    RET

TIMER1:  PUSH DPH ;定时器1中断子程序

         PUSH DPL

         PUSH ACC

         CPL  P1.7

         MOV  TH1,R5

         MOV  TL1,R6

         SETB TR1

         POP  ACC

         POP  DPL

         POP  DPH

         RETI

DELAY0:  MOV  R2,#10

DELAY3:  MOV  R3,#200

DELAY2:  MOV  R4,#125

DELAY1:  DJNZ R4,DELAY1

         DJNZ R3,DELAY2

         DJNZ R2,DELAY3

         RET

SUM:     CJNE R0,#01H,SUM1 ;上一曲INT0中断子程序

         MOV  R0,#04H

SUM1:    DEC  R0

         INC  R7

         RETI

DUM:     CJNE R0,#03H,DUM1 ;下一曲INT1中断子程序

         MOV  R0,#00H

DUM1:    INC  R0

         INC  R7

         RETI

BOF:     INC  R1 ;播放暂停T0子程序

         CJNE R1,#02H,BOF1

         MOV  R1,#00H

         RETI

BOF1:    RETI

XIAN:    CLR  TR1 ;显示子程序

         MOV  A,R0

         MOV  DPTR,#TABLE

         MOVC A,@A+DPTR

         MOV  P2,A

         CLR  P0.0

         RET

TABLE:      DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

TONE1:   DB   0FCH,2FH,4,0FCH,99H,4 ;两只老虎

         DB   0FCH,0F8H,4 ,0FCH,2FH,4

         DB   0FCH,2FH,4,0FCH,99H,4

         DB   0FCH,0F8H,4,0FCH,2FH,4

         DB   0FCH,0F8H,4,0FDH,22H,4

         DB   0FDH,73H,8,0FCH,0F8H,4

         DB   0FDH,22H,4,0FDH,73H,8

         DB   0FDH,73H,3,0FDH,0BAH,1

         DB   0FDH,73H,3,0FDH,22H,1

         DB   0FCH,0F8H,4,0FCH,2FH,4

         DB   0FDH,73H,3,0FDH,0BAH,1

         DB   0FDH,73H,3,0FCH,22H,1

         DB   0FCH,0F8H,4,0FCH,2FH,4

         DB   0FCH,2FH,4,0FDH,73H,4

         DB   0FCH,2FH,8,0FCH,2FH,4

         DB   0FDH,73H,4,0FCH,2FH,8

         DB   0,0,0

TONE2:   DB   0FDH,0BAH,2,0FDH,0FAH,2 ;天空之城

         DB   0FEH,17H,6,0FDH,0FAH,2

         DB   0FEH,17H,4,0FEH,7CH,4

         DB  

0FDH,0FAH,12,0FCH,0F8H,2

         DB   0FCH,0F8H,2,0FDH,0BAH,6

         DB   0FDH,73H,2,0FDH,0BAH,4

         DB   0FEH,17H,4,0FDH,73H,8

         DB   01H,0,4,0FCH,0F8H,2

         DB   0FCH,0F8H,2,0FDH,22H,6

         DB   0FCH,0F8H,2,0FDH,22H,2

         DB   0FEH,17H,6,0FCH,0F8H,8

         DB   01H,0,2,0FEH,17H,2

         DB   0FEH,17H,2,0FEH,17H,2

         DB   0FDH,0FAH,6,0FDH,22H,2

         DB   0FDH,22H,4,0FDH,0FAH,4

         DB   0FDH,0FAH,8,01H,0,4

         DB   0FDH,0BAH,2,0FDH,0FAH,2

         DB   0FEH,17H,6,0FDH,0FAH,2

         DB   0FEH,17H,4,0FEH,7CH,4

         DB   0FDH,0FAH,8,01H,0,4

         DB   0FCH,0F8H,2,0FCH,0F8H,2

         DB   0FDH,0BAH,6,0FDH,73H,2

         DB   0FDH,0BAH,4,0FEH,17H,4

         DB   0FDH,73H,12,01H,0,2

         DB   0FCH,0F8H,2,0FDH,22H,4

         DB   0FEH,17H,2,0FDH,0FAH,2

         DB   0FDH,0FAH,4,0FEH,17H,4

         DB   0FEH,4CH,2,0FEH,4CH,2

         DB   0FEH,7CH,2,0FEH,17H,4

         DB   01H,0,4,0FEH,17H,4

         DB   0FDH,0FAH,2,0FDH,0BAH,2

         DB   0FDH,0BAH,2,0FDH,0FAH,4

         DB   0FDH,73H,4,0FDH,0BAH,8

         DB   01H,0,4,0FEH,17H,2

         DB   0FEH,4CH,2,0FEH,7CH,6

         DB   0FEH,4CH,2,0FEH,7CH,4

         DB   0FEH,0B9H,4,0FEH,4CH,8

         DB   01H,0,4,0FDH,73H,2

         DB   0FDH,73H,2,0FEH,17H,2

         DB   0FDH,0FAH,2,0FEH,17H,4

         DB   0FEH,7CH,4,0FEH,7CH,8

         DB   01H,0,4,01H,0,4

         DB   0FDH,0BAH,2,0FDH,0FAH,2

         DB   0FEH,17H,4,0FDH,0FAH,4

         DB   0FEH,4CH,2,0FEH,4CH,2

         DB   0FEH,17H,6,0FDH,73H,2

         DB   0FDH,73H,4,01H,0,4

         DB   0FEH,91H,4,0FEH,7CH,4

         DB   0FEH,4CH,4,0FEH,17H,4

         DB   0FEH,7CH,16,0FEH,7CH,8

         DB   01H,0,4,0FEH,7CH,4

         DB   0FEH,0DDH,8,0FEH,0B9H,4

         DB   0FEH,0B9H,4,0FEH,7CH,2

         DB   0FEH,4CH,2,0FEH,17H,4

         DB   01H,0,2,0FEH,17H,2

         DB   0FEH,4CH,4,0FEH,17H,2

         DB   0FEH,4CH,2,0FEH,4CH,2

         DB   0FEH,0B9H,4,0FEH,7CH,8

         DB   01H,0,4,0FEH,7CH,4

         DB   0FEH,0DDH,8,0FEH,0B9H,8

         DB   0FEH,7CH,2,0FEH,4CH,2

         DB   0FEH,17H,8,01H,0,2

         DB   0FEH,17H,2,0FEH,4CH,4

         DB   0FEH,17H,2,0FEH,4CH,2

         DB   0FEH,4CH,2,0FDH,0FAH,4

         DB   0FDH,0BAH,8,01H,0,4

         DB   0FDH,0BAH,2,0FDH,0FAH,2

         DB   0FDH,0BAH,16,0,0,0

TONE3:   DB   0FDH,73H,1,0FDH,0BAH,2 ;找朋友

         DB   0FDH,73H,2,0FDH,0BAH,2

         DB   0FDH,73H,2,0FDH,0BAH,2

         DB   0FDH,73H,4,0FDH,73H,2

         DB   0FEH,17H,2,0FDH,0FAH,2

         DB   0FDH,0BAH,2,0FDH,73H,4

         DB   0FCH,0F8H,4,0FDH,73H,2

         DB   0FDH,73H,2,0FCH,0F8H,2

         DB   0FDH,22H,2,0FDH,73H,2

         DB   0FDH,73H,2,0FCH,0F8H,4

         DB   0FCH,2FH,2,0FDH,22H,2

         DB   0FCH,0F8H,2,0FCH,99H,2

         DB   0FCH,2FH,2,0FCH,99H,2

         DB   0FCH,2FH,4,0,0,0

         END

程序清单

T5HZ EQU 30H

T7HZ EQU 31H

T05SA EQU 32H

T05SB EQU 33H

FLAG BIT 00H

STOP BIT 01H

SP1 BIT P3.6

ORG 00H

LJMP START

ORG 0BH

LJMP INT_T0

START:MOV TMOD,#02H

MOV TH0, #06H

MOV TL0, #06H

SETB ET0

SETB EA

NSP:JB SP1,NSP

LCALL DELY10MS

JB SP1, NSP

SETB TR0

MOV T5HZ, #00H

MOV T7HZ, #00H

MOV T05SA, #00H

MOV T05SB, #00H

CLR FLAG

CLR STOP

JNB STOP, $

LJMP NSP

DELY10MS:MOV R6,#20H

D1: MOV R7, #248

DJNZ R7,$

DJNZ R6,D1

RET

INT_T0:INC T05SA

MOV A,T05SA

CJNE A,#100H,NEXT

MOV T05SA,#00H

INC T05SB

MOV A,T05SB

CJNE A,#20H,NEXT

MOV T05SB,#00H

JB FLAG,STR

CPL FLAG

LJMP NEXT

STR: SETB STOP

CLR TR0

LJMP DONE

NEXT:JB FLAG,S5HZ

INC T7HZ

MOV A,T7HZ

CJNE A,#03H,DONE

MOV T7HZ,#00H

CPL P1.0

LJMP DONE

S5HZ:INC T5HZ

MOV A,T5HZ

CJNE A,#04H,DONE

MOV T5HZ,#00H

CPL P1.0

LJMP DONE

DONE:RETI

END下载本文

显示全文
专题