导航:首页 > 操作系统 > 单片机按钮实现播放音乐

单片机按钮实现播放音乐

发布时间:2024-10-24 21:57:05

1. 单片机播放音乐的原理

单片机发音原理:利用定时器或PWM功能,输出PWM,经一级有源滤波后放大驱动扬声器。
单片机演奏音乐基本是单音频率,它不包含相应幅度的谐波频率,
也就是说不能象电子琴那样能奏出多种音色的声音,但一定要弄清楚两个概念即可,也就是“音调”和“节拍” 。音调 表示一个音符唱多高的频率。节拍 表示一个音符唱多长的时间
1.要生产音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间.利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。

2. 利用8051的内部定时器使用其工作在计数器模式MODE1下,改变计数值THO及TLO以产生不同频率的方法。

2. 单片机怎么实现演奏两首歌(生日快乐+两只老虎) 汇编语言

;音乐生日快乐的播放
numtim equ 20h
EQUei equ 21h
EQUwei equ 22h
EQUnled equ 23h
EQU 000hORGp startJMPg 00bh
jORGtim0
oJMP100h
ORGart:; JB P3.7,$ ;检测播放按键是否按下
mov tmod,#00000001b
MOV mov ie,#10000010b
MOV mov numtim,#01h
startMOVov 30h,#00h

nextMOVv a,30h
mov MOVr,#table
MOVovc a,@a+dptr
mov r2,a
jz eMOV
anl aJZ0fh
mov r5,a
mov aMOV
swap MOV anl a,#0fh
jnz sing
clr tJNZ
jmp d1
sing: dec aJMP mov 22h,DEC rl aMOV mov dptr,#table1
MOVmovc a,@a+dptr
mov th0,a
mov MOV,a
mov MOV2h
rl aMOV inc a
movc a,@INCptr
mov tl0,a
mov MOV,a
setbMOV0
d1:lcall delay
inc 30h
jmp neINC
end0:clr JMP
jmp start0
tim0:puJMPacc
pushPUSH
mov PUSH2PSW
MOV th0,21h
MOV p1.6 ;由该口输出音频数据
pop psw
pop acc
POPrPSW

dPOPy: mov r7,#02h
d2: mov r4,#1MOV
d3: mov r3,#MOV
djnz r3,MOV djnz r4,d3
djnz r7,d2
djnz r5,delay
ret
table1: RET ;音乐码表
dw 64260,64400,64524,64580
DW dw 64684,64777,64820,64898
DW dw 64968,65030,65058,65110
DW dw 65157,65178,65217
table:dDW82h,01h,81h,94h,84h
DB 0b4h,0a4h,04h
db 82hDB1h,81h,94h,84h
DB 0c4h,0b4h,04h

db 8DB,01h,81h,0f4h,0d4h
DBdb 0b4h,0a4h,94h
db 0e2DB01h,0e1h,0d4h,0b4h
DB db 0c4h,0b4h,04h

db 8DB,01h,81h,94h,84h
DB 0b4h,0a4h,04h
db 82hDB1h,81h,94h,84h
DB 0c4h,0b4h,04h

db 8DB,01h,81h,0f4h,0d4h
DBdb 0b4h,0a4h,94h
db 0e2DB01h,0e1h,0d4h,0b4h
DB db 0c4h,0b4h,04h
db 00DB
TABLE2:DB 0C0H,0F9H,DB4H,0B0H,99H,92H,8DB,0F8H,80H,90H
end

END

我只有生日快乐的程序,希望对你有帮助,从我这个程序你了解了原理,你就可以随意搞了,玩熟悉了就简单了!

3. 怎么用单片机编写音乐程序

单片机比如51系列都有定时器,因此可以利用它来控制扬声器按一定频率发声,以下就是一个例程,用按键的按下和抬起来模拟电子琴的控制程序。

T0H EQU 30H

T0L EQU 31H

ORG 0000H

LJMP MAIN

ORG 000BH

LJMP T0ISR

ORG 0030H

MAIN:

MOV SP,#5FH

MOV TMOD,#01H

SETB ET0

SETB EA

LOOP:

MOV DPTR,#FREQ

MOV A,P2 ;控制高中低音区

MOV R1,#0

ANL A,#03H

JB ACC.0,LOOP01

