導航:首頁 > 操作系統 > 單片機按鈕實現播放音樂

單片機按鈕實現播放音樂

發布時間: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的視頻存在哪裡了 瀏覽:280
程序員幾年會淘汰 瀏覽:737
調試助手查詢sim卡命令 瀏覽:439
催眠程序員 瀏覽:774
python中3怎樣 瀏覽:106
米10安卓11怎麼升安卓12 瀏覽:347
安卓屏幕模式有什麼用 瀏覽:201
iphone換魅族安卓如何轉移數據 瀏覽:775
linux安裝命令rpm 瀏覽:328
太原方特app哪裡下載 瀏覽:709
小黑加密照片 瀏覽:403
安卓apaid怎麼發朋友圈 瀏覽:857
怎麼幫安卓手機換電池 瀏覽:388
python做伺服器監控 瀏覽:905
如何將pdf文件轉成jpg 瀏覽:130
破解so文件源碼 瀏覽:927
怎麼用命令符修復病毒 瀏覽:237
假裝程序員怎麼做 瀏覽:945
輕量應用伺服器怎麼改模板 瀏覽:828
網站源碼是多少文件 瀏覽:859