题目8 音乐播放器设计
(一)任务
以单片机为核心设计音乐播放器。
(二)要求
1.基本要求
(1)能播放至少5首歌曲,并用单个数码管显示歌曲序号。
(2)设计电路
(3)在KEIL中编辑、编译、调试程序,并在protuse中仿真。
2.扩展部分(选作)
(1) 采用按键选择播放某序号歌曲。
3. 写出设计报告(报告有规定格式要求)
NUM EQU 30H
UP EQU P3.6
DN EQU P3.7
ORG 0000H
AJMP START ;Foscï¼12MHz
ORG 000BH ;T0 ä¸æå ¥å£å°å
AJMP INT_T0
ORG 001BH ;T1 ä¸æå ¥å£å°å
AJMP INT_T1
START:
MOV SP, #60H
MOV TMOD, #11H
MOV IE, #8AH
MOV IP, #08H ;T1ä¸æä¼å äºT0ä¸æ
MOV TH1, #3CH
MOV TL1, #0BH ;以ä¸ä¸ºç³»ç»åå§åï¼T=60ms
W1: MOV P2, #01110001B ;çå¾ æ示"F" ,01110001
LCALL GETKEY
CJNE A, #0FFH, W1
MOV A, B
CJNE A, #0AH, W2
LCALL KEY_A ;è¾å ¥é®æ¯'A',转KEY_A
SJMP W1
W2: CJNE A, #0BH, W3
LCALL KEY_B ;è¾å ¥é®æ¯'B',转KEY_B
W3: CJNE A, #0CH, W4
LCALL KEY_C ;è¾å ¥é®æ¯'C',转KEY_C
W4: CJNE A, #0DH, W5
LCALL KEY_D
SJMP W1 ;è¾å ¥é®æ¯'D',转KEY_D
W5: CJNE A,#0EH,W6 ;ä¸ä¸é¦
INC NUM
MOV A,NUM
CJNE A,#4,W51
W51:
JC W52
MOV NUM,#0
W52:
MOV A,NUM
SJMP D0
W6: CJNE A,#0FH,W7 ;ä¸ä¸é¦
MOV A,NUM
JNZ W61
MOV NUM,#4
W61:
DEC NUM
MOV A,NUM
SJMP D0
W7:
SJMP W1
KEY_A: ;ä»1ï½4æ顺åºææ¾
LCALL MUSIC1 ;ä¹æ²ãæåä½ ã
LCALL MUSIC2 ;ä¹æ²ãä¸æ°´åå±±æ»æ¯æ ã
LCALL MUSIC3 ;ä¹æ²ãéå«ã
LCALL MUSIC4 ;ä¹æ²ãå京欢è¿æ¨ã
RET
KEY_B: ;ä»1ï½4循ç¯ææ¾
T11: LCALL KEY_A
SJMP T11
RET
KEY_C: ;循ç¯ææ¾æä¸ä¹æ²
T3: LCALL GETWORD
CJNE A, #0FFH, T3
MOV A, B
D0:
JNZ D1
SJMP E0
D1: DEC A
JNZ D2
SJMP E1
D2: DEC A
JNZ E3
SJMP E2
E0: LCALL MUSIC1 ;ä¹æ²ãæåä½ ã
SJMP E0
E1: LCALL MUSIC2 ;ä¹æ²ãä¸æ°´åå±±æ»æ¯æ ã
SJMP E1
E2: LCALL MUSIC3 ;ä¹æ²ãéå«ã
SJMP E2
E3: LCALL MUSIC4 ;ä¹æ²ãå京欢è¿æ¨ã
SJMP E3
RET
KEY_D: ;ä»æä¸ä¹æ²å¼å§ææ¾ï¼ææ¾å®ååæ¢
T2: LCALL GETWORD
CJNE A, #0FFH, T2
MOV A, B
CJNE A, #00H, B1
SJMP C0
B1: CJNE A, #01H, B2
SJMP C1
B2: CJNE A, #02H, C3
SJMP C2
C0: LCALL MUSIC1 ;ä¹æ²ãæåä½ ã
C1: LCALL MUSIC2 ;ä¹æ² ãä¸æ°´åå±±æ»æ¯æ ã
C2: LCALL MUSIC3 ;ä¹æ²ãéå«ã
C3: LCALL MUSIC4 ;ä¹æ²ãå京欢è¿æ¨ã
RET
MUSIC1: ;第ä¸é¦ãæåä½ ã
MOV P2, #00000110B ;æ¾ç¤º1,00000110
MOV R5, #11111001B
MOV 52H, #HIGH TABLE10
MOV 53H, #LOW TABLE10
MOV NUM,#0
LCALL music
RET
MUSIC2: ;第äºé¦ãä¸æ°´åå±±æ»æ¯æ ã
MOV P2, #01011011B ;æ¾ç¤º2,01011011
MOV R5, #10100100B
MOV 52H, #HIGH TABLE20
MOV 53H, #LOW TABLE20
MOV NUM,#1
LCALL music
RET
MUSIC3: ;第ä¸é¦ãéå«ã
MOV P2, #01001111B ;æ¾ç¤º3,01001111
MOV R5, #10110000B
MOV 52H, #HIGH TABLE30
MOV 53H, #LOW TABLE30
MOV NUM,#2
LCALL music
RET
MUSIC4: ;第åé¦ãå京欢è¿æ¨ã
MOV P2, #01100110B ;æ¾ç¤º4,01100110
MOV R5, #10011001B
MOV 52H, #HIGH TABLE40
MOV 53H, #LOW TABLE40
MOV NUM,#3
LCALL music
RET
music: MOV R3,#00H ;é³ä¹è§£ç å¨
NEXT20:
MOV A,P3
ORL A,#0C0H
MOV P3,A
MOV A,P3
CPL A
ANL A,#0C0H
JZ NEXT21
POP ACC
POP ACC
LJMP W1
RET
NEXT21:
MOV A, R3
MOV DPH, 52H
MOV DPL, 53H
MOVC A, @A+DPTR
MOV R2, A
JZ STOP
ANL A, #0FH
MOV R1, A
MOV A, R2
SWAP A
ANL A, #0FH
JNZ SING
CLR TR0
JMP W11
;----------------------------------------------------------
SING:
DEC A
MOV 22H, A
RL A
MOV DPTR, #TABLE00
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
SETB TR1
W11:
LCALL DELAY3
INC R3
LJMP NEXT20
;-----------------------------------------------------------
STOP:
CLR TR0
CLR TR1
RET
;***************************************************
;å®æ¶å¨0ä¸æåç¨åº
;***************************************************
INT_T0:
CLR TR0
MOV TL0, 20H
MOV TH0, 21H
CPL P3.0
SETB TR0
RETI
;***************************************************
;å®æ¶å¨1ä¸æåç¨åº
;***************************************************
INT_T1:
CLR TR1
CLR TR0
LCALL KEY_E
MOV TH1, #3CH
MOV TL1, #0BH
DJNZ 60H, OUT
MOV 60H, #20
OUT:
SETB TR1
RETI
KEY_E:
JB P3.1, L2 ;ä¸æé®çæ£æµ
LCALL DELAY2 ;æ¶é¤æå¨
JB P3.1, L2 ;å¦ææ¯é«çµå¹³å°±è·³å°L2
JNB P3.1, $ ;å¦æä»ç¶æ¯ä½çµå¹³å°±æ§è¡ä¸æç¨åº
MOV P2, #0111100B ;让LEDæ¾ç¤ºE,01111001
L3: JB P3.1, $ ;æ£æµä½çµå¹³ï¼ç´å°ä½çµå¹³æ¶æè·³åºè¯¥æ令
LCALL DELAY2
JB P3.1, L3
JNB P3.1, $ ;å¦æåæ¥ä¸ä¸ªé«çµå¹³æè·³åºä¸æ
MOV P2,R5
L2: SETB TR0
RET
GETKEY: ;读A B C Dé®çåç¨åº
SA: JB P1.0, SB ;读A,æ¯é«çµå¹³è¡¨ç¤ºæ²¡ææé®ï¼è·³è½¬å°SB
LCALL DELAY2
JB P1.0, SA
JNB P1.0, $
MOV P2, #01110111B ;æ¾ç¤ºA,01110111
MOV R5, #10001000B
MOV A, #0FFH
MOV B, #0AH
RET
SB: JB P1.1, C11 ;读Bï¼æ¯é«çµå¹³è¡¨ç¤ºæ²¡ææé®æä¸ï¼è·³è½¬å°C11
LCALL DELAY2
JB P1.1, SB
JNB P1.1, $
MOV P2, #01111100B ;æ¾ç¤ºB,01111100
MOV R5, #10000011B
MOV A, #0FFH
MOV B, #0BH
RET
C11:JB P1.2, ED1 ;读C
LCALL DELAY2
JB P1.2, C11
JNB P1.2, $
MOV P2, #00111001B ;æ¾ç¤ºC,00111001
MOV R5, #11000110B
MOV A, #0FFH
MOV B, #0CH
RET
ED1:
JB P1.3, L0 ;读D
LCALL DELAY2
JB P1.3, ED1
JNB P1.3, $
MOV P2, #01011110B ;æ¾ç¤ºD,01011110
MOV R5, #10100001B
MOV A, #0FFH
MOV B, #0DH
L0: JB UP,L01
LCALL DELAY2
JB UP,L01
JNB UP,$
MOV A,#0FFH
MOV B,#0EH
RET
L01:
JB DN,L02
LCALL DELAY2
JB DN,L02
JNB DN,$
MOV A,#0FFH
MOV B,#0FH
L02:
RET
GETWORD: ;读é³ä¹åºå·åç¨åº
S1: JB P1.4, S2 ;读1é®
LCALL DELAY2
JB P1.4, S1
JNB P1.4, $
MOV P2, #00000110B ;æ¾ç¤º1
MOV R5, #11111001B
MOV A, #0FFH
MOV B, #00H
RET
S2: JB P1.5, S3 ;读2é®
LCALL DELAY2
JB P1.5, S2
JNB P1.5, $
MOV P2, #01011011B ;æ¾ç¤º2
MOV R5, #10100100B
MOV A, #0FFH
MOV B, #01H
RET
S3: JB P1.6,S4 ;读3é®
LCALL DELAY2
JB P1.6,S3
JNB P1.6,$
MOV P2,#01001111B ;æ¾ç¤º3
MOV R5,#10110000B
MOV A,#0FFH
MOV B,#02H
RET
S4: JB P1.7, L1 ;读4é®
LCALL DELAY2
JB P1.7, S1
JNB P1.7, $
MOV P2, #01100110B ;æ¾ç¤º4
MOV R5, #10011001B
MOV A, #0FFH
MOV B, #03H
L1: RET
DELAY: ;延æ¶åç¨åº
PUSH 0 ;ä¿åç°åº
PUSH 1
MOV 0, #0H
DELAY1: MOV 1, #0H
DJNZ 1, $
DJNZ 0, DELAY1
POP 1 ;æ¢å¤ç°åº
POP 0
RET
DELAY2: MOV 41H, #100 ;延æ¶åç¨åº2
F1: MOV 42H, #250
DJNZ 42H, $
DJNZ 41H, F1
RET
DELAY3: ;延æ¶åç¨åº3
MOV R7, #2
W22: MOV R4, #125
W33: MOV R0, 248
DJNZ R0, $
DJNZ R4, W33
DJNZ R7, W22
DJNZ R1, DELAY3
RET
TABLE00: ;é¢ç表
DW 64260,64400,64524,64580 ;ç®ç å¼ ä½é³5, ä½é³6, ä½é³7,1
DW 64684,64777,64820,64898 ; ç®ç å¼ 2,3,4,5
DW 64968,65030,65058,65110 ; ç®ç å¼ 6,7,é«é³1,é«é³
DW 65157,65178,65217 ;ç®ç å¼ é«é³3,é«é³4,é«é³5
;--------------------------------------------------------------------
;第ä¸é¦ãæåä½ ã
;--------------------------------------------------------------------
TABLE10: DB 64H,82H,42H,48H
DB 54H,64H,18H
DB 44H,54H,64H,84H
DB 5CH
DB 64H,84H,44H,04H,42H
DB 54H,64H,28H
DB 54H,14H,54H,64H
DB 4CH
DB 98H,88H
DB 98H,48H
DB 64H,24H,64H,84H
DB 5CH
DB 64H,82H,42H,48H
DB 54H,64H, 28H
DB 54H,14H,54H,34H
DB 4CH
DB 00H
;--------------------------------------------------------------------
;第äºé¦ãä¸æ°´åå±±æ»æ¯æ ã
;--------------------------------------------------------------------
TABLE20: DB 64H,74H,84H,04H,82H,94H,84H,6CH
DB 54H,44H,04H,62H,54H,44H,2CH
DB 24H,18H, 44H,54H,64H,84H,94H,64H,5CH
DB 64H,74H,84H,04H,82H,94H,84H,6CH
DB 54H,44H,04H,62H,54H,44H,2CH
DB 24H,18H, 44H,64H,54H,04H,42H,24H,44H,4CH
DB 64H,84H,9CH,0A4H,94H,74H,84H,04H,92H,8CH,64H,88H
DB 64H,84H,9CH,0A4H,0A4H,94H,84H,64H,5CH
DB 64H,74H, 84H,04H,82H,94H,84H,6CH
DB 54H,44H,04H,62H,54H,44H,2CH
DB 24H,18H,44H,64H,54H,42H,24,44H,4CH
DB 00H
;--------------------------------------------------------------------
;第ä¸é¦ãéå«ã
;--------------------------------------------------------------------
TABLE30: DB 84H,62H,82H,0B8H
DB 94H,0B2H,92H,88H
DB 84H,42H,52H,64H,52H,44H
DB 5CH
DB 84H,62H,82H,0B4H,04H,82H
DB 94H,0B4H, 88H
DB 84H,52H,62H,74H,04H,32H
DB 4CH
DB 94H,0B4H,0B8H
DB 0A4H,92H,0A2H,0B8H
DB 92H,0A2H,0B2H,92H,92H,82H,62H,42H
DB 5CH
DB 84H,62H,82H,0B4H,04H,0A2H
DB 94H,0B4H,88H
DB 84H,52H,62H,74H,04H,32H
DB 4CH
DB 00H
;--------------------------------------------------------------------
;第åé¦ãå京欢è¿æ¨ã
;--------------------------------------------------------------------
TABLE40: DB 62H,82H,62H,52H,12H
DB 62H,52H,12H,64H
DB 62H,52H,22H,42H
DB 62H,54H
DB 52H,42H,22H,42H
DB 52H,62H,82H,52H
DB 62H,92H,82H,12H
DB 52H,44H
DB 52H,42H,22H,42H
DB 52H,62H,82H,52H
DB 62H,92H,82H,82H
DB 68H
DB 52H,62H,52H,42H
DB 82H,92H,64H
DB 22H,62H,64H
DB 54H,64H
DB 64H,84H
DB 0B2H,82H,94H
DB 02H,92H,82H,62H
DB 62H, 82H,88H
DB 00H
END
UP EQU P3.6
DN EQU P3.7
ORG 0000H
AJMP START ;Foscï¼12MHz
ORG 000BH ;T0 ä¸æå ¥å£å°å
AJMP INT_T0
ORG 001BH ;T1 ä¸æå ¥å£å°å
AJMP INT_T1
START:
MOV SP, #60H
MOV TMOD, #11H
MOV IE, #8AH
MOV IP, #08H ;T1ä¸æä¼å äºT0ä¸æ
MOV TH1, #3CH
MOV TL1, #0BH ;以ä¸ä¸ºç³»ç»åå§åï¼T=60ms
W1: MOV P2, #01110001B ;çå¾ æ示"F" ,01110001
LCALL GETKEY
CJNE A, #0FFH, W1
MOV A, B
CJNE A, #0AH, W2
LCALL KEY_A ;è¾å ¥é®æ¯'A',转KEY_A
SJMP W1
W2: CJNE A, #0BH, W3
LCALL KEY_B ;è¾å ¥é®æ¯'B',转KEY_B
W3: CJNE A, #0CH, W4
LCALL KEY_C ;è¾å ¥é®æ¯'C',转KEY_C
W4: CJNE A, #0DH, W5
LCALL KEY_D
SJMP W1 ;è¾å ¥é®æ¯'D',转KEY_D
W5: CJNE A,#0EH,W6 ;ä¸ä¸é¦
INC NUM
MOV A,NUM
CJNE A,#4,W51
W51:
JC W52
MOV NUM,#0
W52:
MOV A,NUM
SJMP D0
W6: CJNE A,#0FH,W7 ;ä¸ä¸é¦
MOV A,NUM
JNZ W61
MOV NUM,#4
W61:
DEC NUM
MOV A,NUM
SJMP D0
W7:
SJMP W1
KEY_A: ;ä»1ï½4æ顺åºææ¾
LCALL MUSIC1 ;ä¹æ²ãæåä½ ã
LCALL MUSIC2 ;ä¹æ²ãä¸æ°´åå±±æ»æ¯æ ã
LCALL MUSIC3 ;ä¹æ²ãéå«ã
LCALL MUSIC4 ;ä¹æ²ãå京欢è¿æ¨ã
RET
KEY_B: ;ä»1ï½4循ç¯ææ¾
T11: LCALL KEY_A
SJMP T11
RET
KEY_C: ;循ç¯ææ¾æä¸ä¹æ²
T3: LCALL GETWORD
CJNE A, #0FFH, T3
MOV A, B
D0:
JNZ D1
SJMP E0
D1: DEC A
JNZ D2
SJMP E1
D2: DEC A
JNZ E3
SJMP E2
E0: LCALL MUSIC1 ;ä¹æ²ãæåä½ ã
SJMP E0
E1: LCALL MUSIC2 ;ä¹æ²ãä¸æ°´åå±±æ»æ¯æ ã
SJMP E1
E2: LCALL MUSIC3 ;ä¹æ²ãéå«ã
SJMP E2
E3: LCALL MUSIC4 ;ä¹æ²ãå京欢è¿æ¨ã
SJMP E3
RET
KEY_D: ;ä»æä¸ä¹æ²å¼å§ææ¾ï¼ææ¾å®ååæ¢
T2: LCALL GETWORD
CJNE A, #0FFH, T2
MOV A, B
CJNE A, #00H, B1
SJMP C0
B1: CJNE A, #01H, B2
SJMP C1
B2: CJNE A, #02H, C3
SJMP C2
C0: LCALL MUSIC1 ;ä¹æ²ãæåä½ ã
C1: LCALL MUSIC2 ;ä¹æ² ãä¸æ°´åå±±æ»æ¯æ ã
C2: LCALL MUSIC3 ;ä¹æ²ãéå«ã
C3: LCALL MUSIC4 ;ä¹æ²ãå京欢è¿æ¨ã
RET
MUSIC1: ;第ä¸é¦ãæåä½ ã
MOV P2, #00000110B ;æ¾ç¤º1,00000110
MOV R5, #11111001B
MOV 52H, #HIGH TABLE10
MOV 53H, #LOW TABLE10
MOV NUM,#0
LCALL music
RET
MUSIC2: ;第äºé¦ãä¸æ°´åå±±æ»æ¯æ ã
MOV P2, #01011011B ;æ¾ç¤º2,01011011
MOV R5, #10100100B
MOV 52H, #HIGH TABLE20
MOV 53H, #LOW TABLE20
MOV NUM,#1
LCALL music
RET
MUSIC3: ;第ä¸é¦ãéå«ã
MOV P2, #01001111B ;æ¾ç¤º3,01001111
MOV R5, #10110000B
MOV 52H, #HIGH TABLE30
MOV 53H, #LOW TABLE30
MOV NUM,#2
LCALL music
RET
MUSIC4: ;第åé¦ãå京欢è¿æ¨ã
MOV P2, #01100110B ;æ¾ç¤º4,01100110
MOV R5, #10011001B
MOV 52H, #HIGH TABLE40
MOV 53H, #LOW TABLE40
MOV NUM,#3
LCALL music
RET
music: MOV R3,#00H ;é³ä¹è§£ç å¨
NEXT20:
MOV A,P3
ORL A,#0C0H
MOV P3,A
MOV A,P3
CPL A
ANL A,#0C0H
JZ NEXT21
POP ACC
POP ACC
LJMP W1
RET
NEXT21:
MOV A, R3
MOV DPH, 52H
MOV DPL, 53H
MOVC A, @A+DPTR
MOV R2, A
JZ STOP
ANL A, #0FH
MOV R1, A
MOV A, R2
SWAP A
ANL A, #0FH
JNZ SING
CLR TR0
JMP W11
;----------------------------------------------------------
SING:
DEC A
MOV 22H, A
RL A
MOV DPTR, #TABLE00
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
SETB TR1
W11:
LCALL DELAY3
INC R3
LJMP NEXT20
;-----------------------------------------------------------
STOP:
CLR TR0
CLR TR1
RET
;***************************************************
;å®æ¶å¨0ä¸æåç¨åº
;***************************************************
INT_T0:
CLR TR0
MOV TL0, 20H
MOV TH0, 21H
CPL P3.0
SETB TR0
RETI
;***************************************************
;å®æ¶å¨1ä¸æåç¨åº
;***************************************************
INT_T1:
CLR TR1
CLR TR0
LCALL KEY_E
MOV TH1, #3CH
MOV TL1, #0BH
DJNZ 60H, OUT
MOV 60H, #20
OUT:
SETB TR1
RETI
KEY_E:
JB P3.1, L2 ;ä¸æé®çæ£æµ
LCALL DELAY2 ;æ¶é¤æå¨
JB P3.1, L2 ;å¦ææ¯é«çµå¹³å°±è·³å°L2
JNB P3.1, $ ;å¦æä»ç¶æ¯ä½çµå¹³å°±æ§è¡ä¸æç¨åº
MOV P2, #0111100B ;让LEDæ¾ç¤ºE,01111001
L3: JB P3.1, $ ;æ£æµä½çµå¹³ï¼ç´å°ä½çµå¹³æ¶æè·³åºè¯¥æ令
LCALL DELAY2
JB P3.1, L3
JNB P3.1, $ ;å¦æåæ¥ä¸ä¸ªé«çµå¹³æè·³åºä¸æ
MOV P2,R5
L2: SETB TR0
RET
GETKEY: ;读A B C Dé®çåç¨åº
SA: JB P1.0, SB ;读A,æ¯é«çµå¹³è¡¨ç¤ºæ²¡ææé®ï¼è·³è½¬å°SB
LCALL DELAY2
JB P1.0, SA
JNB P1.0, $
MOV P2, #01110111B ;æ¾ç¤ºA,01110111
MOV R5, #10001000B
MOV A, #0FFH
MOV B, #0AH
RET
SB: JB P1.1, C11 ;读Bï¼æ¯é«çµå¹³è¡¨ç¤ºæ²¡ææé®æä¸ï¼è·³è½¬å°C11
LCALL DELAY2
JB P1.1, SB
JNB P1.1, $
MOV P2, #01111100B ;æ¾ç¤ºB,01111100
MOV R5, #10000011B
MOV A, #0FFH
MOV B, #0BH
RET
C11:JB P1.2, ED1 ;读C
LCALL DELAY2
JB P1.2, C11
JNB P1.2, $
MOV P2, #00111001B ;æ¾ç¤ºC,00111001
MOV R5, #11000110B
MOV A, #0FFH
MOV B, #0CH
RET
ED1:
JB P1.3, L0 ;读D
LCALL DELAY2
JB P1.3, ED1
JNB P1.3, $
MOV P2, #01011110B ;æ¾ç¤ºD,01011110
MOV R5, #10100001B
MOV A, #0FFH
MOV B, #0DH
L0: JB UP,L01
LCALL DELAY2
JB UP,L01
JNB UP,$
MOV A,#0FFH
MOV B,#0EH
RET
L01:
JB DN,L02
LCALL DELAY2
JB DN,L02
JNB DN,$
MOV A,#0FFH
MOV B,#0FH
L02:
RET
GETWORD: ;读é³ä¹åºå·åç¨åº
S1: JB P1.4, S2 ;读1é®
LCALL DELAY2
JB P1.4, S1
JNB P1.4, $
MOV P2, #00000110B ;æ¾ç¤º1
MOV R5, #11111001B
MOV A, #0FFH
MOV B, #00H
RET
S2: JB P1.5, S3 ;读2é®
LCALL DELAY2
JB P1.5, S2
JNB P1.5, $
MOV P2, #01011011B ;æ¾ç¤º2
MOV R5, #10100100B
MOV A, #0FFH
MOV B, #01H
RET
S3: JB P1.6,S4 ;读3é®
LCALL DELAY2
JB P1.6,S3
JNB P1.6,$
MOV P2,#01001111B ;æ¾ç¤º3
MOV R5,#10110000B
MOV A,#0FFH
MOV B,#02H
RET
S4: JB P1.7, L1 ;读4é®
LCALL DELAY2
JB P1.7, S1
JNB P1.7, $
MOV P2, #01100110B ;æ¾ç¤º4
MOV R5, #10011001B
MOV A, #0FFH
MOV B, #03H
L1: RET
DELAY: ;延æ¶åç¨åº
PUSH 0 ;ä¿åç°åº
PUSH 1
MOV 0, #0H
DELAY1: MOV 1, #0H
DJNZ 1, $
DJNZ 0, DELAY1
POP 1 ;æ¢å¤ç°åº
POP 0
RET
DELAY2: MOV 41H, #100 ;延æ¶åç¨åº2
F1: MOV 42H, #250
DJNZ 42H, $
DJNZ 41H, F1
RET
DELAY3: ;延æ¶åç¨åº3
MOV R7, #2
W22: MOV R4, #125
W33: MOV R0, 248
DJNZ R0, $
DJNZ R4, W33
DJNZ R7, W22
DJNZ R1, DELAY3
RET
TABLE00: ;é¢ç表
DW 64260,64400,64524,64580 ;ç®ç å¼ ä½é³5, ä½é³6, ä½é³7,1
DW 64684,64777,64820,64898 ; ç®ç å¼ 2,3,4,5
DW 64968,65030,65058,65110 ; ç®ç å¼ 6,7,é«é³1,é«é³
DW 65157,65178,65217 ;ç®ç å¼ é«é³3,é«é³4,é«é³5
;--------------------------------------------------------------------
;第ä¸é¦ãæåä½ ã
;--------------------------------------------------------------------
TABLE10: DB 64H,82H,42H,48H
DB 54H,64H,18H
DB 44H,54H,64H,84H
DB 5CH
DB 64H,84H,44H,04H,42H
DB 54H,64H,28H
DB 54H,14H,54H,64H
DB 4CH
DB 98H,88H
DB 98H,48H
DB 64H,24H,64H,84H
DB 5CH
DB 64H,82H,42H,48H
DB 54H,64H, 28H
DB 54H,14H,54H,34H
DB 4CH
DB 00H
;--------------------------------------------------------------------
;第äºé¦ãä¸æ°´åå±±æ»æ¯æ ã
;--------------------------------------------------------------------
TABLE20: DB 64H,74H,84H,04H,82H,94H,84H,6CH
DB 54H,44H,04H,62H,54H,44H,2CH
DB 24H,18H, 44H,54H,64H,84H,94H,64H,5CH
DB 64H,74H,84H,04H,82H,94H,84H,6CH
DB 54H,44H,04H,62H,54H,44H,2CH
DB 24H,18H, 44H,64H,54H,04H,42H,24H,44H,4CH
DB 64H,84H,9CH,0A4H,94H,74H,84H,04H,92H,8CH,64H,88H
DB 64H,84H,9CH,0A4H,0A4H,94H,84H,64H,5CH
DB 64H,74H, 84H,04H,82H,94H,84H,6CH
DB 54H,44H,04H,62H,54H,44H,2CH
DB 24H,18H,44H,64H,54H,42H,24,44H,4CH
DB 00H
;--------------------------------------------------------------------
;第ä¸é¦ãéå«ã
;--------------------------------------------------------------------
TABLE30: DB 84H,62H,82H,0B8H
DB 94H,0B2H,92H,88H
DB 84H,42H,52H,64H,52H,44H
DB 5CH
DB 84H,62H,82H,0B4H,04H,82H
DB 94H,0B4H, 88H
DB 84H,52H,62H,74H,04H,32H
DB 4CH
DB 94H,0B4H,0B8H
DB 0A4H,92H,0A2H,0B8H
DB 92H,0A2H,0B2H,92H,92H,82H,62H,42H
DB 5CH
DB 84H,62H,82H,0B4H,04H,0A2H
DB 94H,0B4H,88H
DB 84H,52H,62H,74H,04H,32H
DB 4CH
DB 00H
;--------------------------------------------------------------------
;第åé¦ãå京欢è¿æ¨ã
;--------------------------------------------------------------------
TABLE40: DB 62H,82H,62H,52H,12H
DB 62H,52H,12H,64H
DB 62H,52H,22H,42H
DB 62H,54H
DB 52H,42H,22H,42H
DB 52H,62H,82H,52H
DB 62H,92H,82H,12H
DB 52H,44H
DB 52H,42H,22H,42H
DB 52H,62H,82H,52H
DB 62H,92H,82H,82H
DB 68H
DB 52H,62H,52H,42H
DB 82H,92H,64H
DB 22H,62H,64H
DB 54H,64H
DB 64H,84H
DB 0B2H,82H,94H
DB 02H,92H,82H,62H
DB 62H, 82H,88H
DB 00H
END
温馨提示:答案为网友推荐,仅供参考
第1个回答 2015-06-09
你要先有多首歌曲的转化为代码曲库
其他还是比较容易的追问
其他还是比较容易的追问
曲库比较好找,就是仿真图和汇编语言不好写。
本回答被网友采纳第2个回答 2018-01-09
你知道,做完这个题目,需要多少时间吗?
要画图,要写程序,还要写报告。这是一份完成的毕业设计吗?工作量有多大?
还用汇编写程序?行,你慢慢等吧,祝你好梦成真。
要画图,要写程序,还要写报告。这是一份完成的毕业设计吗?工作量有多大?
还用汇编写程序?行,你慢慢等吧,祝你好梦成真。