amoBBS 阿莫电子论坛

 找回密码
 注册
搜索
bottom↓
查看: 4475|回复: 63

STC12C5A60S2+1602显示音频频谱

  [复制链接]
发表于 2014-5-5 23:53:26 | 显示全部楼层 |阅读模式
大三了,最近上数字信号处理讲的都是关于DFT和FFT的知识,因此产生了要把FFT进一步学习的想法,经过一周的努力,终于有了一点成果。这个过程中,学习了不少前辈高人的资料,受益匪浅,感谢他们的无私奉献。现把程序贴上,不足之处请大家指正。
1.PNG
2.PNG
3.PNG

1602FFT STC12C5A60S2.rar

67.31 KB, 下载次数: 1085

发表于 2014-5-6 00:06:49 | 显示全部楼层
发表于 2014-5-6 09:04:46 | 显示全部楼层
赞一个   
发表于 2014-5-6 15:23:18 | 显示全部楼层
直接接到音频上吗?
 楼主| 发表于 2014-5-7 00:32:51 | 显示全部楼层
是的,如果单单是AD采集的话,加个1K的电阻和一个大于47P的电容接地,得到的数据比较稳定。如图所示。
1.PNG
发表于 2014-5-7 12:25:28 | 显示全部楼层
我不是很懂硬件啊,为啥信号源只有一根呢?音频线不是两根的吗?
发表于 2014-5-7 12:34:47 | 显示全部楼层
左声道,右声道
 楼主| 发表于 2014-5-7 14:34:08 | 显示全部楼层

单声道,无论左或右,都行
 楼主| 发表于 2014-5-7 14:35:47 | 显示全部楼层
craigtao 发表于 2014-5-7 12:25
我不是很懂硬件啊,为啥信号源只有一根呢?音频线不是两根的吗?

只用左声道或者右声道
发表于 2014-5-7 14:50:04 | 显示全部楼层
xz199264 发表于 2014-5-7 14:35
只用左声道或者右声道

你的意思是我只要把音频线的一根接到AD采集端就可以了吗?
 楼主| 发表于 2014-5-7 21:28:26 | 显示全部楼层
craigtao 发表于 2014-5-7 14:50
你的意思是我只要把音频线的一根接到AD采集端就可以了吗?

加上接地就可以了
发表于 2014-5-8 08:31:22 | 显示全部楼层
xz199264 发表于 2014-5-7 21:28
加上接地就可以了

哦,,好的,。谢谢分享啊,以后再请教,
发表于 2014-5-8 14:50:31 | 显示全部楼层
楼主太帅了~~~~~
发表于 2014-5-9 17:33:50 | 显示全部楼层
谢谢分享啊
发表于 2014-5-10 06:42:59 来自手机 | 显示全部楼层
谢谢分享
 楼主| 发表于 2014-5-10 08:22:55 | 显示全部楼层
craigtao 发表于 2014-5-7 14:50
你的意思是我只要把音频线的一根接到AD采集端就可以了吗?

是的,一根接P1^0,其它端口你可以自己改,另一根接地。
发表于 2014-5-10 09:49:57 | 显示全部楼层
1602的点阵模式正好适合做频谱,哈~
发表于 2014-5-10 10:33:23 | 显示全部楼层
弱弱问一下,,,,采集 FFT 再显示,,,仅是为了 美观感受???
发表于 2014-5-10 11:35:40 | 显示全部楼层
漂亮,回去自己试试
发表于 2014-5-10 11:52:27 | 显示全部楼层
玩一玩。。。谢谢哈
发表于 2014-5-10 15:51:14 | 显示全部楼层
你的音频波形里面没有负压?不需要DC Offset?
 楼主| 发表于 2014-5-10 19:06:39 | 显示全部楼层
wkman 发表于 2014-5-10 10:33
弱弱问一下,,,,采集 FFT 再显示,,,仅是为了 美观感受???

之前学的都是理论,对FFT不太了解,做这个是为了多了解一下FFT.
发表于 2014-5-10 20:28:16 | 显示全部楼层
谢谢楼主分享!!!
发表于 2014-5-14 00:04:02 | 显示全部楼层
做噶记号  有时间也试试  谢谢分享
发表于 2014-6-26 23:31:30 | 显示全部楼层
这么牛逼的玩意不攒可惜啊,32个点赞
发表于 2014-6-30 01:55:50 | 显示全部楼层
多谢楼主分享
发表于 2014-6-30 08:00:00 | 显示全部楼层
都是牛人啊
发表于 2014-7-8 11:26:18 | 显示全部楼层
除了一根音频 一根地 还需要接什么吗?
 楼主| 发表于 2014-7-12 21:27:59 | 显示全部楼层
zhxush 发表于 2014-7-8 11:26
除了一根音频 一根地 还需要接什么吗?

