带频谱显示的HIFI耳放

| 2008-05-08
作者:atom6037

,mega8主要处理FFT频谱显示.同时兼顾红外遥控对该模式下的一些数据进行修改.时钟模式,mega8则主要控制时钟显示,同时监视闹钟.同音乐模式一样,在时钟模式下也要兼顾红外遥控,以修改时钟或者修改闹钟.在音乐模式下,如果长时间没有音频信号输入则系统自动跳到时钟模式显示时间.

主程序流程:

               ()程序流程

       ADC采样,音频信号因为是由正负的,mega8又不支持对负电压进行采样,所以,要一个电平移动电路.同时由于有时音频信号会比较小,需要放大适当倍数才比较好处理.本来想要用运放的,但是运放一般要双电源,而且要一个加法电路.实现起来比较麻烦,所以我采用了一个LM386这个芯片不但可以实现信号放大,更重要的是可以实现电平转移,把原来的正负信号,转换为单一极性的信号.选择200倍的固定增益,然后通过在输入端加一个可调电阻,控制输出大小

,这样很好的解决了adc的采样问题.

       FFT变换,根据纳醛斯特律,音频信号的最高频率大概20Khz,所以adc的采样频率设置为40Khz.FFT根据这个采样频率计算各个频率分量的幅值大小.因为mega8sram只有1K,所以最大只能支持64点的FFT变换,也就是显示的频段最多32,实际上由于第一个频率是直流分量,所以没用,只有31个频段.这样就可以对应得出每个频段的频率值.

       fo adc的采样频率,N傅立叶变换的点数.则最小分辨频率f

                                            f=fo/N

       这样我这个频谱显示的最低频率就是625Hz,以后每向右移一个,频率加625Hz.正因为这样所以低频频段的频谱显示不是很好.你可以加大采样点数,或者降低采样频率来提高最小分辨率.

       点阵驱动,这个本人做得比较多,在做这个频谱显示同时还在帮实验室做一个点阵显示牌,分辨率192*32,工程比较大,不过还好现在也完工了.在这个项目上面我用的是74HC595来做驱动的,595驱动电流大,而且具有三态输出.74164好用.所以这个耳放的驱动也用595来做列驱动,行驱动用了d882,这个驱动电流比较大(Ice=3A),本来理论上计算的话,要达到1A的电流才能满足要求,所以就选了d882,但是后来实践发现整个系统跑起来也不到200ma,所以有点大材小用的感觉,不过没办法,下次在改把,呵呵.这样由这两种期间实现了点阵的行列的驱动.再用一个595控制8d882,大大减少了对mega8io口使用.

       遥控部分,遥控选用了一个市场上买的遥控器,专门用于音响系统的,因为去年做过一个耳机放大,用的是这种遥控器,觉得不错,而且解码都搞定了,所以选择了这款遥控器来控制整个系统,遥控器面板见图四:

点击看大图

 

              图()系统遥控器     

       接收部分直接用一个38k的接收头就搞定了,很方便.

       整个系统的硬件差不多就是这样了,下面是一张合照:

点击看大图

下面再发几张频谱显示的图片:

        

1】【2】【3

浏览该文章的用户还看过...

  • 文 章

  • 论 坛

  • 博 客

  • 小 组

设计资源与分销

赞助商链接

;