⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 r2s15902.c

📁 音量IC R2S15902的源程序,已正常使用.
💻 C
字号:

/* 控制 输入选通 和 高低音 */
void r2s15902_input_tone(uchar input_15902, uchar bass_15902, uchar treble_15902)
{
  uchar temp_data;
  uchar bass_1,treble_1;
/* ------------  AUX 选通 ---------- */
 
  if(input_15902==OPT_COA_IN)
    { temp_data=0x20;  /*  INT4  (立体声)  */   

    }
  if(input_15902==TUNER_IN)
    { temp_data=0x40;  //  INT1 TUNER_IN    
    }
  if(input_15902==IPOD_IN)
    { temp_data=0x80;  //  INT2 IPOD_IN

    }
  if(input_15902==AUX1_IN)
    { temp_data=0x80;  //  INT2 AUX1_IN
 
    }
  if(input_15902==AUX2_IN)
    { temp_data=0x80;  //  INT2 AUX2_IN
 
    }
  if(input_15902==AUX3_IN)
    { temp_data=0xc0;  //  INT3 AUX3_IN
    }

  send_r2s15902_a_byte(temp_data,8);

  /* ------------ L/R  输入  -------- */  
  temp_data=0x00;               // AUX IN
  if(input_15902==AC_3_IN)
    { temp_data=0x80;
    }

  send_r2s15902_a_byte(temp_data,1);
  
 /* ------------   高低音 -------- */ 
  bass_1=bass_15902/2;
  bass_1=bass_treble_15902_code[bass_1];    

  bass_1=bass_1<<4;

  treble_1=treble_15902/2;
  treble_1=bass_treble_15902_code[treble_1]; 
  
  temp_data=bass_1+treble_1;

  send_r2s15902_a_byte(temp_data,8);

/* ------------  SL/SR/C/SW INPUT  -------- */ 
  temp_data=0x00;               // AUX IN
  if(input_15902==AC_3_IN)
    { temp_data=0x80;
    }

  if(loud_mode_f==1)
    { temp_data=temp_data+0x40;
    }    

  send_r2s15902_a_byte(temp_data,7);
  
/* ---------------------------------- */  
  r2s15902_stop(); 

}


/* 控制 音量 */
void r2s15902_volume(uchar vol_1_15902, uchar vol_2_15902, uchar slot_15902)
{  uchar temp_byte;

   /* L_VOL  R_VOL */
   temp_byte=0;
   send_r2s15902_a_byte(temp_byte,3);        //  LCH GAIN CONTROL

   temp_byte=67-vol_1_15902;   temp_byte=temp_byte<<1;  
   send_r2s15902_a_byte(temp_byte,7);        //  LCH VOLUME   

   temp_byte=0;
   send_r2s15902_a_byte(temp_byte,3);        //  RCH GAIN CONTROL
  
   temp_byte=67-vol_2_15902;   temp_byte=temp_byte<<1; 
   send_r2s15902_a_byte(temp_byte,7);        //  RCH VOLUME
   
   temp_byte=slot_15902;
   send_r2s15902_a_byte(temp_byte,4);        //  SLOT 2

   r2s15902_stop(); 
}


/* 发送数据 temp_byte 为字节数据   n_bit 为多少位n_bit<=8 */
void send_r2s15902_a_byte(uchar temp_byte, uchar n_bit ) 
{
  uchar i;
   
  for(i=0;i<n_bit;i++)
    { r2s15902_clk=0; 
      _nop_(); _nop_(); 
      if((temp_byte&0x80)==0x80)
        { r2s15902_data=1; }
      else
        { r2s15902_data=0; }
      temp_byte=temp_byte<<1;
      _nop_(); _nop_();   _nop_(); _nop_();   _nop_();        
      r2s15902_clk=1;
      _nop_(); _nop_(); _nop_(); _nop_();  _nop_(); 
      r2s15902_data=0;   
      
    }
}



/* 发停止信号 */
void r2s15902_stop()
{ r2s15902_data=1;
      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 

  r2s15902_clk=0;
      _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); 

  r2s15902_data=0;

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -