ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:779.18KB ,
资源ID:5367986      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5367986.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机的音频频谱显示器设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于单片机的音频频谱显示器设计.docx

1、基于单片机的音频频谱显示器设计目 次1 绪论-12 系统功能-13 系统设计-2 3.1 主控单元-2 3.2 STC12C5A60S2 系列单片机单片机的A/D转换器-103.3 STC12C5A60S2 系列单片机单片机的I/O口结构-11 3.4 频谱显示单元-144 音频频谱显示相关问题-16 4.1 频谱及频谱显示-16 4.2 FFT运算规则及编程思想-175 总结-22参考文献-24致谢-23 附录A 源程序-25 附录B 系统电路图-321 绪论随着电子技术的进步发展在功率放大器的设计上功能也不断更新。电子信息技术几乎主宰了整个电器行业的发展。我们知道,一切声音都是由振动产生的

2、。声音之所以千变万化各不相同,是因为它们的振动各不相同。产生音调高低的不同,是由于振动的频率不同。频率越高,音高也就越高。根据傅立叶分析,任何声音可以分解为数个甚至无限个正弦波,而它们往往又包含有无数多的谐波分量。而它们又往往是时刻在变化着。所以一个声音的构成其实是很复杂的。将声音的频率分量绘制成曲线,就形成了频谱。本设计通过STC12C5A60S2单片机及外围器件组成的系统实现音频信号的频谱显示,将音频信号送入STC12C5A60S2单片机的A/D转换接口进行数据的采集和预处理, 然后送入单片机中通过编程实现频谱计算,在LCD1604上实时显示音频信号的频谱。2 系统功能 图2.1为系统整体

3、设计原理图图2.1 系统整体设计原理图本设计以STC12C5A60S2单片机作为主控单元,进行数据采集,A/D转换,频谱计算(FFT),再由LCD1604显示频谱。且在完成系统其他控制任务的前提下,充分利用单片机剩余计算资源,采用优化FFT算法计算音频信号频谱。音频数据通过STC12C5A60S2的A/D接口实现模拟音频信号的采样保持和量化处理,包括音频采集和转换(该单片机内置A/D转换);频谱显示电路实现模拟音频信号频谱的分段显示,它将音频信号频谱划分成14段,每段按照14级量化,由LCD1604显示器件显示。3 系统设计 3.1 主控单元 本设计以STC12C5A60S2单片机作为主控单元

4、,进行频谱计算和数据采集,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的定时

5、器T0/T1 , 4路PCA也是4个定时器:2通道捕获/比较单元(PWM2路/PCA可编程计数器阵列4路/CCU)一可用来当2路D/A使用、用来再实现2个定时器或2个外部中断STC12C5A60S2是真正能独立工作的片上系统STC12C5A60S2的功能 均可由用户进行设置使能/禁止。3.1.1.2 STC12C5A60S2主要性能: 高速:1个时钟机器周期,速度比普通MCS一51单片机快8l2倍; 宽电压:5.53 .3 V,2 .23 .6 V; 低功耗设计:掉电模式(可由外部中断唤醒)。可支持下降沿上升沿和远程唤醒; 增加外部掉电检测电路,可在掉电时及时将数据保存EPROM; 工作频率:

6、035 MHz,相当于普通MCS一51单片机的0420 MHz ; 8通道,10位高速ADC,速度可达25万次/秒,2路PWM还可当2路D/A使用; 每个IOEl驱动能力均可达到2OmA。但整个芯片最大不得超过100mA。 图3.1为STC12C5A60S2 单片机实物图 图3.1 STC12C5A60S2 单片机实物图 3.1.2 STC12C5A60S2 系列单片机内部结构STC12C5A60S2系列单片机的内部结构框图如下图所示。STC12C5A60S2单片机中包含中央处理器(CPU)、程序存储器(Flash)、数据存储器(SRAM)、定时/计数器、UART串口、串口2、I/O接口、高速

7、A/D转换、SPI接口、PCA、看门狗及片内R/C振荡器和外部晶体振荡电路等模块。STC12C5A60S2系列单片机几乎包含了数据采集和控制中所需的所有单元模块,可称得上一个片上系统。 图3.2为STC12C5A60S2系列内部结构框图图3.2 STC12C5A60S2系列内部结构框图3.1.3 STC12C5A60S2 系列单片机管脚及管脚说明 图3.3为STC12C5A60S2系列单片机管图 图3.3 STC12C5A60S2系列单片机管图 管脚说明:P0.0-P0.7:P0口既可作为输入/输出口,也可作为地址/数据复用总线使用。当P0口作为输入/输出口时,P0是一个8位准双向口,内部有弱

