基于STC89C52的无线蓝牙音频功放 基于STC89C52的无线蓝牙音频功放,实现的具体功能如下: 1,无线蓝牙连接,手机可控制歌曲音频选择。 2,音频声音的大小可控制一排LED的亮灭数量起伏。 3,按键可控制手机音频的声音大小调节,歌曲的切换。 4,蓝牙一键开机功能,掉电保护。
Altium Designer画的单片机+M26429+PAM8403+MH-M18原理图和PCB图如下:(51hei附件中可下载工程文件)
单片机源程序如下:
- #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);
- }
- void timer0() interrupt 1//定时器0中断
- {
- TH0=(65536-10000)/256;
- TL0=(65536-10000)%256;
- add++;
- if(add==1000)
- add=0;
- if(add%2)
- {
- P1=0xfd;
- P0=0xc1;
- }
- else if(add%2==0)
- {
- P1=0xfe;
- P0=Smg[voice_num];
- }
- }
- void ad()
- {
- v_led=a_d();
- led_num1=v_led/25;
- if(led_num<=led_num1)
- led_num=led_num1;
- if(add%6==0)
- {
- if(led_num)
- led_num--;
- }
- }
复制代码
所有资料51hei提供下载:
无线蓝牙音频功放PCB.7z
(759.55 KB, 下载次数: 423)
蓝牙功放各类驱动(cgf).zip
(3.89 KB, 下载次数: 230)
数字功放代码.rar
(54.07 KB, 下载次数: 243)
|