接音频和地就可以了
发表于 2014-7-12 21:35:11 | 显示全部楼层
好厉害的啊,膜拜,多谢楼主分享
发表于 2014-7-12 22:53:14 | 显示全部楼层
赞个。。。。
发表于 2014-7-12 22:54:02 | 显示全部楼层
赞个
发表于 2014-7-12 23:07:44 | 显示全部楼层
发表于 2014-7-15 10:40:21 | 显示全部楼层
很不错啊。支持一下。
发表于 2014-7-16 08:53:37 | 显示全部楼层
最下面一行 标出频率,这样直观的显示 那个频点上的 音频信号较强。
发表于 2014-8-5 10:55:45 | 显示全部楼层
学习记号,谢谢分享
发表于 2014-8-6 21:40:57 | 显示全部楼层
这个有想法···!
发表于 2014-8-8 00:59:16 | 显示全部楼层
真的很漂亮哦,佩服佩服
发表于 2014-8-8 22:09:53 | 显示全部楼层
看着不错,学习学习!
发表于 2014-11-29 22:35:31 来自手机 | 显示全部楼层
这资料太好了,51的代码容易移植,我也学习一下
发表于 2014-12-6 15:04:50 | 显示全部楼层
哥们,你这FFT运算是不 是对的啊,我移植过去FFT怎么是个死循环呢
发表于 2014-12-6 15:06:57 | 显示全部楼层
while (1)
    {       
                /*state++;
                if(state >= 30) state = 0;

                temperature = (unsigned char)(ADC_ConvertedValue_Buf[0]*330/4096);
                */       
                if(msg_p == (void *)0)
                {
                    for(i=0;i<N;i++)                                      //采集64点音频信号
                      {
                        //ADC_CONTR=0xC8;                                         //40.96K采样率        设置ADC_CONTR第5、6位,具体参考说明书
                        //while(!(ADC_CONTR&0x10));
                          s[i].real=ADC_ConvertedValue_Buf[0];//存入采集值         //AD结果高8位左移2位,低2位不变,然后相加
                             s[i].imag=0;
                       
                          OSTimeDlyHMSM(0,0,0,1);  
                      }  
                      FFT(s,N);
               
                    for(i=0;i<N;i++) result[i] = (unsigned short)(sqrt(pow((s[i].real),2)+pow((s[i].imag),2))/4);
                    msg_p = result;
                }       
        OSTimeDlyHMSM(0,0,0,1);            
    }
加上FFT()程序就不跑了,把FFT去掉就OK了
发表于 2014-12-7 01:17:04 来自手机 | 显示全部楼层
我参考这个程序用STM32+OLED做了一个,在外出差也没有音源输入,在学习板上做一个方波输出+ADC,终于能看到跳动的频谱了,但好像还是有问题,还得找书来看看信号处理的知识,还要继读努力
发表于 2014-12-11 13:05:58 | 显示全部楼层
晶振频率没说啊。。。。
发表于 2014-12-29 19:50:31 | 显示全部楼层
这个还挺好看的,赞一个   
发表于 2014-12-30 10:39:17 | 显示全部楼层
非常好,赞。。。。
发表于 2014-12-30 21:59:48 来自手机 | 显示全部楼层
顶一个,用双色单元板做过,只是乱跳。学习了。
发表于 2014-12-31 13:26:03 | 显示全部楼层
真有趣,没想到可以这样搞,自己也来弄个玩玩
发表于 2014-12-31 20:15:16 | 显示全部楼层
有点小吊啊
发表于 2015-1-1 12:01:38 来自手机 | 显示全部楼层
不错,51还可以这样玩。
发表于 2015-1-18 14:32:45 | 显示全部楼层
这也可以,不错。。
发表于 2015-1-19 09:31:27 | 显示全部楼层
本帖最后由 Tsiov 于 2015-1-19 09:32 编辑

看了下源码,摘抄两行:
  1. float pi;
  2. pi=3.14159265;                //给结构体赋值
复制代码

代码是原封不动复制的,包括注释。

修改说明:增加文字解释。
发表于 2015-1-19 20:39:52 | 显示全部楼层
接上这电路对音质有影响不????
发表于 2015-1-20 09:09:12 | 显示全部楼层
挺好,有创意
发表于 2015-1-20 09:40:31 | 显示全部楼层
学习了!支持!!!
发表于 2015-1-21 13:42:26 | 显示全部楼层
可以,不错
发表于 2015-1-23 13:29:16 | 显示全部楼层
有时间试一下1602FFT
发表于 2015-1-23 15:32:42 | 显示全部楼层
好棒,赞一个
发表于 2015-1-23 17:39:42 | 显示全部楼层
测试下看看,效果!
发表于 2018-8-23 14:46:24 | 显示全部楼层
搞个大点的屏
发表于 2018-12-19 22:23:27 | 显示全部楼层
谢谢分享,学习了
发表于 2018-12-20 08:28:38 | 显示全部楼层
请教各位大侠,1602LCD如何显示这种一格一格的字符的?
发表于 2019-1-10 15:59:13 | 显示全部楼层
好资料,学习!
发表于 2019-4-17 10:21:19 | 显示全部楼层
楼主厉害了!
友情提示:标题不合格、重复发帖,将会被封锁ID。详情请参考:论坛通告:封锁ID、获得注册邀请码、恢复被封ID、投诉必读
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|阿莫电子论坛(原ourAVR/ourDEV) ( 公安备案:44190002001997(交互式论坛) 工信部备案:粤ICP备09047143号 )

GMT+8, 2019-5-26 20:36

阿莫电子论坛, 原"中国电子开发网"

© 2004-2018 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表