目次1绪论-----------------------------------------------------------12系统功能-------------------------------------------------------13系统设计-------------------------------------------------------23.1主控单元----------------------------------------------------23.2STC12C5A60S2系列单片机单片机的A/D转换器-------------------103.3STC12C5A60S2系列单片机单片机的I/O口结构-------------------113.4频谱显示单元-----------------------------------------------144音频频谱显示相关问题-------------------------------------------164.1频谱及频谱显示---------------------------------------------164.2FFT运算规则及编程思想--------------------------------------175总结-----------------------------------------------------------22参考文献-------------------------------------------------------24致谢-----------------------------------------------------------23附录A源程序-------------------------------------------------25附录B系统电路图---------------------------------------------3211绪论随着电子技术的进步发展在功率放大器的设计上功能也不断更新。电子信息技术几乎主宰了整个电器行业的发展。我们知道,一切声音都是由振动产生的。声音之所以千变万化各不相同,是因为它们的振动各不相同。产生音调高低的不同,是由于振动的频率不同。频率越高,音高也就越高。根据傅立叶分析,任何声音可以分解为数个甚至无限个正弦波,而它们往往又包含有无数多的谐波分量。而它们又往往是时刻在变化着。所以一个声音的构成其实是很复杂的。将声音的频率分量绘制成曲线,就形成了频谱。本设计通过STC12C5A60S2单片机及外围器件组成的系统实现音频信号的频谱显示,将音频信号送入STC12C5A60S2单片机的A/D转换接口进行数据的采集和预处理,然后送入单片机中通过编程实现频谱计算,在LCD1604上实时显示音频信号的频谱。2系统功能图2.1为系统整体设计原理图图2.1系统整体设计原理图本设计以STC12C5A60S2单片机作为主控单元,进行数据采集,A/D转换,频谱计算(FFT),再由LCD1604显示频谱。且在完成系统其他控制任务的前提下,充分利用单片机剩余计算资源,采用优化FFT算法计算音频信号频谱。音频数据通过STC12C5A60S2的A/D接口实现模拟音频信号的采样保持和量化处理,包括音频采集和转换(该单片机内置A/D转换);频谱显示电路实现模拟音频信号频谱的分段显示,它将音频信号频谱划分成14段,每段按照14级量化,由音频信号数据采集,A/D转换FFT算法计算频谱值频谱显示电路2LCD1604显示器件显示。3系统设计3.1主控单元本设计以STC12C5A60S2单片机作为主控单元,进行频谱计算和数据采集,A/D转换,频谱计算(FFT)。3.1STC12C5A60S2系列单片机简介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.1.1.2STC12C5A60S2主要性能:▲高速:1个时钟/机器周期,速度比普通MCS一51单片机快8~l2倍;▲宽电压:5.5~3.3V,2.2~3.6V;▲低功耗设计:掉电模式(可由外部中断唤醒)。可支持下降沿/上升沿和远程唤醒;▲增加外部掉电检测电路,可在掉电时及时将数据保存EPROM;▲工作频率:0~35MHz,相当于普通MCS一51单片机的0~420MHz;▲8通道,10位高速ADC,速度可达25万次/秒,2路PWM还可当2路D/A使用;▲每个I/OEl驱动能力均可达到2OmA。但整个芯片最大不得超过100mA。图3.1为STC12C5A60S2单片机实物图3图3.1STC12C5A60S2单片机实物图3.1.2STC12C5A60S2系列单片机内部结构STC12C5A60S2系列单片机的内部结构框图如下图所示。STC12C5A60S2单片机中包含中央处理器(CPU)、程序存储器(Flash)、数据存储器(SRAM)、定时/计数器、UART串口、串口2、I/O接口、高速A/D转换、SPI接口、PCA、看门狗及片内R/C振荡器和外部晶体振荡电路等模块。STC12C5A60S2系列单片机几乎包含了数据采集和控制中所需的所有单元模块,可称得上一个片上系统。图3.2为STC12C5A60S2系列内部结构框图4图3.2STC12C5A60S2系列内部结构框图3.1.3STC12C5A60S2系列单片机管脚及管脚说明图3.3为STC12C5A60S2系列单片机管图5图3.3STC12C5A60S2系列单片机管图管脚说明:▲P0.0-P0.7:P0口既可作为输入/输出口,也可作为地址/数据复用总线使用。当P0口作为输入/输出口时,P0是一个8位准双向口,内部有弱上拉电阻,无需外接上拉电阻。当P0作为地址/数据复用总线使用时,是低8位地址线[A0-A7],数据线[D0-D7]。▲CLKOUT2/ADC0/P1.0:p1.0标准I/O口PORT1[0]ADC0ADC输入通道-0CLKOUT2独立波特率发生器的时钟输出,可通过设置WAKE-CLKO[2]位/BRT-CLKO将该管脚配置为CLKOUT2。▲ADC1/P1.0:p1.1标准I/O口PORT1[1]ADC1ADC输入通道-1▲RxD2/ECI/ADC2/P1.2:p1.2标准I/O口PORT1[2]ADC2ADC输入通道-2ECIPCA计数器的外部脉冲输入脚RxD2第二串口数据接收端▲TxD2/CCP0/ADC3/P1.3:P1.3标准I/O口PORT1[3]ADC3ADC输入通道-3CCP0外部信号捕获(频率测量或当外部中断使用)、高速脉冲输出及脉宽调制输出。TxD2第二串口数据发送端▲SS/CCP1/ADC4/P1.4:P1.4标准I/O口PORT1[4]ADC4ADC输入通道-4CCP1外部信号捕获(频率测量或当外部中断使用)、高速脉冲输出及脉宽调制输出。SSSPI同步串行接口的从机选择信号▲MOSI/ADC5/P1.5:P1.5标准I/O口PORT1[5]ADC5ADC输入通道-56MOSISPI同步串行接口的主出从入(主器件的输出和从器件的输入)▲MISO/ADC6/P1.6:P1.6标准I/O口PORT1[6]ADC6ADC输入通道-6MISOSPI同步串行接口的主入从出(主器件的输入和从器件的输出)▲SCLK/ADC7/P1.7:P1.7标准I/O口PORT1[7]ADC7ADC输入通道-7SCLKSPI同步串行接口的时钟信号▲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,下降沿中断或低电平中断▲1INT/P3.3:P3.3标准I/O口PORT3[3]1INT外部中断1,下降沿中断或低电平中断▲CLKOUT0/INT/T0/P3.4:P3.4标准I/O口PORT3[4]T0定时器/计数器0的外部输入INT定时器0下降沿中断CLKOUT0定时器/计数器0的时钟输出,可通过设置WAKE-CLKO[0]位/TOCLKO将该管脚设置为CLKOUT0▲CLKOUT1/INT/T1/P3.5:P3.5标准I/O口PORT3[5]7T1定时器/计数器1的外部输入INT定时器1下降沿中断CLKOUT1定时器/计数器1的时钟输出,课通过设置WAKE-CLKO[1]位/TOCLKO将该管脚设置为CLKOUT1▲WR/P3.6:P3.6标准I/O口PORT3[6]WR外部数据存储器写脉冲▲RD/P3.7:P3.7标准I/O口PORT3[7]RD外部数据存储器读脉冲▲SS/P4.0:P4.0标准I/O口PORT4[0]SSSPI同步串行接口的从机选择信号▲MOSI/ECI/P4.1:P4.1标准I/O口PORT4[1]ECIPCA计数器的外部脉冲输入脚MOSISPI同步串行接口的主出从入(主器件的输出和从器件的输入)▲MISO/CCP0/P4.2:P4.2标准I/O口PORT4[2]CCP0外部信号捕获(频率测量或是当外部中断使用),告诉脉冲输出或脉宽调制输出。MISOSPI同步串行接口的主入从出(主器件的输入和从器件的输出)▲SCLK/CCP1/P4.3:P4.3标准I/O口PORT4[3]CCP1外部信号捕获(频率测量或是当外部中断使用),告诉脉冲输出或脉宽调制输出。SCLKSPI同步串行接口的时钟信号▲NA/P4.4:P4.4标准I/O口PORT4[4]设置为1P4.4/NA脚为I/O口(P4.4)设置为0P4.4/NA脚是弱上拉,无任何功能。8▲ALE/P4.5:P4.5标准I/O口PORT4[5]ALE地址锁存允许▲EX-LVD/P4.6/RST2:P4.6标准I/O口PORT4[6]EX-LVD外部低压式中断/比较器RST2第二复位功能脚▲P4.7/RST:P4.7标准I/O口PORT4[7]RST复位脚▲P5.0:标准I/O口PORT5[0]▲P5.1:标准I/O口PORT5[1]▲P5.2:标准I/O口PORT5[2]▲P5.3:标准I/O口PORT5[3]▲XTAL1:内部时钟电路反相放大器输入端,接外部晶振的一个引脚,当直接使用外部时钟源时,此引脚是外部时钟的输入端。▲XTAL2:内部时钟电路反相放大器输出端,接外部晶振的另一端,当直接使用外部时钟源时,此引脚可悬空。此时XTAL2实际将XTAL1输入的时钟进行输出。▲VCC:电源▲GND:接地3.1.4STC12C5A60S2单片机最小应用系统图3.4为STC12C5A60S2单片机最小系统构成的电路图9图3.4STC12C5A60S2单片机最小系统构成的电路3.1.4.1系统组成▲复位电路:时钟频率低于12MHz时,可以不用C1,R1接1K电阻到地。时钟频率高于12MHz时,建议使用第二复位功能脚。(STC12C5A6