数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 4259|回复: 9

[C51] (封贴)请大神代写音响音量控制程序(有偿代写)单片机加TDA7313控制

[复制链接]
发表于 2021-2-14 12:51:51 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
本帖最后由 343874758 于 2021-2-17 19:59 编辑

请大神代写51单片机程序,程序主要控制音响的音量大小,高低音调节,待机控制,信号通道切换,数码管显示。LCD1602显示的不于采纳,具体功能细节请联系本人,本人有电路原理图方便各位大神参考。
单片机要求用AT或者STC单片机,28脚贴片封装。
本次代写为有偿代写并不是白写。具体详谈。
有意者联系旺旺号:343874758黄。联系时请说明来意,谢谢!
发表于 2021-2-14 13:31:16 | 显示全部楼层
好巧啊,刚好这几天无在用STC12C5A的单片机弄SC7313的音响。已实现控制功能,整体程序还没完成,不过7313的程序可以给你借鉴
回复 支持 反对

使用道具 举报

发表于 2021-2-14 13:38:02 | 显示全部楼层
  1. /*************        功能说明        **************

  2. 本文件为SC7313/TDA7313驱动控制函数

  3. ******************************************/
  4. #include "Audio_SC7313.h"
  5. #include "delay.h"


  6. //音调(高音、低音)//bass&treble查表
  7. unsigned char code TABLE_Tone[15]=
  8. {                       
  9. //   -14, -12, -10,  -8,  -6,  -4,  -2,   0,   2,   4,   6,   8,  10,  12,  14  //dB
  10.         0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08
  11. };

  12. //主音量//Volume查表
  13. unsigned char code TABLE_Volume[16]=
  14. {               
  15. //-78.75,51.25,48.75,41.25,36.25,31.25,26.25,22.5,18.75,15,11.25,8.75,6.25,3.75,1.25,0  //-dB
  16. //    63,  41,  37,  33,  29,  25,  21,  18,  15,  12,   9,   7,   5,   3,   1,   0  //Value
  17.         0x3F,0x29,0x25,0x21,0x1D,0x19,0x15,0x12,0x0F,0x0C,0x09,0x07,0x05,0x03,0x01,0x00
  18. };

  19. //要写入的参数        
  20. // 0: 主音量级别(0-15)                   1: 声音通道(0-2)                           
  21. // 2: 增益级别(0-3)                                3: 响度开关(0-1)              
  22. // 4: 低音音量(0-17)                 5: 高音音量(0-17)
  23. char Audio_Para[Audio_Number]={5,2,3,1,10,8};

  24. char Audio_RunState = 0;         //运行状态

  25. //--------------------------------------- I2C协议 -------------------------------------------//
  26. /**************************************
  27. 起始信号
  28. **************************************/
  29. void SC7313_Start()
  30. {
  31.     SC7313_SDA = 1;              //拉高数据线
  32.     SC7313_SCL = 1;              //拉高时钟线
  33.     delay_us(5);                 //延时
  34.     SC7313_SDA = 0;              //产生下降沿
  35.     delay_us(5);                 //延时
  36.     SC7313_SCL = 0;              //拉低时钟线
  37. }

  38. /**************************************
  39. 停止信号
  40. **************************************/
  41. void SC7313_Stop()
  42. {
  43.     SC7313_SDA = 0;              //拉低数据线
  44.     SC7313_SCL = 1;              //拉高时钟线
  45.     delay_us(5);                 //延时
  46.     SC7313_SDA = 1;              //产生上升沿
  47.     delay_us(5);                 //延时
  48. }

  49. /**************************************
  50. 发送应答信号
  51. 入口参数:ack (0:ACK 1:NAK)
  52. **************************************/
  53. void SC7313_SendACK(bit ack)
  54. {
  55.     SC7313_SDA = ack;            //写应答信号
  56.     SC7313_SCL = 1;              //拉高时钟线
  57.     delay_us(5);                 //延时
  58.     SC7313_SCL = 0;              //拉低时钟线
  59.     delay_us(5);                 //延时
  60. }

  61. /**************************************
  62. 接收应答信号
  63. **************************************/
  64. bit SC7313_RecvACK()
  65. {
  66.     SC7313_SCL = 1;              //拉高时钟线
  67.     delay_us(5);                 //延时
  68.     CY = SC7313_SDA;             //读应答信号
  69.     SC7313_SCL = 0;              //拉低时钟线
  70.     delay_us(5);                 //延时

  71.     return CY;
  72. }

  73. /**************************************
  74. 向IIC总线发送一个字节数据
  75. **************************************/
  76. void SC7313_SendByte(unsigned char dat)
  77. {
  78.     unsigned char i;

  79.     for (i=0; i<8; i++)         //8位计数器
  80.     {
  81.         dat <<= 1;               //移出数据的最高位
  82.         SC7313_SDA = CY;         //送数据口
  83.         SC7313_SCL = 1;          //拉高时钟线
  84.         delay_us(5);             //延时
  85.         SC7313_SCL = 0;          //拉低时钟线
  86.         delay_us(5);             //延时
  87.     }
  88.         //SC7313_SendACK(0); //发送应答信号(0:ACK 1:NAK)
  89.     if(SC7313_RecvACK()==0)  // 检测从机应答
  90.         {
  91.                 SC7313_Stop(); //停止信号
  92.         }
  93. }

  94. /**************************************
  95. 从IIC总线接收一个字节数据
  96. **************************************/
  97. unsigned char SC7313_RecvByte()
  98. {
  99.     unsigned char i;
  100.     unsigned char dat = 0;

  101.     SC7313_SDA = 1;              //使能内部上拉,准备读取数据
  102.     for (i=0; i<8; i++)         //8位计数器
  103.     {
  104.         dat <<= 1;
  105.         SC7313_SCL = 1;          //拉高时钟线
  106.         delay_us(5);             //延时
  107.         dat |= SC7313_SDA;       //读数据
  108.         SC7313_SCL = 0;          //拉低时钟线
  109.         delay_us(5);             //延时
  110.     }

  111.     return dat;
  112. }


  113. /**************************************
  114. 从IIC地址(address)中读取1字节数据
  115. 将设备的address地址中的数据读出返回参数中
  116. 入口参数:address (0x00H-0xFFH)
  117. **************************************/
  118. unsigned char SC7313_ReadData()
  119. {
  120.     unsigned char dat;
  121.     SC7313_Start();            //起始信号
  122.     SC7313_SendByte(SC7313_Address);     //发送设备地址+写信号
  123.     SC7313_Start();            //起始信号
  124.     SC7313_SendByte(SC7313_Address+1);     //发送设备地址+读信号
  125.     dat = SC7313_RecvByte();
  126.     SC7313_SendACK(1); //最后一个数据需要会NAK
  127.     SC7313_Stop();             //停止信号
  128.         return dat;
  129. }

  130. /**************************************
  131. 向IIC地址(address)中写1字节数据
  132. 将BUF数据写入设备的address地址中
  133. 入口参数:address (0x00H-0xFFH),BUF数据
  134. **************************************/
  135. void SC7313_WriteData(unsigned char dat)
  136. {
  137.     SC7313_Start();                                    //起始信号
  138.     SC7313_SendByte(SC7313_Address);    //发送设备地址+写信号
  139.     SC7313_SendByte(dat);                                //发送数据
  140.     SC7313_Stop();                                     //停止信号
  141. }

  142. /**************************************
  143. 向IIC地址(address)中写1字节数据
  144. 将BUF数据写入设备的address地址中
  145. 入口参数:address (0x00H-0xFFH),BUF数据
  146. **************************************/
  147. void SC7313_WriteDataLen(unsigned char dat[],unsigned char len)
  148. {
  149.         unsigned char i;
  150.     SC7313_Start();                                    //起始信号
  151.     SC7313_SendByte(SC7313_Address);    //发送设备地址+写信号
  152.         for (i=0; i<len; i++)        
  153.     {
  154.                 SC7313_SendByte(dat[i]);                //发送数据
  155.         }
  156.     SC7313_Stop();                                     //停止信号
  157. }

  158. //--------------------------------------- I2C协议 END-------------------------------------------//


  159. //--------------------------------------- SC7313基础设置 -------------------------------------------//
  160. //================================================================================
  161. //函数名称:void PowerAudio(unsigned char Ch)
  162. //函数说明:根据输入音源通道号设置音源的电源开关
  163. //入口参数: Ch:音源通道0~2
  164. //出口参数: 无
  165. //================================================================================  
  166. void PowerAudio(unsigned char Ch)      
  167. {
  168.         switch(Ch)
  169.         {
  170.                 case 0:
  171.                                 MP3_PWR = 1;  //高电平开MP3电源
  172.                                 Audio_RunState = 1;         //运行状态1
  173.                                 break;
  174.                 case 1:
  175.                                 MP3_PWR = 0;  //关MP3电源
  176.                                 Audio_RunState = 2;         //运行状态2
  177.                                 break;
  178.                 case 2:
  179.                                 MP3_PWR = 0;  //关MP3电源
  180.                                 Audio_RunState = 2;         //运行状态2
  181.                                 break;
  182.                 default:
  183.                                 Audio_RunState = 0;         //运行状态0
  184.                                 break;
  185.         }
  186. }

  187. //================================================================================
  188. //函数名称:
  189. //函数说明:设置输入音源通道0~3,增益0~3,开关0~1
  190. //入口参数:
  191. //出口参数: 无
  192. //================================================================================  
  193. void SC7313_SetAudio(unsigned char Ch, unsigned char Volume, unsigned char State)      
  194. {
  195.         unsigned char Stereo;
  196.         unsigned char Gain;
  197.         unsigned char Loudnes;

  198.         Stereo = Ch;
  199.         Gain = Volume;
  200.        
  201.         if(Stereo>3){Stereo=3;} //0:Stereo1, 1:Stereo2, 2:Stereo3, 3:Stereo4
  202.         if(Gain>3){Gain=3;} //0:+11.25dB, 1:+7.5dB, 2:+3.75dB, 3:0dB
  203.         if(State==1){Loudnes=0;}else{Loudnes=1;}//Loudness   0:ON, 1:OFF

  204.         AMUTE  = 1;           //高电平功放静音
  205.         delay_ms(100);  //延时
  206.         PowerAudio(Stereo);        //根据输入音源通道号设置音源的电源开关
  207.         SC7313_WriteData( SC7313_Audio | ((3-Gain)<<3) | (Loudnes<<2) | Stereo ); //[BIT4:0]
  208.         delay_ms(100);  //延时
  209.         AMUTE  = 0;           //取消功放静音
  210. }

  211. //================================================================================
  212. //函数名称:
  213. //函数说明:
  214. //入口参数:
  215. //出口参数: 无
  216. //================================================================================  
  217. //设置主音量值0~63
  218. void SC7313_SetVolumeValue(unsigned char Volume)      
  219. {
  220.         if(Volume>63){Volume=63;}// Volume&0x3F
  221.         SC7313_WriteData(SC7313_Volume | (63-Volume)); //[BIT5:0]
  222. }

  223. //================================================================================
  224. //函数名称:
  225. //函数说明:
  226. //入口参数:
  227. //出口参数: 无
  228. //================================================================================  
  229. //设置主音量级别 0~15
  230. void SC7313_SetVolume(unsigned char Volume)      
  231. {
  232.         if(Volume>15){Volume=15;}// Volume&0x3F
  233.         SC7313_WriteData(SC7313_Volume | TABLE_Volume[Volume]); //[BIT5:0]
  234. }

  235. //================================================================================
  236. //函数名称:
  237. //函数说明:
  238. //入口参数:
  239. //出口参数: 无
  240. //================================================================================  
  241. //设置音调(低音)0~14 //-14db ~ +14db  7=0db
  242. void SC7313_SetBass(unsigned char Volume)      
  243. {
  244.         if(Volume>14){Volume=14;}// Volume&0x0F

  245.         SC7313_WriteData(SC7313_Bass | TABLE_Tone[Volume]); //[BIT3:0]
  246. }

  247. //================================================================================
  248. //函数名称:
  249. //函数说明:
  250. //入口参数:
  251. //出口参数: 无
  252. //================================================================================  
  253. //设置音调(高音) 0~14 //-14db ~ +14db  7=0db
  254. void SC7313_SetTreble(unsigned char Volume)      
  255. {
  256.         if(Volume>14){Volume=14;}// Volume&0x0F

  257.         SC7313_WriteData(SC7313_Treble | TABLE_Tone[Volume]); //[BIT3:0]
  258. }

  259. //================================================================================
  260. //函数名称:
  261. //函数说明:
  262. //入口参数:
  263. //出口参数: 无
  264. //================================================================================  
  265. //设置四个扬声器衰减0db ~ -30db  Volume(31)0x1F=MUTE
  266. void SC7313_SetSpeaker(unsigned char Speaker, unsigned char Volume)      
  267. {
  268.         unsigned char dat;
  269.         if(Volume>31){Volume=31;} // Volume&0x1F Volume(31)0x1F=MUTE
  270.         if(Speaker>3){Speaker=3;} //
  271.         switch(Speaker)
  272.         {
  273.                 case 0:dat = SC7313_SpeakerLR | Volume;break;//后左声道
  274.                 case 1:dat = SC7313_SpeakerRR | Volume;break;//后右声道
  275.                 case 2:dat = SC7313_SpeakerLF | Volume;break;//前左声道
  276.                 case 3:dat = SC7313_SpeakerRF | Volume;break;//前右声道
  277.                 default:break;
  278.         }
  279.         SC7313_WriteData(dat); //[BIT4:0]
  280. }

  281. //--------------------------------------- SC7313基础设置 END-------------------------------------------//



  282. //================================================================================
  283. //函数名称:void SC7313_SetChannel(unsigned char Channel)
  284. //函数说明:设置输入音源通道0~3
  285. //入口参数: Channel:0~3
  286. //出口参数: 无
  287. //================================================================================  
  288. void SC7313_SetChannel(unsigned char Channel)   
  289. {

  290.          //Audio_Para[Audio_MainVolume] =                            //主音量        //范围值(0-63)
  291.          Audio_Para[Audio_MainChannel] = Channel;        //声音通道        //范围值(0-2)         
  292.          //Audio_Para[Audio_GainLevel] =                                   //增益级别        //范围值(0-3)
  293.          //Audio_Para[Audio_LoudnessSW] =                           //响度开关        //范围值(0-1)
  294.          //Audio_Para[Audio_BassVolume] =                           //低音音量        //范围值(0-14)
  295.          //Audio_Para[Audio_TrebleVolume] =                          //高音音量        //范围值(0-14)
  296.          SC7313_SetAudio( Audio_Para[Audio_MainChannel], Audio_Para[Audio_GainLevel], Audio_Para[Audio_LoudnessSW] ); //设置输入音源通道0~3,增益0~3,开关0~1
  297.          //SC7313_SetAll();        //SC7313写入全部参数
  298. }

  299. //================================================================================
  300. //函数名称:void SC7313_SetGain(unsigned char GainLevel)
  301. //函数说明:设置输入音源增益0~3
  302. //入口参数: GainLevel:0~3
  303. //出口参数: 无
  304. //================================================================================  
  305. void SC7313_SetGain(unsigned char GainLevel)   
  306. {

  307.          //Audio_Para[Audio_MainVolume] =                            //主音量        //范围值(0-63)
  308.          //Audio_Para[Audio_MainChannel] = Channel;        //声音通道        //范围值(0-2)         
  309.          Audio_Para[Audio_GainLevel] = GainLevel;                          //增益级别        //范围值(0-3)
  310.          //Audio_Para[Audio_LoudnessSW] =                           //响度开关        //范围值(0-1)
  311.          //Audio_Para[Audio_BassVolume] =                           //低音音量        //范围值(0-14)
  312.          //Audio_Para[Audio_TrebleVolume] =                          //高音音量        //范围值(0-14)
  313.          SC7313_SetAudio( Audio_Para[Audio_MainChannel], Audio_Para[Audio_GainLevel], Audio_Para[Audio_LoudnessSW] ); //设置输入音源通道0~3,增益0~3,开关0~1
  314.          //SC7313_SetAll();        //SC7313写入全部参数
  315. }

  316. //================================================================================
  317. //函数名称:void SC7313_SetLoudness(unsigned char SW)
  318. //函数说明:设置输入音源响度开关0~1
  319. //入口参数: SW:0~1
  320. //出口参数: 无
  321. //================================================================================  
  322. void SC7313_SetLoudness(unsigned char SW)   
  323. {

  324.          //Audio_Para[Audio_MainVolume] =                            //主音量        //范围值(0-63)
  325.          //Audio_Para[Audio_MainChannel] = Channel;        //声音通道        //范围值(0-2)         
  326.          //Audio_Para[Audio_GainLevel] =                                   //增益级别        //范围值(0-3)
  327.          Audio_Para[Audio_LoudnessSW] = SW;                          //响度开关        //范围值(0-1)
  328.          //Audio_Para[Audio_BassVolume] =                           //低音音量        //范围值(0-14)
  329.          //Audio_Para[Audio_TrebleVolume] =                          //高音音量        //范围值(0-14)
  330.          SC7313_SetAudio( Audio_Para[Audio_MainChannel], Audio_Para[Audio_GainLevel], Audio_Para[Audio_LoudnessSW] ); //设置输入音源通道0~3,增益0~3,开关0~1
  331.          //SC7313_SetAll();        //SC7313写入全部参数
  332. }

  333. //================================================================================
  334. //函数名称:void SC7313_VolumeUP()  
  335. //函数说明:主音量级别++ 0~15
  336. //入口参数: 无
  337. //出口参数: 无
  338. //================================================================================   
  339. void SC7313_VolumeUP()            
  340. {
  341.         if(Audio_Para[Audio_MainVolume]<15)
  342.         {
  343.                 Audio_Para[Audio_MainVolume] ++;                            //主音量        //范围值(0-15)
  344.                 SC7313_SetVolume( Audio_Para[Audio_MainVolume] ); //设置主音量级别 0~15
  345.         }
  346. }

  347. //================================================================================
  348. //函数名称:void SC7313_VolumeDOWN()  
  349. //函数说明:主音量级别-- 0~15
  350. //入口参数: 无
  351. //出口参数: 无
  352. //================================================================================   
  353. void SC7313_VolumeDOWN()            
  354. {
  355.         if(Audio_Para[Audio_MainVolume]>0)
  356.         {
  357.                 Audio_Para[Audio_MainVolume] --;                            //主音量        //范围值(0-15)
  358.                 SC7313_SetVolume( Audio_Para[Audio_MainVolume] ); //设置主音量级别 0~15
  359.         }
  360. }

  361. //================================================================================
  362. //函数名称:void SC7313_ChannelUP()   
  363. //函数说明:切换输入音源通道++ 0~3
  364. //入口参数: 无
  365. //出口参数: 无
  366. //================================================================================   
  367. void SC7313_ChannelUP()            
  368. {
  369.         Audio_Para[Audio_MainChannel] ++;                            //声音通道        //范围值(0-2)
  370.         if(Audio_Para[Audio_MainChannel]>2)
  371.         {
  372.                 Audio_Para[Audio_MainChannel] = 0;       
  373.         }
  374.         SC7313_SetAudio( Audio_Para[Audio_MainChannel], Audio_Para[Audio_GainLevel], Audio_Para[Audio_LoudnessSW] ); //设置输入音源通道0~3,增益0~3,开关0~1
  375. }

  376. //================================================================================
  377. //函数名称:void SC7313_ChannelDOWN()   
  378. //函数说明:切换输入音源通道-- 0~3
  379. //入口参数: 无
  380. //出口参数: 无
  381. //================================================================================   
  382. void SC7313_ChannelDOWN()            
  383. {
  384.         Audio_Para[Audio_MainChannel] --;                            //声音通道        //范围值(0-2)
  385.         if(Audio_Para[Audio_MainChannel]<0)
  386.         {
  387.                 Audio_Para[Audio_MainChannel] = 2;       
  388.         }
  389.         SC7313_SetAudio( Audio_Para[Audio_MainChannel], Audio_Para[Audio_GainLevel], Audio_Para[Audio_LoudnessSW] ); //设置输入音源通道0~3,增益0~3,开关0~1
  390. }


  391. //================================================================================
  392. //函数名称:void SC7313_SetAll()  
  393. //函数说明:SC7313写入全部参数
  394. //入口参数: 无
  395. //出口参数: 无
  396. //================================================================================  
  397. void SC7313_SetAll()  
  398. {
  399.         SC7313_SetVolume( Audio_Para[Audio_MainVolume] );                 //设置主音量 0~15
  400.         SC7313_SetAudio( Audio_Para[Audio_MainChannel], Audio_Para[Audio_GainLevel], Audio_Para[Audio_LoudnessSW] ); //设置输入音源通道0~3,增益0~3,开关0~1
  401.         SC7313_SetSpeaker(0, 0);        //后左声道//设置扬声器衰减0db ~ -30db  Volume(31)0x1F=MUTE
  402.         SC7313_SetSpeaker(1, 0);        //后右声道//设置扬声器衰减0db ~ -30db  Volume(31)0x1F=MUTE
  403.         SC7313_SetSpeaker(2, 0);        //前左声道//设置扬声器衰减0db ~ -30db  Volume(31)0x1F=MUTE
  404.         SC7313_SetSpeaker(3, 0);        //前右声道//设置扬声器衰减0db ~ -30db  Volume(31)0x1F=MUTE
  405.         SC7313_SetBass( Audio_Para[Audio_BassVolume] );                 //+6db 设置音调(低音)0~14 //-14db ~ +14db  7=0db
  406.         SC7313_SetTreble( Audio_Para[Audio_TrebleVolume] );                 //+2db 设置音调(高音)0~14 //-14db ~ +14db  7=0db
  407. }




  408. //================================================================================
  409. //函数名称:
  410. //函数说明:
  411. //入口参数:
  412. //出口参数: 无
  413. //================================================================================  
  414. //SC7313初始化
  415. void SC7313_Init1(void)            
  416. {
  417.         SC7313_WriteData(0x3F); //SC7313_Volume     //主音量 最小
  418.         SC7313_WriteData(0x5C); //SC7313_Audio          //Stereo 1 Loudness OFF 0dB
  419.         SC7313_WriteData(0xC0); //SC7313_SpeakerLR        //后左声道
  420.         SC7313_WriteData(0xE0); //SC7313_SpeakerRR        //后右声道
  421.         SC7313_WriteData(0x80); //SC7313_SpeakerLF        //前左声道
  422.         SC7313_WriteData(0xA0); //SC7313_SpeakerRF        //前右声道
  423.         SC7313_WriteData(0x6C); //SC7313_Bass                //低音 +6db
  424.         SC7313_WriteData(0x7E); //SC7313_Treble                //高音 +2db
  425.        
  426.         delay_ms(300);

  427.         SC7313_WriteData(0x0C); //SC7313_Volume                //主音量12
  428.         SC7313_WriteData(0x44); //SC7313_Audio          //Stereo 1 Loudness  ON +11.25dB
  429.         SC7313_WriteData(0xC0); //SC7313_SpeakerLR        //后左声道
  430.         SC7313_WriteData(0xE0); //SC7313_SpeakerRR        //后右声道
  431.         SC7313_WriteData(0x80); //SC7313_SpeakerLF        //前左声道
  432.         SC7313_WriteData(0xA0); //SC7313_SpeakerRF        //前右声道
  433.         SC7313_WriteData(0x6C); //SC7313_Bass                //低音
  434.         SC7313_WriteData(0x7E); //SC7313_Treble                //高音
  435. }

  436. //================================================================================
  437. //函数名称:
  438. //函数说明:
  439. //入口参数:
  440. //出口参数: 无
  441. //================================================================================  
  442. //SC7313初始化
  443. void SC7313_Init(void)      
  444. {
  445.         SC7313_SCL         = 1;        //I2C总线的时钟线
  446.         SC7313_SDA         = 1;        //I2C总线的数据线

  447.         SC7313_SetVolume(0);                 //设置主音量 0~15
  448.         SC7313_SetAudio(3, 0, 0); //设置输入音源通道0~3,增益0~3,开关0~1
  449.         SC7313_SetSpeaker(0, 0);        //后左声道//设置扬声器衰减0db ~ -30db  Volume(31)0x1F=MUTE
  450.         SC7313_SetSpeaker(1, 0);        //后右声道//设置扬声器衰减0db ~ -30db  Volume(31)0x1F=MUTE
  451.         SC7313_SetSpeaker(2, 0);        //前左声道//设置扬声器衰减0db ~ -30db  Volume(31)0x1F=MUTE
  452.         SC7313_SetSpeaker(3, 0);        //前右声道//设置扬声器衰减0db ~ -30db  Volume(31)0x1F=MUTE
  453.         SC7313_SetBass(10);                 //+6db 设置音调(低音)-14db ~ +14db  7=0db
  454.         SC7313_SetTreble(8);                 //+2db 设置音调(高音)-14db ~ +14db  7=0db

  455.         delay_ms(100);

  456.         SC7313_SetAll(); //SC7313写入全部参数
  457.                
  458. }



