dw如何实现单击按钮实现播放歌曲功能代码怎么写?
DW只是定位数据的一个伪指令,本身是无法实现单击按钮播放歌曲的,只能将一些播放歌曲的相关数据比如频率、节奏、旋律等定义出来,举例如下:
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, #00000110B ;显示1,00000110
MOV R5, #11111001B
MOV 52H, #HIGH TABLE10
MOV 53H, #LOW TABLE10
MOV NUM,#0
music: MOV R3,#00H ;音乐解码器
NEXT20:
MOV A,P3
ORL A,#0C0H
MOV P3,A
MOV A,P3
CPL A
ANL A,#0C0H
JZ NEXT21
LJMP W1
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
ljmp start
;***************************************************
;定时器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
END
2024-07-20 广告
<source src="/i/song.ogg" type="audio/ogg">
<source src="../music/王筝 - 想把我唱给你听.mp3" type="audio/mp3" >
Your browser does not support the audio element.
</audio><br />
../music/王筝 - 想把我唱给你听.mp3是你的歌曲与网页的相对地址。
为什么没有用到html
这只是HTML中的一段代码。。。。要灵活应用。
Your browser does not support the audio element.