单片机+M26429+PAM8403+MH-M18无线蓝牙音频功放设计 原理图PCB源程序

目录

功能描述:

原理图

PCB 

​代码

资料下载地址:单片机+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);
}

  • 11
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

森旺电子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值