基于单片机的音频频谱显示器设计
- 格式:doc
- 大小:964.00 KB
- 文档页数:46
基于单片机的音频频谱显示器设计
1 / 46
目 次
1 绪论-----------------------------------------------------------1
2 系统功能-------------------------------------------------------1
3 系统设计-------------------------------------------------------2
3.1 主控单元----------------------------------------------------2
3.2 STC12C5A60S2 系列单片机单片机的A/D转换器-------------------10
3.3 STC12C5A60S2 系列单片机单片机的I/O口结构-------------------11
3.4 频谱显示单元-----------------------------------------------14
4 音频频谱显示相关问题-------------------------------------------16
4.1 频谱与频谱显示---------------------------------------------16
4.2 FFT运算规则与编程思想--------------------------------------17
5 总结-----------------------------------------------------------22
参考文献-------------------------------------------------------24
致谢-----------------------------------------------------------23
附录A 源程序-------------------------------------------------25
附录B 系统电路图---------------------------------------------32
基于单片机的音频频谱显示器设计
1 / 46 1 绪论
随着电子技术的进步发展在功率放大器的设计上功能也不断更新。电子信息技术几乎主宰了整个电器行业的发展。
我们知道,一切声音都是由振动产生的。声音之所以千变万化各不相同,是因为它们的振动各不相同。产生音调高低的不同,是由于振动的频率不同。频率越高,音高也就越高。根据傅立叶分析,任何声音可以分解为数个甚至无限个正弦波,而它们往往又包含有无数多的谐波分量。而它们又往往是时刻在变化着。所以一个声音的构成其实是很复杂的。将声音的频率分量绘制成曲线,就形成了频谱。
本设计通过STC12C5A60S2单片机与外围器件组成的系统实现音频信号的频谱显示,将音频信号送入STC12C5A60S2单片机的A/D转换接口进行数据的采集和预处理, 然后送入单片机中通过编程实现频谱计算,在LCD1604上实时显示音频信号的频谱。
2 系统功能
图2.1为系统整体设计原理图
图2.1 系统整体设计原理图
本设计以STC12C5A60S2单片机作为主控单元,进行数据采集,A/D
音频信号 数据采集,A/D转换 FFT算法计算频谱值 频谱显示电路 基于单片机的音频频谱显示器设计
2 / 46 转换,频谱计算(FFT),再由LCD1604显示频谱。且在完成系统其他控制任务的前提下,充分利用单片机剩余计算资源,采用优化FFT算法计算音频信号频谱。音频数据通过STC12C5A60S2的A/D接口实现模拟音频信号的采样保持和量化处理,包括音频采集和转换(该单片机内置A/D转换);频谱显示电路实现模拟音频信号频谱的分段显示,它将音频信号频谱划分成14段,每段按照14级量化,由LCD1604显示器件显示。
3 系统设计
3.1 主控单元
本设计以STC12C5A60S2单片机作为主控单元,进行频谱计算和数据采集,A/D转换,频谱计算(FFT)。
3.1 STC12C5A60S2 系列单片机简介
3.1.1.1 简介
STC12C5A6OS2是宏晶公司推出的完全集成的混合信号片上系统MCU。1个时钟/机器周期,低成本、高可靠性、高速A/D转换。带8通道模拟多路开关, 转换速度250K/S(25万次/秒);具有可编程数据更新方式;60KB系统编程的Flash内存。1280字节的片内RAM, 可寻址64KB地址空间的外部数据存储器接口。硬件实现的ISP/IPA在线系统可编程/在线应用可编程。可通过串口(P3.0/P3.1)直接下载用户程序:6个通用 的16位定时器。兼容普通8051的定时器T0/T1 , 4路PCA也是4个定时器:2通道捕获/比较单元(PWM2路/PCA可编程计数器阵列4路/CCU)一可用来当2路D/A使用、用来再实现2个定时器或2个外部中断STC12C5A60S2是真正能独立工作的片上系统STC12C5A60S2的功基于单片机的音频频谱显示器设计
3 / 46 能 均可由用户进行设置使能/禁止。
3.1.1.2 STC12C5A60S2主要性能:
▲ 高速:1个时钟/机器周期,速度比普通MCS一51单片机快8~l2倍;
▲ 宽电压:5.5~3 .3 V,2 .2~3 .6 V;
▲ 低功耗设计:掉电模式(可由外部中断唤醒)。可支持下降沿/上升沿和远程唤醒;
▲ 增加外部掉电检测电路,可在掉电时与时将数据保存EPROM;
▲ 工作频率:0~35 MHz,相当于普通MCS一51单片机的0~420
MHz ;
▲ 8通道,10位高速ADC,速度可达25万次/秒,2路PWM还可当2路D/A使用;
▲ 每个I/OEl驱动能力均可达到2OmA。但整个芯片最大不得超过100mA。
图3.1为STC12C5A60S2 单片机实物图 基于单片机的音频频谱显示器设计
4 / 46
图3.1 STC12C5A60S2 单片机实物图
3.1.2 STC12C5A60S2 系列单片机内部结构
STC12C5A60S2系列单片机的内部结构框图如下图所示。STC12C5A60S2单片机中包含中央处理器(CPU)、程序存储器(Flash)、数据存储器(SRAM)、定时/计数器、UART串口、串口2、I/O接口、高速A/D转换、SPI接口、PCA、看门狗与片内R/C振荡器和外部晶体振荡电路等模块。STC12C5A60S2系列单片机几乎包含了数据采集和控制中所需的所有单元模块,可称得上一个片上系统。
图3.2为STC12C5A60S2系列内部结构框图 基于单片机的音频频谱显示器设计
5 / 46
图3.2 STC12C5A60S2系列内部结构框图
3.1.3 STC12C5A60S2 系列单片机管脚与管脚说明
图3.3为STC12C5A60S2系列单片机管图 基于单片机的音频频谱显示器设计
6 / 46
图3.3 STC12C5A60S2系列单片机管图
管脚说明:
▲P0.0-P0.7:P0口既可作为输入/输出口,也可作为地址/数据复用总线使用。当P0口作为输入/输出口时,P0是一个8位准双向口,内部有弱上拉电阻,无需外接上拉电阻。当P0作为地址/数据复用总线使用时,是低8位地址线 [A0-A7],数据线 [D0-D7]。
▲CLKOUT2/ADC0/ P1.0:p1.0 标准I/O口 PORT1[0]
ADC0 ADC 输入通道-0
CLKOUT2 独立波特率发生器的时钟输出,可通过设置WAKE-CLKO[2]位/BRT-CLKO将该管脚配置为CLKOUT2。
▲ADC1/P1.0:p1.1 标准I/O口 PORT1[1]
ADC1 ADC 输入通道-1 基于单片机的音频频谱显示器设计
7 / 46 ▲RxD2 /ECI / ADC2/P1.2:p1.2 标准I/O口 PORT1[2]
ADC2 ADC 输入通道-2
ECI PCA计数器的外部脉冲输入脚
RxD2 第二串口数据接收端
▲TxD2 /CCP0/ADC3/P1.3:P1.3 标准I/O口 PORT1[3]
ADC3 ADC 输入通道-3
CCP0 外部信号捕获(频率测量或当外部中断使用)、高速脉冲输出与脉宽调制输出。
TxD2 第二串口数据发送端
▲SS/CCP1/ADC4/ P1.4:P1.4 标准I/O口 PORT1[4]
ADC4 ADC 输入通道-4
CCP1 外部信号捕获(频率测量或当外部中断使用)、高速脉冲输出与脉宽调制输出。
SS SPI同步串行接口的从机选择信号
▲MOSI/ADC5 /P1.5:P1.5 标准I/O口 PORT1[5]
ADC5 ADC 输入通道-5
MOSI SPI同步串行接口的主出从入(主器件的输出和从器件的输入)
▲MISO/ADC6/P1.6:P1.6 标准I/O口 PORT1[6]
ADC6 ADC 输入通道-6
MISO SPI同步串行接口的主入从出(主器件的基于单片机的音频频谱显示器设计
8 / 46 输入和从器件的输出)
▲SCLK/ADC7/P1.7:P1.7 标准I/O口 PORT1[7]
ADC7 ADC 输入通道-7
SCLK SPI同步串行接口的时钟信号
▲P2.0-P2.7:P2口内部有上拉电阻,即可以作为输入/输出,也可以作为高8位地址总线使用[A8-A15],当P2口作为输入/输出口时,P2是一个8位准双向口。
▲RxD/ P3.0:P3.0 标准I/O口 PORT3[0]
RxD 串口1数据接收端
▲TxD/P3.1:P3.1 标准I/O口 PORT3[1]
TxD 串口1数据发送端
▲0INT /P3.2:P3.2 标准I/O口 PORT3[2]
0INT外部中断0,下降沿中断或低电平中断