标题: 单片机+M26429+PAM8403+MH-M18无线蓝牙音频功放设计 原理图PCB源程序 [打印本页]

作者: abcyhdefghhh    时间: 2020-6-10 10:14
标题: 单片机+M26429+PAM8403+MH-M18无线蓝牙音频功放设计 原理图PCB源程序
基于STC89C52的无线蓝牙音频功放
        基于STC89C52的无线蓝牙音频功放,实现的具体功能如下:
                1,无线蓝牙连接,手机可控制歌曲音频选择。
                2,音频声音的大小可控制一排LED的亮灭数量起伏。
                3,按键可控制手机音频的声音大小调节,歌曲的切换。
                4,蓝牙一键开机功能,掉电保护。

Altium Designer画的单片机+M26429+PAM8403+MH-M18原理图和PCB图如下:(51hei附件中可下载工程文件)


单片机源程序如下:
  1. #include "reg52.h"
  2. #include "adc0832.h"
  3. #include "M62429.h"
  4. #include "intrins.h"
  5. #include "key.h"
  6. #include "I2C.h"

  7. uchar Smg[]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};
  8. uchar led[]={0xff,0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};

  9. uchar v_led;//LED灯显示个数
  10. uint add=0;//中断溢出

  11. uchar voice_num;//音高
  12. uint led_num=0,led_num1=0;//led显示个数

  13. void key(void);//按键处理函数
  14. void smg_show(uint date);//数码管显示
  15. void led_show(uint led_num);//LED灯显示
  16. void pinit();//初始化函数
  17. void ad(void);//ad采集



  18. /*
  19.         主函数
  20. */
  21. void main()
  22. {
  23.         pinit();
  24.         while(1)
  25.         {
  26.                 ad();
  27.                 VolSet(33+voice_num*6);//数字电位器,值越大,音量越高
  28. //                smg_show(voice_num);
  29.                 led_show(led_num);
  30.                 key();
  31.         }
  32. }

  33. /*
  34.         函数名:按键处理
  35.         功能:        按键处理
  36.         输入:        按键扫描返回值
  37.         输出:        无
  38. */
  39. void key()
  40. {
  41.         uchar key_value;
  42.         key_value=key_scan(0);//调用按键扫描
  43.         
  44.         if(key_value==KEY_UP)
  45.         {
  46.                 if(voice_num==9)
  47.                         voice_num=9;
  48.                 else
  49.                         voice_num++;
  50.         }
  51.         else if(key_value==KEY_DOWN)
  52.         {
  53.                 if(voice_num==0)
  54.                         voice_num=0;
  55.                 else
  56.                         voice_num--;
  57.         }
  58.         if(!key_value)
  59.                 write_eeprom(1,voice_num);
  60. }

  61. /*
  62.         函数名:数码管显示
  63.         功能:        显示音量
  64.         输入:        音量
  65.         输出:        无
  66. */
  67. void smg_show(uint date)
  68. {
  69.         P1=0xfd;
  70.         P0=0xc1;
  71.         delay(500);
  72.         P1=0xfe;
  73.         P0=Smg[date];
  74. }  

  75. /*
  76.         函数名:led显示
  77.         功能:        显示LED灯
  78.         输入:        音量
  79.         输出:        无
  80. */
  81. void led_show(uint led_num)
  82. {
  83.         P2=led[led_num];
  84. }

  85. /*
  86.         函数名:初始化函数
  87.         功能:        定时器初始化
  88.         输入:        
  89.         输出:
  90. */
  91. void pinit()
  92. {
  93.         TMOD=0X01;
  94.         TH0=(65536-10000)/256;
  95.         TL0=(65536-10000)%256;
  96.         TR0=ET0=EA=1;
  97.         voice_num=read_eeprom(1);
  98. }

  99. void timer0() interrupt 1//定时器0中断
  100. {
  101.         TH0=(65536-10000)/256;
  102.         TL0=(65536-10000)%256;
  103.         add++;
  104.         if(add==1000)
  105.                 add=0;
  106.         if(add%2)
  107.         {
  108.                 P1=0xfd;
  109.                 P0=0xc1;
  110.         }
  111.         else if(add%2==0)
  112.         {
  113.                 P1=0xfe;
  114.                 P0=Smg[voice_num];
  115.         }
  116. }

  117. void ad()
  118. {
  119.         v_led=a_d();
  120.         led_num1=v_led/25;
  121.         if(led_num<=led_num1)
  122.                 led_num=led_num1;
  123.         if(add%6==0)
  124.         {
  125.                 if(led_num)
  126.                 led_num--;
  127.         }
  128. }
