目录
资料下载地址:单片机+M26429+PAM8403+MH-M18无线蓝牙音频功放设计 原理图PCB源程序
功能描述:
1,无线蓝牙连接,手机可控制歌曲音频选择。
2,音频声音的大小可控制一排LED的亮灭数量起伏。
3,按键可控制手机音频的声音大小调节,歌曲的切换。
4,蓝牙一键开机功能,掉电保护。
原理图
PCB
代码
#include "reg52.h"
#include "adc0832.h"
#include "M62429.h"
#include "intrins.h"
#include "key.h"
#include "I2C.h"
uchar Smg[]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};
uchar led[]={0xff,0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};
uchar v_led;//LED灯显示个数
uint add=0;//中断溢出
uchar voice_num;//音高
uint led_num=0,led_num1=0;//led显示个数
void key(void);//按键处理函数
void smg_show(uint date);//数码管显示
void led_show(uint led_num);//LED灯显示
void pinit();//初始化函数
void ad(void);//ad采集
/*
主函数
*/
void main()
{
pinit();
while(1)
{
ad();
VolSet(33+voice_num*6);//数字电位器,值越大,音量越高
// smg_show(voice_num);
led_show(led_num);
key();
}
}
/*
函数名:按键处理
功能: 按键处理
输入: 按键扫描返回值
输出: 无
*/
void key()
{
uchar key_value;
key_value=key_scan(0);//调用按键扫描
if(key_value==KEY_UP)
{
if(voice_num==9)
voice_num=9;
else
voice_num++;
}
else if(key_value==KEY_DOWN)
{
if(voice_num==0)
voice_num=0;
else
voice_num--;
}
if(!key_value)
write_eeprom(1,voice_num);
}
/*
函数名:数码管显示
功能: 显示音量
输入: 音量
输出: 无
*/
void smg_show(uint date)
{
P1=0xfd;
P0=0xc1;
delay(500);
P1=0xfe;
P0=Smg[date];
}
/*
函数名:led显示
功能: 显示LED灯
输入: 音量
输出: 无
*/
void led_show(uint led_num)
{
P2=led[led_num];
}
/*
函数名:初始化函数
功能: 定时器初始化
输入:
输出:
*/
void pinit()
{
TMOD=0X01;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
TR0=ET0=EA=1;
voice_num=read_eeprom(1);
}