dw如何实现单击按钮实现播放歌曲功能代码怎么写?

 我来答
zhxiufan
推荐于2016-11-01 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38385
国家科技进步奖

向TA提问 私信TA
展开全部

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

博思aippt
2024-07-20 广告
博思AIPPT是基于ai制作PPT的智能在线工具,它提供了4种AI制作PPT的方式,包括AI生成大纲、AI直接生成PPT、文本生成PPT、AI提炼文档生成PPT,一站式集成多种AI生成PPT的方式,可满足办公用户的不同需求和使用场景。ai生... 点击进入详情页
本回答由博思aippt提供
一声息lily
2013-07-06 · TA获得超过163个赞
知道答主
回答量:113
采纳率:75%
帮助的人:38.8万
展开全部
<audio controls="controls" loop="-1">
<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.

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式