8、上拉电阻,无需外接上拉电阻。当P0作为地址/数据复用总线使用时,是低8位地址线 A0-A7,数据线 D0-D7。CLKOUT2/ADC0/ P1.0:p1.0 标准I/O口 PORT10 ADC0 ADC 输入通道-0 CLKOUT2 独立波特率发生器的时钟输出,可通过设置WAKE-CLKO2位/BRT-CLKO将该管脚配置为CLKOUT2。ADC1/P1.0:p1.1 标准I/O口 PORT11 ADC1 ADC 输入通道-1 RxD2 /ECI / ADC2/P1.2:p1.2 标准I/O口 PORT12 ADC2 ADC 输入通道-2 ECI PCA计数器的外部脉冲输入脚 RxD2 第二

9、串口数据接收端TxD2 /CCP0/ADC3/P1.3:P1.3 标准I/O口 PORT13 ADC3 ADC 输入通道-3 CCP0 外部信号捕获(频率测量或当外部中断使用)、高速脉冲输出及脉宽调制输出。 TxD2 第二串口数据发送端SS/CCP1/ADC4/ P1.4:P1.4 标准I/O口 PORT14 ADC4 ADC 输入通道-4 CCP1 外部信号捕获(频率测量或当外部中断使用)、高速脉冲输出及脉宽调制输出。 SS SPI同步串行接口的从机选择信号MOSI/ADC5 /P1.5:P1.5 标准I/O口 PORT15 ADC5 ADC 输入通道-5 MOSI SPI同步串行接口的主出

10、从入(主器件的输出和从器件的输入)MISO/ADC6/P1.6:P1.6 标准I/O口 PORT16 ADC6 ADC 输入通道-6 MISO SPI同步串行接口的主入从出(主器件的输入和从器件的输出)SCLK/ADC7/P1.7:P1.7 标准I/O口 PORT17 ADC7 ADC 输入通道-7 SCLK SPI同步串行接口的时钟信号P2.0-P2.7:P2口内部有上拉电阻,即可以作为输入/输出,也可以作为高8位地址总线使用A8-A15,当P2口作为输入/输出口时,P2是一个8位准双向口。 RxD/ P3.0:P3.0 标准I/O口 PORT30 RxD 串口1数据接收端TxD/P3.1:

11、P3.1 标准I/O口 PORT31 TxD 串口1数据发送端 /P3.2:P3.2 标准I/O口 PORT32 外部中断0,下降沿中断或低电平中断/ P3.3:P3.3 标准I/O口 PORT33 外部中断1,下降沿中断或低电平中断CLKOUT0/T0/P3.4:P3.4 标准I/O口 PORT34 T0 定时器/计数器0的外部输入 定时器0下降沿中断 CLKOUT0 定时器/计数器0的时钟输出,可通过设置WAKE-CLKO0位/TOCLKO将该管脚设置为CLKOUT0CLKOUT1/T1/P3.5:P3.5 标准I/O口 PORT35 T1 定时器/计数器1的外部输入 定时器1下降沿中断

12、CLKOUT1 定时器/计数器1的时钟输出,课通过设置WAKE-CLKO1位/TOCLKO将该管脚设置为CLKOUT1 /P3.6:P3.6 标准I/O口 PORT36 外部数据存储器写脉冲/ P3.7:P3.7 标准I/O口 PORT37 外部数据存储器读脉冲/P4.0:P4.0 标准I/O口 PORT40 SPI同步串行接口的从机选择信号MOSI/ECI/P4.1:P4.1 标准I/O口 PORT41 ECI PCA计数器的外部脉冲输入脚 MOSI SPI同步串行接口的主出从入(主器件的输出和从器件的输入) MISO/CCP0/P4.2:P4.2 标准I/O口 PORT42 CCP0 外部

13、信号捕获(频率测量或是当外部中断使用),告诉脉冲输出或脉宽调制输出。MISO SPI同步串行接口的主入从出(主器件的输入和从器件的输出)SCLK/CCP1/P4.3:P4.3 标准I/O口 PORT43 CCP1 外部信号捕获(频率测量或是当外部中断使用),告诉脉冲输出或脉宽调制输出。SCLK SPI同步串行接口的时钟信号 NA/P4.4:P4.4 标准I/O口 PORT44 设置为1 P4.4/NA脚为I/O口(P4.4) 设置为0 P4.4/NA脚是弱上拉,无任何功能。ALE/P4.5:P4.5 标准I/O口 PORT45 ALE 地址锁存允许EX-LVD/P4.6/RST2:P4.6 标

14、准I/O口 PORT46 EX-LVD 外部低压式中断/比较器 RST2 第二复位功能脚P4.7/RST:P4.7 标准I/O口 PORT47 RST 复位脚P5.0:标准I/O口 PORT50P5.1:标准I/O口 PORT51P5.2:标准I/O口 PORT52P5.3:标准I/O口 PORT53XTAL1:内部时钟电路反相放大器输入端,接外部晶振的一个引脚,当直接使用外部时钟源时,此引脚是外部时钟的输入端。XTAL2:内部时钟电路反相放大器输出端,接外部晶振的另一端,当直接使用外部时钟源时,此引脚可悬空。此时XTAL2实际将XTAL1输入的时钟进行输出。VCC:电源GND:接地3.1.4

