打印
[STC单片机]

声控心形彩灯

[复制链接]
947|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
772671294|  楼主 | 2014-9-22 14:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

我现在要做的就是声音控制LED灯点亮:没有声音时灯不亮,声音越大,亮的灯越多。

我的基本想法是:麦克风接收声音信号,经整理后送入STC单片机,声音大小分为12个等级,采集声音达到某一等级便亮多少个灯。
希望有大神帮忙一下,最好附上原理图和程序。(我自己搞了一下图和程序,只有程序能复制上来(实际作原理图我用proteus画不了MIC,22个LED灯共用了12个端口),如下)

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uint d,m;
uchar code a[]={0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00},b[]={0xff,0xfe,0xfc,0xf8,0xf0};
void main()
{
        uint x=0,y=0;
        while(1)
        {
                P2=a[x];P1=b[y];
                for(d=0;d<11;)
                {
                        if((d<m)&&(m<d+1))
                        {P2=a[x];P1=b[y];}
                        else
                        {d++;x++;}
                        if(d>7)
                        y++;
                }
        }
}

相关帖子

沙发
旭日东起| | 2014-9-22 14:57 | 只看该作者
玩玩还行,先测好麦克风接收声音信号的幅度,然后分成12分就好了,再用AD测

使用特权

评论回复
板凳
tudou21| | 2014-9-22 21:45 | 只看该作者
麦克风信号一般较弱小,先用运放预放大一下,后面用二极管和电容做个检波电路,直接接单片机AD,或者根据需要再加一级放大。可以参考超声波测距的电路。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

49

帖子

0

粉丝