单片机+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);
}

最近更新

  1. TCP协议是安全的吗?

    2024-06-08 20:20:11       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-08 20:20:11       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-08 20:20:11       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-08 20:20:11       18 阅读

热门阅读

  1. 数据仓库中数据质量如何提升

    2024-06-08 20:20:11       6 阅读
  2. Base64 编码表 参考

    2024-06-08 20:20:11       7 阅读
  3. 【TVM 教程】编译 PyTorch 目标检测模型

    2024-06-08 20:20:11       10 阅读
  4. 引用和指针的区别

    2024-06-08 20:20:11       10 阅读
  5. Python 中如何使用 lambda 函数

    2024-06-08 20:20:11       7 阅读
  6. 二叉树、二叉搜索树、平衡二叉搜索树

    2024-06-08 20:20:11       9 阅读
  7. 【环境搭建】1.阿里云ECS服务器 安装jdk8

    2024-06-08 20:20:11       9 阅读
  8. python 异步编程:协程

    2024-06-08 20:20:11       8 阅读
  9. 为什么会有虚像

    2024-06-08 20:20:11       8 阅读
  10. 翻转二叉树-力扣

    2024-06-08 20:20:11       9 阅读
  11. 对称二叉树-力扣

    2024-06-08 20:20:11       10 阅读