15、 STC12C5A60S2 单片机最小应用系统图3.4为STC12C5A60S2单片机最小系统构成的电路图图3.4 STC12C5A60S2单片机最小系统构成的电路3.1.4.1 系统组成 复位电路:时钟频率低于12MHz时,可以不用C1,R1接1K电阻到地。时钟频率高于12MHz时,建议使用第二复位功能脚。(STC12C5A60S2系列在RST2/EX_LVD/P4.6口STC12C5201AD系列RST2/EX_LVD/P1.2口) 晶振电路:如果外部时钟频率在33MHz以上时,建议直接使用外部有源晶振。如果使用内部R/C振荡器时钟(室温情况下5V单片机为:11MHz17MHz,3V单片机

16、为8MHz12MHz),XTAL1和XTAL2脚浮空。如果外部时钟频率在27MHz以上时,使用标称频率就是基本频率的晶体,不要使用三泛音的晶体,否则如参数搭配不当,就有可能振在基频,此时实际频率就只有标称频率的1/3了,或直接使用外部有源晶振,时钟从XTAL1脚输入,XTAL2脚必须浮空。3.1.4.2 结构特点 复位电路的极性电容C1的大小直接影响单片机的复位时间,一般采用1030uF,51单片机最小系统容值越大需要的复位时间越短。 晶振Y1也可以采用6MHz或者11.0592MHz,在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大

17、处理速度越快。 起振电容C2、C3一般采用1533pF,并且电容离晶振越近越好,晶振离单片机越近越好4.P0口为开漏输出,作为输出口时需加上拉电阻,阻值一般为10k。 设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值N乘以机器周期Tcy就是定时时间t。 设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。在每个机器周期的S5P2期间采样T0、T1引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。由于检测一个从1到0的下降

18、沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2 ms。3.2 STC12C5A60S2 系列单片机单片机的A/D转换器 3.2.1 STCl2C5A60S2高速A/D转换本设计无需外加A/D转换,使用的单片机内置A/D接口,音频信号可直接送入单片机进行数据采集和预处理。STC12C5A60S2单片机的A/D转换口在P l口(P1.0P 1.7)有10位8路高速A/D转换器,A/D是电压输入型转换速度25万次/s(250KHz)。复位后P1口为弱上拉型I/O口。通过软件可设置将P1(P1.0P 1

19、.7)El中的任何一位为A/D转换位,不用作A/D转换的位可继续用作普通YO口使用。 3.2.2 与A /D转换有关控制位的设置对P1ASF寄存器的设置:当P1口中的相应位作为A /D使用时,需先将P1ASF中的相应位置“1”相应的口设置为模拟功能。如:P1ASF.0P1ASF.7中哪一位为“1”,则P1口中对应的位作为模拟功能D使用。对ADC_CONTR特殊功能寄存器设置:建议直接用MOV赋值语句。选择模拟输入通道CHS2/CHSl/CHS0:如CHS2/CHS1/CHSO=l11000可分别选择P1.7P1.0作为ADC的A/D转换输入位。ADC_START位:ADC模数转换器转换启动控制

20、位,ADC_START=1时,开始转换。转换结束后为ADC_START=0。中断请求标志位ADC_FLAG:ADC模数转换器转换结束标志位。当AID转换完成后,ADC_FLAG=1,一定要由软件清零,A/D转换完成后由该位申请中断。ADC电源控制位ADC_POWER:ADC_POWER=O,关闭ADC电源,ADC_PO WER=1,打开A/D转换器电源。建议进人空闲模式前,将ADC电源关闭,启动A/D转换前一 定要确认A/D电源已打开,A /D转换完成后关闭AD电源可降低功耗。在A/D转换结束之前, 不改变任何I/ O口的状态,有利于高精度A/D转换。 对IE的设置:如果允许A /D转换中断,

21、将EA=1打开单片机中断允许总控制位;将EAD C =1,这时ADC中断的允许中断控制位。STC12C5A60S2系列单片机的A /D转换模块使用的时钟是外部晶体时钟或内部R/C振 荡器所产生的时钟。不使用时钟分频寄存器CLK_DIV。这样可以让ADC用较高的频率工作,提高A/D的转换速度;还可以让CPU用较低的频率工作,降低系统的功耗。程序中需要注意的问题:由于是2套时钟,所以,设置ADC_CONTR控制寄存器后, 加4个空操作延时才可以正确读到ADC_CONTR寄存器的值。原因是设置ADC _CO N T R控制 寄存器的语句执行后,要经过4个CPU时钟的延时,其值才能够保证被设置进ADC

