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

求单片机音乐频谱程序,并且解释下蓝牙模块怎样接收,第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

设计的相关音乐说明

要产生音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期时间。利用半周期时间定时这个半周期时间,每当计时到后就将输出的I/O反向,然后重复计时此半周期再对I/O反向,就可以在I/O脚上得到此频率的脉冲。

记数脉冲值与频率的关系公式如:N=Fi/2/Fr。N:记数值;Fi:内部计时依次为1us,故其频率为1 MHZ;Fr:要产生的频率。

其记数值的求法如:T=65536-N=65536-Fi/2/Fr。例:设K=65536,F=1000000=Fi=1 MHZ。求低音DO(26HZ),中音DO(523HZ),高音DO(1046HZ)的记数值。

每个音符使用1个音节,字节的高四位代表音符的高低,低四位代表音符的节拍。如果1拍为0.4秒,1/4拍为0.1秒,假设1/4拍为 DELAY,则1拍为4 DELAY。

扩展资料

功能特性

1,可以仿真63K程序空间,接近64K 的16位地址空间;

2,可以仿真64Kxdata 空间,全部64K 的16位地址空间;

3,可以真实仿真全部32 条IO脚;

4,完全兼容keilC51 UV2 调试环境,可以通过UV2 环境进行单步,断点, 全速等 *** 作;

5,可以使用C51语言或者ASM汇编语言进行调试 ;

6,可以非常方便地进行所有变量观察,包括鼠标取值观察,即鼠标放在某 变量上就会立即显示出它此的值;

7,可选 使用用户晶振,支持0-40MHZ晶振频率;

8,片上带有768字节的xdata,您可以在仿真时选 使用他们,进行xdata 的仿真;

9,可以仿真双DPTR 指针;

10,可以仿真去除ALE 信号输出. ;

11,自适应300-38400bps 的所有波特率通讯;

12,体积非常细小,非常方便插入到用户板中.插入时紧贴用户板,没有连接电缆,这样可以有效地减少运行中的干扰,避免仿真时出现莫名其妙的故障;

13,仿真插针采用优质镀金插针,可以有效地防止日久生锈,选择优质园脚IC插座,保护仿真插针,同时不会损坏目标板上的插座. ;

14,仿真时监控和用户代码分离,不可能产生不能仿真的软故障;

15,RS-232接口不计成本采用MAX202集成电路,串行通讯稳定可靠,绝非一般三极管的简易电路可比。

参考资料来源:百度百科-51单片机

12864可以作为显示器件

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

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

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

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

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


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

原文地址:https://54852.com/yw/11233569.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存