求单片机音乐频谱程序,并且解释下蓝牙模块怎样接收

求单片机音乐频谱程序,并且解释下蓝牙模块怎样接收,第1张

这是音乐频谱程序之一,可以参考一下:

T0HEQU 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

傅立叶转换,将采样到的数据使用LED灯排对应输出即可。比如8*8的LED排,那么,你可以使用74HC595来做驱动,采样128个点。那么,第一个点开启第一众排的LED,然后送数据显示,然后第二点送第二排的LED,然后送数据显示,依次类推....来回循环就可以实现啦。

12864可以作为显示器件

频谱分析涉及到FFT,如果你这个不会,那还是再学习学习吧。

简单原理: 通过快速FFT将音频分析成多个正弦波的组合,正弦波的频率就是高音低音,振幅就是音量的大小。

FFT运算量比较大,普通51难以接受,要选用1T的高速51,

声音信号要通过ad进行采样,然后将其进行分析,所以要选用一个精度高速度快的ad,一般高档51中ad可以胜任这个工作

声音信号在ad采样之前需要调整成合适振幅的信号


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7805559.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存