22、_CONTR控制寄存器。对AUXR1寄存器设置:AUXR1寄存器中的ADRJ位是A/D转换结果寄存器(ADC_RES,ADC_RESL)的数据格式调整控制位。ADRJ=0,10位A/D转换结果的高八位存放在ADC_RES中,低2位存放在ADC_RESL的低2位中。ADII=1,10位A/D转换结果的高2位存放在ADC_RES中低2位中,低8位存放在ADC_RESL中。图3.5为STC12C5A60S2系列单片机ADC(A/D转换器)的结构图图3.5 STC12C5A60S2系列单片机ADC(A/D转换器)的结构图3.3 STC12C5A60S2 系列单片机单片机的I/O口结构 STC12C5A

23、60S2系列单片机所有I/O口均(新增P4口和P5口)可由软件配置成4种工作类型之一,如表1-6所示。4种类型分别为:准双向口/弱上拉(标准8051输出模式)、强推挽输出/强上拉、仅为输入(高阻)或开漏输出功能。每个口由2个控制寄存器中的相应位控制每个引脚工作类型。STC12C5A60S2系列单片机上电复位后为准双向口/弱上拉(传统8051的I/O口)模式。2V以上时为高电平,0.8V以下时为低电平。每个I/O口驱动能力均可达到20mA,但整个芯片最大不得超过120mA。 I/O口工作类型设定表1 P5口设定 (P5口地址:C8H)P5M1 3:0P5M0 3:0I/O口模式0 0准双向口(传

24、统8051 I/O口模式)灌电流可达20mA,拉电流为230uA由于制造误差,实际为250uA150uA01强推挽输出(强上拉输出,可达20mA,要加限流电阻)10仅为输入(高阻)11开漏(open drainl),内部上拉电阻断开,要外加表2 P4口设定 (P4口地址:C0H)P4M1 7:0P4M0 7:0I/O口模式0 0准双向口(传统8051 I/O口模式)灌电流可达20mA,拉电流为230uA由于制造误差,实际为250uA150uA01强推挽输出(强上拉输出,可达20mA,要加限流电阻)10仅为输入(高阻)11开漏(open drainl),内部上拉电阻断开,要外加表3 P3口设定

25、(P3口地址:B0H)P3M1 7:0P3M07:0I/O口模式0 0准双向口(传统8051 I/O口模式)灌电流可达20mA,拉电流为230uA由于制造误差,实际为250uA150uA01强推挽输出(强上拉输出,可达20mA,要加限流电阻)10仅为输入(高阻)11开漏(open drainl),内部上拉电阻断开,要外加表4 P2口设定 (P2口地址:A0H)P2M1 7:0P2M07:0I/O口模式0 0准双向口(传统8051 I/O口模式)灌电流可达20mA,拉电流为230uA由于制造误差,实际为250uA150uA01强推挽输出(强上拉输出,可达20mA,要加限流电阻)10仅为输入(高阻

26、)11开漏(open drainl),内部上拉电阻断开,要外加表5 P1口设定 (P1口地址:9 0H)P1M1 7:0P1M07:0I/O口模式(P1.x如果做A/D使用,需先将其设置成开漏或高阻输入)0 0准双向口(传统8051 I/O口模式)灌电流可达20mA,拉电流为230uA由于制造误差,实际为250uA150uA01强推挽输出(强上拉输出,可达20mA,要加限流电阻)10仅为输入(高阻),如果该I/O口需作A/D使用,可以选此模式11开漏(open drainl),如果该I/O口需作A/D使用,可以选此模式表6 P0口设定 (P0口地址:80H)P0M1 7:0P0M07:0I/O

27、口模式0 0准双向口(传统8051 I/O口模式)灌电流可达20mA,拉电流为230uA由于制造误差,实际为250uA150uA01强推挽输出(强上拉输出,可达20mA,要加限流电阻)10仅为输入(高阻)11开漏(open drainl),内部上拉电阻断开,要外加值得注意的是::虽然每个I/O口在弱上拉时都能承受20mA的灌电流(还是要加限流电阻,如1K,560等),在强推挽输出时都能输出20m A的拉电流(也要加限流电阻),但整个芯片的工作电流推荐不要超过120mA。即从MCU-VCC流入的电流不超过120mA,从MCU-Gnd流出电流不超过120mA,整体流入/流出电流都不能超过120mA.。3.4 频谱显示单元 由STC12C5A60S2单片机计算得到的频谱值将显示于LCD1604 3.4.1 LCD简介液晶显示器(Liquid Crystal Display,简称LCD)已被视为下一代显示器的主要产品。3.4.1.1 在单片机系统中应用晶液显

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1