㈠ 在单片机汇编语言里,我用一个按键控制蜂鸣器控制播放音乐,请问,我该如何在用这个按键控制关断
这个很容易的,一般而言,播放音乐都是通过定时器来控制旋律或节拍的,你只要根据按键状态根据设计要求,改变TR0或TR1的值就可以关断或开启了。
㈡ 跪求基于51单片机的汇编语言音乐盒程序
OUT BIT P2.3 //该引脚接蜂鸣器
ORG 0000H
LJMP START
ORG 000BH
INC 20H ;中断服务,中断计数器加1
MOV TH0,#0D8H
MOV TL0,#0EFH ;12M晶振,形成10毫秒中断
RETI
START:
MOV SP,#50H
MOV TH0,#0D8H
MOV TL0,#0EFH
MOV TMOD,#01H
MOV IE,#82H
MUSIC0:
NOP
MOV DPTR,#DAT ;表头地址送DPTR
MOV 20H,#00H ;中断计数器清0
MOV B,#00H ;表序号清0
MUSIC1:
NOP
CLR A
MOVC A,@A+DPTR ;查表取代码
JZ END0 ;是00H,则结束
CJNE A,#0FFH,MUSIC5
LJMP MUSIC3
MUSIC5:
NOP
MOV R6,A
INC DPTR
MOV A,B
MOVC A,@A+DPTR ;取节拍代码送R7
MOV R7,A
SETB TR0 ;启动计数
MUSIC2:
NOP
CPL OUT
MOV A,R6
MOV R3,A
LCALL DEL
MOV A,R7
CJNE A,20H,MUSIC2 ;中断计数器(20H)=R7否?
;不等,则继续循环
MOV 20H,#00H ;等于,则取下一代码
INC DPTR
; INC B
LJMP MUSIC1
MUSIC3:
NOP
CLR TR0 ;休止100毫秒
MOV R2,#0DH
MUSIC4:
NOP
MOV R3,#0FFH
LCALL DEL
DJNZ R2,MUSIC4
INC DPTR
LJMP MUSIC1
END0:
NOP
MOV R2,#64H ;歌曲结束,延时1秒后继续
MUSIC6:
MOV R3,#00H
LCALL DEL
DJNZ R2,MUSIC6
LJMP MUSIC0
DEL:
NOP
DEL3:
MOV R4,#02H
DEL4:
NOP
DJNZ R4,DEL4
NOP
DJNZ R3,DEL3
RET
NOP
DAT:
db 26h,20h,20h,20h,20h,20h,26h,10h,20h,10h,20h,80h,26h,20h,30h,20h
db 30h,20h,39h,10h,30h,10h,30h,80h,26h,20h,20h,20h,20h,20h,1ch,20h
db 20h,80h,2bh,20h,26h,20h,20h,20h,2bh,10h,26h,10h,2bh,80h,26h,20h
db 30h,20h,30h,20h,39h,10h,26h,10h,26h,60h,40h,10h,39h,10h,26h,20h
db 30h,20h,30h,20h,39h,10h,26h,10h,26h,80h,26h,20h,2bh,10h,2bh,10h
db 2bh,20h,30h,10h,39h,10h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,20h
db 20h,10h,20h,10h,2bh,10h,26h,30h,30h,80h,18h,20h,18h,20h,26h,20h
db 20h,20h,20h,40h,26h,20h,2bh,20h,30h,20h,30h,20h,1ch,20h,20h,20h
db 20h,80h,1ch,20h,1ch,20h,1ch,20h,30h,20h,30h,60h,39h,10h,30h,10h
db 20h,20h,2bh,10h,26h,10h,2bh,10h,26h,10h,26h,10h,2bh,10h,2bh,80h
db 18h,20h,18h,20h,26h,20h,20h,20h,20h,60h,26h,10h,2bh,20h,30h,20h
db 30h,20h,1ch,20h,20h,20h,20h,80h,26h,20h,30h,10h,30h,10h,30h,20h
db 39h,20h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,10h,40h,10h,20h,10h
db 20h,10h,2bh,10h,26h,30h,30h,80h,00H
END
㈢ 如何从IDA(交互式反汇编)中提取音乐代码一般情况下是怎么判断音乐代码的入口地址
音乐来不会转换成代码。一般是playsound 类似源的API从文件中加载,所以IDA中 你如果要找playsound 调用音乐的这个代码 可以查看引用到这个API的代码。如果你想要那个音乐的MP3文件或者其他格式的文件,在IDA中是看不到了 用OD在内存中可能可以看到
一般你可以直接到那个文件目录里查找吧。大多数软件不会对这种音乐资源做加密。如果打成了个资源包了 那就又复杂了 OD 慢慢调试吧
㈣ 汇编 音乐 IN AL,61H MOV AH,AL OR AL,03H OUT 61H,AL 为什么还要读当前状态 61H是谁的(8255还是8253)
61H是8255口PB口的地址,这主要是8253定时器的控制端由PB1和PB0控制,PB0控制GATE,PB1控制扬声器的输出,(图太难画了),只有版当权PB0和PB1为1的时候,由8253控制的扬声器才能发生,先读然后或上03从端口送出,主要是不破坏原8255其它口的状态,因为这里修改主要是PB0,PB1
㈤ 汇编语言编写一个能播一段音乐的程序
我建议你还是自己琢磨琢磨吧,推荐你一本书,你上网络文库里搜一下,比你在网上要源代码有收获,是为了你好。《汇编入门秘诀》,除非你一点也不懂汇编,要不然你会自己解决的。