点击打开链接       转载请注明出处:http://blog.csdn.net/ruoyunliufeng/article/details/37929733

这个LED音乐频谱是我在学51单片机的时候做的一个小项目。今天再看此代码仍有非常多不规范之处,但因为硬件已经送人,没法继续调试,希望小伙伴们引以为戒。写此文主要是想让大家知道当中的原理,知道怎么做固然重要,更重要的是知道为什么要这样做。

一.效果展示

有可能有的人第一次听说过这个东西,但实际上这个东西非常早就有人做出来了。

为了让小伙伴们能有一个感性的认识先发下我的成品连接和图片。

效果:http://v.youku.com/v_show/id_XNjU3NDEwOTAw.html

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcnVveXVubGl1ZmVuZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" height="358" width="485">

二.实现功能

功能                        实现                                                                                       原理

a.开机LOGO    : 就是再视频中开机显示的“若云MCU”                                           LED点阵

b.频谱显示       : 随着音乐输出跳动的LED                                                             FFT(高速傅氏变换)

A/D转换

c.四种显示效果: 我按下按键切换频谱的显示模式                                                  位运算

d.亮度切换       : 我按下按键音乐频谱的亮度会发生变化                                       PWM调光

e.声音输出       : 视频中的音乐输出                                                                       TDA2822功放

LED音乐频谱说通俗一点,就是将声音信号通过FFT从时域转换为频域(说的可能还是有点麻烦)。当中的转换是通过A/D来实现的。我们通过16*16的点阵观察到的图像就是他的频域信号。由左到右逐渐频率添加。LED点阵就是我们在大街上看到的滚动的广告牌。显示的效果是通过位运算的转换,转化为不同的显示模式。

亮度则直接使用STC12单片机自带的D/A。声音的输出用的是一个TDA2822功放芯片。我曾经用他做过小音箱。5V的输入,效果还能够。

看到这里,你仍有可能对当中的细节实现不是非常清楚,别操心,我会负责究竟。接下来的博客我会继续带小伙伴们分析这个东东的。

三.软件框图

源码已经上传:http://download.csdn.net/detail/u013584315/7665191

LED音乐频谱之概述的更多相关文章

  1. LED音乐频谱之输出数据处理

    转载请注明出处:http://blog.csdn.net/ruoyunliufeng/article/details/38023539 一.PWM调节 1.初始化 void DACInit() { C ...

  2. LED音乐频谱之输入数据处理

    转载请注明出处:http://blog.csdn.net/ruoyunliufeng/article/details/38023431 通过前面的介绍我们知道.声音信号要通过AD转换,变成我们可以处理 ...

  3. LED音乐频谱之点阵

    转载请注明出处:http://blog.csdn.net/ruoyunliufeng/article/details/37967455 一.硬件 watermark/2/text/aHR0cDovL2 ...

  4. Three.js + HTML5 Audio API 打造3D音乐频谱,Let’s ROCK!

    继续玩味之前写的音乐频谱作品,将原来在Canvas标签上的 作图利用Three.js让它通过WebGL呈现,这样就打造出了一个全立体感的频谱效果了. 项目详情及源码 项目GitHub地址:https: ...

  5. STM32通过FSMC驱动3.2寸液晶屏实现的音乐频谱

    视频演示: http://player.youku.com/player.php/sid/XNDcyMDgwMTE2/v.swf 源码下载: lattice_ music _tft.rar(1.42 ...

  6. android获取和展示音乐的频谱

    做了个音乐播放器 就一直想做个加一个音乐频谱的展示界面 觉的这是一个好玩的东西,可以将耳边动听的声音形象化,仿佛眼前可以看到声音一样. 但是我在文档的开发者指南里没有讲任何有关音乐频谱的东西,最后还是 ...

  7. 【玩转单片机系列001】 08接口双色LED显示屏驱动方式探索

    前些日子,从淘宝上购得一块08接口的双色LED显示屏(打算做个音乐频谱显示器),捣鼓了好几天,终于搞清楚了其控制原理,在这里做个总结,算是备忘吧. 1.LED显示屏的扫描方式 LED显示屏的扫描方式有 ...

  8. HTML5打造的炫酷本地音乐播放器-喵喵Player

    将之前捣腾的音乐频谱效果加上一个播放列表就成了现在的喵喵播放器(Meow meow Player,额知道这名字很二很装萌~),全HTML5打造的网页程序,可本地运行也可以挂服务器上用. 在线Demo及 ...

  9. H5录音音频可视化-实时波形频谱绘制、频率直方图

    这段时间给GitHub Recorder开源库添加了两个新的音频可视化功能,比以前单一的动态波形显示丰富了好多(下图后两行是不是比第一行看起来丰满些):趁热打铁写了一个音频可视化相关扩展测试代码,下面 ...

随机推荐

  1. .NET框架- in ,out, ref , paras使用的代码总结 C#中in,out,ref的作用 C#需知--长度可变参数--Params C#中的 具名参数 和 可选参数 DEMO

    C#.net 提供的4个关键字,in,out,ref,paras开发中会经常用到,那么它们如何使用呢? 又有什么区别? 1 in in只用在委托和接口中: 例子: 1 2 3 4 5 6 7 8 9 ...

  2. ArcGis10.0常见错误

    1. 问题:  Arcgis10.0 组件初始化失败 解决方法:  ESRI.ArcGIS.RuntimeManager.BindLicense(ESRI.ArcGIS.ProductCode.Eng ...

  3. CentOS 7.1重启后无法进入Gnome

    问题环境: 新买的Intel NUC主机,通过光驱安装CentOS 7.1版本,安装过程没问题. 安装完毕后,重启. 坏了! 只能看到黑屏和一只可以移动的鼠标. 只能说说我的排查思路: 一.首先要进入 ...

  4. mac shell终端编辑命令行快捷键——行首行尾

    mac shell终端编辑命令行快捷键——行首行尾 ctrl+a //移到行首ctrl+e //移到行尾===========linux系统用============alt+a //移到光标所在单词首 ...

  5. 大型网站技术架构(3):WEB 前端性能优化

    上次说到了性能优化策略,根据网站的分层架构,可以大致的分为 web 前端性能优化,应用服务器性能优化,存储服务器性能优化三大类 这次来说一下 web 前端性能优化,一般来说,web 前端就是应用服务器 ...

  6. 随机用户id号,随机密码用户名

    类似新浪微博的用户Id怎么生成呢? 特点:10位随机数,而且是以1开头的 好处:不容易猜出有多少用户 方法一: 目的是生成唯一id.可以用uniqid.uniqid获取一个字符串,循环这个字符串,把每 ...

  7. Java中RunTime类介绍

    Runtime 类代表着Java程序的运行时环境,每个Java程序都有一个Runtime实例,该类会被自动创建,我们可以通过Runtime.getRuntime() 方法来获取当前程序的Runtime ...

  8. php AES加密解密的例子

    一共有两个文件:AES.php(aes算法类文件)和aesDemo.php(应用实例文件) aesDemo.php:例子, <?php require_once('./AES.php'); // ...

  9. wechat talk

    https://github.com/13770344697/nanjingzhongan https://github.com/fayuanliu/wxRobot https://github.co ...

  10. 读取SD卡中的图片

    Touxiang=(ImageView)view.findViewById(R.id.Touxiang); //头像Bitmap bm = BitmapFactory.decodeFile(" ...