reiyawea 发表于 2011-1-23 18:06:31

自制的VFD音乐频谱显示器,上来秀一把

前几天入手一个VFD显示器,全新原装进口。基本情况如下:
双色点阵屏,20x8分辨率。
每个像素由6个发光条组成,每色3条,可显示红和天蓝,同时点亮为白色。
单5V供电,电流0.5A左右。
http://cache.amobbs.com/bbs_upload782111/files_36/ourdev_613040YBBCL2.jpg
VFD显示器 (原文件名:VFD.jpg)
勉强可以显示字符,不适合显示长英文句子。先做了个温度计,效果似乎不好。
http://cache.amobbs.com/bbs_upload782111/files_36/ourdev_613041GXM6CL.jpg
做了个温度计,效果似乎不太好 (原文件名:T.jpg)
然后就想到了做一个频谱显示器,正好用上里面的双色条状的点,效果还行。
于是花了点时间研究了51上运行的FFT程序,移植过来调试一下,再做个美化,就算初步完成了一个作品。
硬件用了STC12C5A08S2作MCU,和一个LM358对音频信号放大。
STC12C5A系列有1K的外部RAM,正好可做128点FFT运算。程序4K多,不算复杂。
http://cache.amobbs.com/bbs_upload782111/files_36/ourdev_613042NB81F4.jpg
频谱效果 (原文件名:频谱.jpg)
不会贴视频,发个连接:http://v.youku.com/v_show/id_XMjM5MDQ5OTY0.html
新手报到,高手勿笑。

keli2046 发表于 2011-1-23 18:44:24

yufan 发表于 2011-1-23 20:38:20

楼主厉害

bluefeel 发表于 2011-1-23 21:15:18

这个VFD卖了好久了,只是觉得太老了,显示效果太粗糙了

jingwaner 发表于 2011-1-23 21:17:02

楼主厉害,能否共享程序参考下,谢谢了先~

reiyawea 发表于 2011-1-24 11:31:33

回复【4楼】jingwaner
-----------------------------------------------------------------------

如果想制作的人多,我就上传资料。

format 发表于 2011-1-24 11:34:42

楼主请上代码

偶学习下

多谢

一直想yy这个,不会神马傅里叶,也看不懂FFT

入口都找不到

spely 发表于 2011-1-24 11:56:49

顶一下

xiaomage_2000 发表于 2011-1-24 12:16:28

我老早就想做频谱显示了,支持下,希望楼主开源下,多谢了~~

90999 发表于 2011-1-24 12:57:37

回复【5楼】reiyawea
回复【4楼】jingwaner
-----------------------------------------------------------------------

如果想制作的人多,我就上传资料。
-----------------------------------------------------------------------

要是都抱着这种想法,那么就没什么意思了。

reiyawea 发表于 2011-1-24 13:25:55

回复【9楼】90999张耀扬
-----------------------------------------------------------------------

好吧,我错了。晚些时候传个FFT吧。

format 发表于 2011-1-24 13:40:21

来个完整的吧,要是顺手的话

和我一样的菜鸟很多啊

呵呵

90999 发表于 2011-1-24 13:42:15

回复【10楼】reiyawea
回复【9楼】90999张耀扬
-----------------------------------------------------------------------

好吧,我错了。晚些时候传个fft吧。
-----------------------------------------------------------------------

并不是说你对错的问题,有些事情在这里不必和其他论坛一样,先要攒人气。一般攒人气盖楼的做法,时间一长,就会造就喷子。

fei_yang 发表于 2011-1-24 13:44:23

VFD就是打点驱动,呵呵楼主没有用驱动IC?

reiyawea 发表于 2011-1-24 16:05:51

回复【13楼】fei_yang
-----------------------------------------------------------------------

屏是是个模块,用8080时序写数据就行。

reiyawea 发表于 2011-1-24 16:24:28