复制代码


打赏

参与人数 4家元 +58 收起 理由
343874758 + 30 認真發帖
oydl82 + 10 熱心助人
风间尘 + 8 歡迎探討
温力口 + 10 热心坛友,新年快乐!

查看全部打赏

回复 支持 1 反对 0

使用道具 举报

发表于 2021-2-14 13:40:44 | 显示全部楼层
  1. #ifndef __Audio_SC7313_H__
  2. #define __Audio_SC7313_H__

  3. #include "config.h"

  4. //-------------------- SC7313寄存器指令 ------------------------//
  5. #define SC7313_Address            0x88        // Chips address
  6. #define SC7313_Volume             0x00        // Volume Control        =[BIT5:0]
  7. #define SC7313_SpeakerLR    0xC0        // Speaker ATT LR        =[BIT4:0]
  8. #define SC7313_SpeakerRR    0xE0        // Speaker ATT RR        =[BIT4:0]
  9. #define SC7313_SpeakerLF    0x80        // Speaker ATT LF        =[BIT4:0]
  10. #define SC7313_SpeakerRF    0xA0        // Speaker ATT RF        =[BIT4:0]
  11. #define SC7313_Audio             0x40        // Audio switch                =[BIT4:0]
  12. #define SC7313_Bass             0x60        // Bass control                =[BIT3:0]
  13. #define SC7313_Treble             0x70        // Treble control        =[BIT3:0]

  14. //-------------------- 参数定义 ------------------------//
  15. //参数数组大小
  16. #define Audio_Number                     6        //数组参数个数
  17. //参数在数组中的位置
  18. #define Audio_MainVolume             0        //主音量        //范围值(0-63)
  19. #define Audio_MainChannel             1        //声音通道        //范围值(0-2)
  20. #define Audio_GainLevel             2        //增益级别        //范围值(0-3)
  21. #define Audio_LoudnessSW             3        //响度开关        //范围值(0-1)
  22. #define Audio_BassVolume             4        //低音音量        //范围值(0-14)
  23. #define Audio_TrebleVolume            5        //高音音量        //范围值(0-14)
  24. //要写入的参数        
  25. // 0: 主音量级别(0-15)                   1: 声音通道(0-2)                           
  26. // 2: 增益级别(0-3)                                3: 响度开关(0-1)              
  27. // 4: 低音音量(0-17)                 5: 高音音量(0-17)
  28. extern char Audio_Para[Audio_Number];        //参数数组

  29. //--------------------    ------------------------//
  30. extern char Audio_RunState;         //运行状态