MOV R1,#14

SJMP LOOP0

LOOP01:

JB ACC.1,LOOP0

MOV R1,#28

LOOP0:

JB P0.0,LOOP1 ;控制音频1234567

MOV A,R1

MOVC A,@A+DPTR

MOV T0H,A

INC DPTR

MOV A,R1

MOVC A,@A+DPTR

MOV T0L,A

LJMP LOOP

LOOP1:

JB P0.1,LOOP2

MOV A,R1

ADD A,#2

MOVC A,@A+DPTR

MOV T0H,A

INC DPTR

MOV A,R1

ADD A,#2

MOVC A,@A+DPTR

MOV T0L,A

LJMP LOOP

LOOP2:

JB P0.2,LOOP3

MOV A,R1

ADD A,#4

MOVC A,@A+DPTR

MOV T0H,A

INC DPTR

MOV A,R1

ADD A,#4

MOVC A,@A+DPTR

MOV T0L,A

LJMP LOOP

LOOP3:

JB P0.3,LOOP4

MOV A,R1

ADD A,#6

MOVC A,@A+DPTR

MOV T0H,A

INC DPTR

MOV A,R1

ADD A,#6

MOVC A,@A+DPTR

MOV T0L,A

LJMP LOOP

LOOP4:

JB P0.4,LOOP5

MOV A,R1

ADD A,#8

MOVC A,@A+DPTR

MOV T0H,A

INC DPTR

MOV A,R1

ADD A,#8

MOVC A,@A+DPTR

MOV T0L,A

LJMP LOOP

LOOP5:

JB P0.5,LOOP6

MOV A,R1

ADD A,#10

MOVC A,@A+DPTR

MOV T0H,A

INC DPTR

MOV A,R1

ADD A,#10

MOVC A,@A+DPTR

MOV T0L,A

LJMP LOOP

LOOP6:

JB P0.6,LOOP7

MOV A,R1

ADD A,#12

MOVC A,@A+DPTR

MOV T0H,A

INC DPTR

MOV A,R1

ADD A,#12

MOVC A,@A+DPTR

MOV T0L,A

LJMP LOOP

LOOP7:

CLR TR0

LJMP LOOP

;-----------------------------

T0ISR:

CLR TR0

MOV TH0,T0H

MOV TL0,T0L

SETB TR0

CPL P3.0

RETI

;-----------------------------

FREQ:

DB 0F2H,03DH ;低音1

DB 0F3H,0BDH ;低音2

DB 0F5H,014H ;低音3

DB 0F5H,0B1H ;低音4

DB 0F6H,0D0H ;低音5

DB 0F7H,0D1H ;低音6

DB 0F8H,0B5H ;低音7


DB 0F9H,01EH ;中音1

DB 0F9H,0DEH ;中音2

DB 0FAH,08AH ;中音3

DB 0FAH,0D8H ;中音4

DB 0FBH,068H ;中音5

DB 0FBH,0E8H ;中音6

DB 0FCH,05AH ;中音7

DB 0FCH,08FH ;高音1

DB 0FCH,0EFH ;高音2

DB 0FDH,045H ;高音3

DB 0FDH,06CH ;高音4

DB 0FDH,0B4H ;高音5

DB 0FDH,0F4H ;高音6

DB 0FEH,029H ;高音7

;-----------------------------

END


阅读全文

与单片机按钮实现播放音乐相关的资料

热点内容
在哪里能制作手机app 浏览:163
python搭建web网站 浏览:679
空乘程序员 浏览:345
玩加密币犯法吗 浏览:241
html加载pdf 浏览:1000
git源码如何本地编译命令 浏览:868
单片机研究报告 浏览:265
天正建筑命令栏 浏览:598
加密货币应税事件 浏览:459
宋pro的app哪里下载 浏览:207
单片机原理与接口技术第三版课后答案 浏览:890
程序员小明教学 浏览:613
linuxbin解压缩 浏览:382
四川电信服务器租用云空间 浏览:31
我的世界服务器内存大怎么办 浏览:388
互联网与服务器链接不成功怎么办 浏览:645
python拆分数组 浏览:83
虚机服务器怎么增加D盘的空间 浏览:502
程序员搬运 浏览:65
手机app的视频存在哪里了 浏览:280