复制代码

所有资料51hei提供下载:
无线蓝牙音频功放PCB.7z (759.55 KB, 下载次数: 423)
蓝牙功放各类驱动(cgf).zip (3.89 KB, 下载次数: 230)
数字功放代码.rar (54.07 KB, 下载次数: 243)

作者: 51hei团团    时间: 2020-6-11 18:28
好资料,51黑有你更精彩!!!
作者: jialishoushi    时间: 2020-8-5 01:00
感谢分享  手里有好几十个429  这下看能不能照葫芦画瓢搞个音量指示
作者: PPAPa    时间: 2020-8-19 11:07
蓝牙功放各类驱动(cgf)这里面的文件干什么用的?
作者: quentin83    时间: 2020-8-19 14:40
好资料,51黑有你更精
作者: ericwu2020    时间: 2020-8-26 11:38
STC89C52 如何控制蓝牙,是通过普通的I/O口给不同的高低电平来做 配对,联接和播放暂停吗
作者: 1677737868    时间: 2020-9-30 13:18

STC89C52 如何控制蓝牙,是通过普通的I/O口给不同的高低电平来做 配对,联接和播放暂停吗

作者: rayin    时间: 2020-11-15 17:44
不错,值得学习。51hei有你更精彩!!
作者: zcjwp520    时间: 2020-12-6 14:22
很不错的设计,值得学习,谢谢楼主先。
作者: Mr.懵不懂    时间: 2021-3-9 19:49
请问M26429是做什么的芯片啊?


作者: 墨冰轩    时间: 2021-3-18 12:29
Mr.懵不懂 发表于 2021-3-9 19:49
请问M26429是做什么的芯片啊?

我也想知道额
作者: Skyfree369    时间: 2021-3-20 23:03
不错,值得学习。感谢楼主无私分享,加油!
作者: ziuny    时间: 2021-3-31 16:54
PAM的功放蛮好用
作者: Mr.懵不懂    时间: 2021-4-11 18:04
墨冰轩 发表于 2021-3-18 12:29
我也想知道额

M62429数字电位器
作者: Mr.懵不懂    时间: 2021-4-11 18:05
单片机下载不进去程序是怎么回事呢?
作者: zcjwp520    时间: 2021-5-19 11:48
很不多的帖子,正在需要这类的东西。
作者: ZLKJeng    时间: 2021-8-14 08:52

不错,值得学习。51hei有你更精彩!!
作者: gapgong    时间: 2021-9-13 23:52
有人利用该资料调试出来了吗?
作者: 追月!    时间: 2022-9-27 11:30
mh-m8内部原理图有吗
作者: 追月!    时间: 2022-9-27 11:31

好资料,51黑有你更精彩!
作者: wyl138    时间: 2022-10-30 21:59
好好的资料,必须支持。。
作者: 社会空想家    时间: 2022-12-7 14:13
Mr.懵不懂 发表于 2021-4-11 18:05
单片机下载不进去程序是怎么回事呢?

兄弟,你当时找到原因了吗,我也出现同样的问题了。想请教一下
作者: dddly    时间: 2023-5-15 21:20
请问蓝牙用的什么
作者: zhengyichang    时间: 2023-8-19 09:21
好资料,51黑有你更精彩!!!
作者: xlhlydd    时间: 2023-10-10 21:32
51里能人多。楼主真棒,大伙和楼主一起加油啊
作者: hahahhahaha    时间: 2023-11-15 13:51
不错很值得学习,让我更加学会51代码

作者: 安华    时间: 2024-5-22 12:54
好资料,51黑有你更精彩!!!
作者: men007    时间: 2024-6-21 20:54
好资料,下载了。51黑有你更精彩!!!
作者: 优伤    时间: 2024-8-18 20:38

好资料,51黑有你更精彩!!!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1