我现在要做的就是声音控制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++;
}
}
}
|