上程序
======================
#include<math.h>//要调入数学(和谐)运算的头文件
#include<reg52.h>
//定义复数结构
struct compx
{
float real;
float imag;
};
//定义复数乘法
struct compx EE(struct compx a,struct compx b)
{
struct compx c;
c.real=a.real*b.real-a.imag*b.imag;
c.imag=a.real*b.imag+a.imag*b.real;
return(c);
}
//定义复数求模
float cmplxabs(struct compx a)
{
float b;
b=sqrt(a.real*a.real+a.imag*a.imag);
return(b);
}
//FFT子程序
//入口:复数数组指针和点数。
//出口:原复数数组,取模后为强度,可用于频谱。
void FFT(struct compx *xin,unsigned int N)
{
int f,m,nv2,nm1,i,k,j=1,l;
int le,lei,ip;
struct compx v,w,t;
nv2=N/2;
f=N;
for(m=1;(f=f/2)!=1;m++);
nm1=N-1;
for(i=1;i<=nm1;i++){
if(i<j){t=xin;xin=xin;xin=t;}
k=nv2;
while(k<j){j=j-k;k=k/2;}
j=j+k;
}

/* FFT*/
for(l=1;l<m;l++)
{
le=pow(2,l);
lei=le/2;
v.real=1.0;v.imag=0.0;
w.real=cos(pi/lei);w.imag=-sin(pi/lei);
for(j=1;j<=lei;j++){
for(i=j;i<=N;i+=le){
ip=i+lei;
t=EE(xin,v);
xin.real=xin.real-t.real;
xin.imag=xin.imag-t.imag;
xin.real=xin.real+t.real;
xin.imag=xin.imag+t.imag;
}
v=EE(v,w);
}
}
}
//使用示例
xdata struct compx s;//我的有1024字节外部RAM,可做128点FFT。
void main()
{
unsigned char i,bar;
for(;;){
for(i=0;i<=127;i++){
……………………//AD采样
s.real=(float)ADC_RES;//采样结果送实部,注意数据类型转换
s.imag=0;
}
FFT(s,128);
//由于FFT的结果是关于中间对称的,只需要左半边结果
for(i=0;i<=63;i++)bar=(unsigned char)(complxabs(s)/50);//需要除一个数,免得结果太大转换出错。具体多少需调试。
……………………//显示转换结果
}
}

lee345 发表于 2011-1-24 16:31:16

不错

final9 发表于 2011-1-24 17:07:00

这个必须顶!

flyingcys 发表于 2011-1-24 17:21:59

顶!

amity 发表于 2011-1-24 17:45:37

必须顶!

kms2hh 发表于 2011-1-24 20:10:33

收藏!谢谢

hnnzzh 发表于 2011-1-24 20:16:19

顶一下。谢谢!

proteldxp 发表于 2011-1-24 22:42:25

你用的什么屏啊?那么亮?

fuzengyue 发表于 2011-1-24 23:29:23

mark,研究下fft

reiyawea 发表于 2011-1-25 11:43:56

回复【22楼】proteldxp
-----------------------------------------------------------------------

屏没有照片上那么亮,是因为用手机拍的,开了闪光灯就看不清字,不开闪光灯,曝光过度了。
但屏本身也不错,放在暗的地方很漂亮的。

yusufu 发表于 2011-1-25 17:44:17

mark~~

Eiman 发表于 2011-1-25 18:04:41

make fft

Tomas_Yung 发表于 2011-1-25 21:31:05

脚印

QZDZ 发表于 2011-1-26 09:21:54

make fft

reiyawea 发表于 2011-1-26 15:45:57

打算做个PCB出来。
到时若有想一起制作的,可以赠送PCB。

baodingren 发表于 2011-2-11 13:43:53

回复【4楼】jingwaner
楼主厉害,能否共享程序参考下,谢谢了先~
-----------------------------------------------------------------------

yaofang1010 发表于 2011-2-12 17:16:11

收藏!

mcu_mouse 发表于 2011-2-12 22:39:21

收藏!

reiyawea 发表于 2011-2-12 23:11:33

回复【30楼】baodingren
-----------------------------------------------------------------------

最主要的已经贴上了,其余就要按不同的MCU和显示器分别对待了。

LM1876 发表于 2011-2-13 22:39:04

好东东,咱有两个128*63的VFD点阵,正想搞个音响的屏呢,多谢LZ了

gloryzkl 发表于 2011-3-7 10:11:39

xingyunliushui 发表于 2011-3-7 11:24:26

前段时间结合前辈们的FFT,从网上淘了一块二手双色点阵屏用MSP430做了一个效果很不错

mcu_mouse 发表于 2011-3-7 12:56:22

楼主能否把这个的升压电路抄出来。

lwg998 发表于 2011-3-7 21:30:17

楼主能否讲解一下显示原理啊

reiyawea 发表于 2011-3-12 17:38:50

回复【37楼】mcu_mouse
-----------------------------------------------------------------------
抄板是不可能的啦,元件很密,很多都藏在玻璃下面。

reiyawea 发表于 2011-3-12 17:39:24

回复【38楼】lwg998
-----------------------------------------------------------------------

您是指VFD的显示还是频谱的显示?

format 发表于 2011-3-26 11:11:46

http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4634814&bbs_page_no=1&search_mode=3&search_text=format&bbs_id=9999

