功能介绍:
0.本系统采用STC89C52作为单片机
1.采用5V小水泵来模拟演示喷泉
2.音频放大电路采用的是LM386芯片实现音频信号放大,输出用4Ω或8Ω扬声器外接即可
3.ADC0832芯片将音频模拟信号采集给单片机做信号处理
4.采用DC002作为电源接口可直接输入5V给整个系统供电
5.八个LED指示灯会根据音乐节奏律动而变化
原理图:
PCB:
主程序:
#include <reg52.h>
#include "main.h"
#include "tlc0832.h"
unsigned char dat;
unsigned char h1;
void main()
{
while(1)
{
Fountain();
}
}
void Delay(unsigned char z)
{
unsigned char y;
for (; z > 0; z--)
for (y = 5; y > 0; y--)
;
}
void Fountain(void)
{
dat = ReadADC(AIN0_GND); //检测AD值,音量越大值越小
dat = (dat>128)?128:dat; //去掉大于128的数据
dat = 128 - dat; //处理AD值,以使音量越大,dat值越大
h1 = 128 - dat; //处理h1值
WATERPUMP = 1; //关闭水泵
Delay(h1);
if(h1>40) LED0=1; else LED0=0; //ad值对比 点亮相应的灯
if(h1>50) LED1=1; else LED1=0; //ad值对比 点亮相应的灯
if(h1>60) LED2=1; else LED2=0; //ad值对比 点亮相应的灯
if(h1>70) LED3=1; else LED3=0; //ad值对比 点亮相应的灯
if(h1>80) LED4=1; else LED4=0; //ad值对比 点亮相应的灯
if(h1>90) LED5=1; else LED5=0; //ad值对比 点亮相应的灯
if(h1>100) LED6=1; else LED6=0; //ad值对比 点亮相应的灯
if(h1>110) LED7=1; else LED7=0; //ad值对比 点亮相应的灯
WATERPUMP = 0; //开启水泵
Delay(dat+10); //加10是为了使喷泉达到喷发临界值
}