复制代码


打赏

参与人数 1家元 +30 收起 理由
343874758 + 30 認真發帖

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2021-2-14 13:47:28 | 显示全部楼层
有这些就能按需要进行控制了
回复 支持 反对

使用道具 举报

发表于 2021-2-14 14:06:33 | 显示全部楼层

热心坛友,新年快乐!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-14 17:25:55 | 显示全部楼层
zzj80 发表于 2021-2-14 13:47
有这些就能按需要进行控制了

朋友能否给一个联系方式?详谈
回复 支持 反对

使用道具 举报

发表于 2021-2-14 18:50:44 | 显示全部楼层
我在老站发有一个是PT2313的,但和TDA7313是一样的,数码管是用TM1628C 控制的。
http://bbs.mydigit.cn/read.php?tid=317700

打赏

参与人数 1家元 +21 收起 理由
343874758 + 21 謝謝分享

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2021-2-14 20:41:28 来自手机浏览器 | 显示全部楼层
343874758 发表于 2021-2-14 17:25
朋友能否给一个联系方式?详谈

怎么?代码都有注释呀,还搞不定?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-14 20:44:50 | 显示全部楼层
zzj80 发表于 2021-2-14 20:41
怎么?代码都有注释呀,还搞不定?

我对单片机程序小白一个
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-9-5 04:50 , Processed in 0.140400 second(s), 12 queries , Gzip On, Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表