请各位老师帮忙,照着前辈做的音频频谱显示显示有异常

2020-01-26 12:53发布

照着论坛一位朋友的资料做的电路,原始资料地址http://www.amobbs.com/forum.php? ... 407&pid=6891549

我没有用138和595,手边只找到27M的晶振,简单修改了显示部分,直接io口加三极管驱动10*15个led,也就是10个高共15列的led。

现在出现一个问题,用信号发生器输出可调频率给电路,发现led显示有异常,比如输入1k频率,会发现第3列和第7列会同时亮,其他几列也会亮一些。
逐渐提高频率这个现象还有,总之不是一列对应1个频率点,而是不相邻的好几列对应一个频率点,好苦恼啊,请各位前辈帮忙指点一下,通常这个问题是什么原因造成的?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
zbn2010
1楼-- · 2020-01-26 15:32
本帖最后由 zbn2010 于 2013-10-18 12:06 编辑

下面是显示部分做的改动,我感觉应该不是显示部分的问题,但又搞不懂哪里不合适。

    while(1)
    {       
                if(fft_sign == 1)                                                                                                // 读取频率为20Hz
                {
                        fft_sign = 0;
                        for(i=0;i<65;i++)
                        {  
                                dd[ i ].real=(GetADCResult(0))<<2;                  // 读取ad结果并放大4倍;
                        }
                        processfft(num);                                                                                        // 傅立叶变化及处理
                }
            for(i=0;i<15;i++)
            {                                                                                                         //这是原来的显示程序
/*                LineInput(0x0000);
                P2 = ColScan[ i ];
                LineInput(LEDBuf[ i ]);
                        n = 512;
                        while(n--);
                        LineInput(0x0000);
*/       
                       P0=0xff;                                                       //下面是我根据我临时搭的电路改的显示程序
                        if(i<7)                                                         //共15列,先显示前面7列接着显示后面8列
                        {
                                P3=led1[ i ];
                                P2=0;
                        }
                        else
                        {
                                P3=0;
                                P2=led3[ i-7 ];
                        }

                        P0=LEDBuf[ i ];
                        n=512;
                        while(n--);
                        P0=0xff;
                }
                 
        }

下面是临时搭的电路原理图,暂时只接了8行led。

未命名.jpg (375.49 KB, 下载次数: 0)

下载附件

2013-10-18 11:57 上传

zbn2010
2楼-- · 2020-01-26 16:22
各位老师帮忙指点一下啊,谢谢了。
caiseyuzhou
3楼-- · 2020-01-26 18:42
 精彩回答 2  元偷偷看……
caiseyuzhou
4楼-- · 2020-01-26 22:11
不知道,在研究呢,呵呵呵

一周热门 更多>