还请楼主帮忙看看这个问题

多谢

dujun168 发表于 2011-3-26 18:08:29

FFT good

nbc327 发表于 2011-3-27 01:11:57

高手啊!

tmlee 发表于 2011-3-27 02:18:01

mark

encyclopedia 发表于 2011-4-18 20:27:56

程序总体讲,很不错,美中不足有两处小问题
1
http://cache.amobbs.com/bbs_upload782111/files_38/ourdev_631863KLCCCB.JPG
(原文件名:1.JPG)
2
http://cache.amobbs.com/bbs_upload782111/files_38/ourdev_631864UMIQLB.JPG
(原文件名:2.JPG)

reiyawea 发表于 2011-5-2 14:54:45

回复【45楼】encyclopedia   
-----------------------------------------------------------------------

cmplxabs为缩写,通常都会省去元音以便在不影响认读的情况下缩短长度。
不是拼写错误啊!

reiyawea 发表于 2011-5-2 14:56:29

回复【41楼】format
-----------------------------------------------------------------------

这个函数是复数求模,函数体已经包含在源码里了,math.h里不会有的,是没仔细看?

giggabc 发表于 2011-5-2 19:18:01

不错 支持楼主

bluelool 发表于 2011-5-2 20:03:32

mark

3050311118 发表于 2011-5-27 00:06:37

mark

eryueniao 发表于 2011-5-27 20:18:03

cool

zgxcom123 发表于 2011-6-8 17:02:44

挖一下坟~~
很好的程序!!

huyueboy 发表于 2011-8-8 13:53:35

能不能把电路图付上啊!!谢谢

junmin414 发表于 2011-8-15 17:20:04

学习一下

yuando 发表于 2011-8-15 19:41:15

我的fft白学了,看不懂。。。。

z317946208 发表于 2011-9-3 21:55:17

楼主,上次说你模仿过mini48,不是可否共享下,也想模仿写。

yuhang 发表于 2011-9-3 22:42:25

效果不错

l09046162 发表于 2011-9-3 22:56:44

mark顶!!!!

tiexue1226 发表于 2011-9-4 10:56:10

打酱油了

wwq123030627 发表于 2011-9-4 13:21:12

学习了。。。

Tankng 发表于 2011-9-5 04:20:30

记号

baoge19891108 发表于 2011-9-5 08:21:48

太厉害了,我也些过fft,不过程序达16k,为什么你的才4K,高手啊。

hzmsn 发表于 2012-2-15 15:40:24

mark sss

Inside 发表于 2012-2-20 22:06:35

mark!

lydxbzw 发表于 2012-3-30 23:54:14

这个不错可以看看

ppdd 发表于 2012-5-6 17:31:50

留个爪印

not_at_all 发表于 2012-5-6 18:29:29

format 发表于 2011-1-24 11:34 static/image/common/back.gif
楼主请上代码

偶学习下


参考魏坤示波器,有相关代码很容易知道函数接口

airfex 发表于 2012-5-6 18:38:57

不错 支持楼主

hlfqzy 发表于 2012-8-7 09:00:36

顶一下。谢谢!

hhzy2008 发表于 2012-8-7 10:16:20

好贵的好像

yirenonege 发表于 2012-8-7 17:55:22

楼主建议你把程序和原理图打包上来如果愿意开源的话,因为上传完整的资料就可以置酷了

gaoyichuan000 发表于 2012-8-9 20:44:58

z317946208 发表于 2011-9-3 21:55
楼主,上次说你模仿过mini48,不是可否共享下,也想模仿写。

mini48?杜洋的?现在开源了啊

wenjinghuan 发表于 2012-8-17 20:45:37

楼主~求开源~

ninghuchong 发表于 2012-9-10 00:48:07

在学习中,顶....

sunny1437wind 发表于 2012-9-16 18:29:09

收藏!!谢谢分享了

ksd 发表于 2012-9-17 12:37:43

这个屏真漂亮,做频谱显示

王连栋 发表于 2012-10-5 09:06:00

楼主的程序不错,MARK下。

随风过15 发表于 2012-10-8 21:46:33

有图和程序吗   我也想做个

jimmyyjh 发表于 2013-5-5 13:30:53

如果屏更好看就好了

kjspace123 发表于 2013-6-13 17:22:02

求原理图一份 呵呵学习

Vrcaj7z2se 发表于 2013-8-30 11:02:50

楼主干的漂亮!

clarkewayne 发表于 2013-8-31 09:02:05

帥氣!!!
页: [1]
查看完整版本: 自制的VFD音乐频谱显示器,上来秀一把