📄 sc7313s.c
字号:
返回参数: 无
创建日期: 2008年3月30日
修改日期:
有关说明:
编写作者: 李东荣(EMAIL:JDLDR@21CN.COM,QQ:20475125)
**********************************************************************************************/
void SC_Write(unsigned char Data)
{
SC_EA=0;
SC_Init();
SC_Start();
SC_SendByte(0x88);
SC_SendByte(Data);
SC_Stop() ;
SC_EA=1;
}
/***********************************************************************************************
函数名称: SC7313S静音开子程序
函数原型: void SC_MUTE_OPEN(void)
函数功能: SC7313S静音开启
输入参数: 无
返回参数: 无
创建日期: 2008年3月30日
修改日期:
有关说明:
编写作者: 李东荣(EMAIL:JDLDR@21CN.COM,QQ:20475125)
**********************************************************************************************/
void SC_MUTE_OPEN(void)
{
unsigned char TempVol,TempSW,TempIndex;
for(TempIndex=0;TempIndex<4;TempIndex++)
{
TempSW=TempIndex;
TempSW<<=5;
TempVol=(0x9F|TempSW);
SC_Write(TempVol);
}
}
/***********************************************************************************************
函数名称: SC7313S静音关闭子程序
函数原型: void SC_MUTE_CLOSE(void)
函数功能: SC7313S静音关闭
输入参数: 无
返回参数: 无
创建日期: 2008年3月30日
修改日期:
有关说明:
编写作者: 李东荣(EMAIL:JDLDR@21CN.COM,QQ:20475125)
**********************************************************************************************/
void SC_MUTE_CLOSE(void)
{
unsigned char TempVol,TempSW,TempIndex;
for(TempIndex=0;TempIndex<4;TempIndex++)
{
TempSW=TempIndex;
TempSW<<=5;
TempVol=(0x9F|TempSW)-SC_RLVol_Num[TempIndex];
SC_Write(TempVol);
}
}
/***********************************************************************************************
函数名称: SC7313S静音控制子程序
函数原型: bit SC_MUTE(bit SW,bit RW)
函数功能: SC7313S静音控制
输入参数: SW :0=静音关;1=静音开
RW :0=读出;1=写入
返回参数: SW :0=静音关;1=静音开
创建日期: 2008年3月30日
修改日期:
有关说明:
编写作者: 李东荣(EMAIL:JDLDR@21CN.COM,QQ:20475125)
************************************************************************************************/
bit SC_MUTE(bit SW,bit RW)
{
if (RW)
{
//保存记录
SC_Mute_Bit=SW;
if (SC_Mute_Bit) //静音开
{
SC_MUTE_OPEN();
}
if ((!SC_Mute_Bit)&&(!SC_Mute_Vol)) //静音关
{
SC_MUTE_CLOSE();
}
}
return(SC_Mute_Bit);
}
/***********************************************************************************************
函数名称: SC7313S音量子程序
函数原型: bit SC_MUTE(bit SW,bit RW)
函数功能: SC7313S音量控制
输入参数: Vol :音量或增益的大小(MIN0-63MAX)
RW :0=读出;1=写入
返回参数: Vol :返回音量的值
创建日期: 2008年3月30日
修改日期:
有关说明:
编写作者: 李东荣(EMAIL:JDLDR@21CN.COM,QQ:20475125)
**********************************************************************************************/
unsigned char SC_Vol(unsigned char Vol,bit RW)
{
unsigned char TempVol;
if (RW)
{
SC_Vol_Num=Vol;
if (SC_Vol_Num==0x00)
{
SC_Mute_Vol=1;
SC_MUTE_OPEN();
}
else
{
TempVol=(0x3F-SC_Vol_Num);
SC_Write(TempVol);
if (!SC_Mute_Vol)
{
SC_Mute_Vol=0;
SC_MUTE_CLOSE();
}
}
}
return(SC_Vol_Num);
}
/***********************************************************************************************
函数名称: SC7313S输入增益设置子程序
函数原型: bit SC_MUTE(bit SW,bit RW)
函数功能: 设置SC7313S每一路输入增益
输入参数: SW :0=第一路输入增益;1=第二路输入增益;2=第三路输入增益;3=第四路输入增益
Vol :音量或增益的大小
RW :0=读出;1=写入(MIN0-4MAX)
返回参数: Vol :返回SW选中的音量值
创建日期: 2008年3月30日
修改日期:
有关说明:
编写作者: 李东荣(EMAIL:JDLDR@21CN.COM,QQ:20475125)
**********************************************************************************************/
unsigned char SC_InVol(unsigned char SW,unsigned char Vol,bit RW)
{
unsigned char OutTemp,VolTemp;
if (RW)
{
SC_InVol_Num[SW]=Vol;
if(SW=SC_SW)
{
VolTemp=Vol;
VolTemp<<=3;
OutTemp=(0x40|VolTemp|SW|SC_Loudness);
SC_Write(OutTemp);
}
}
return(SC_InVol_Num[SW]);
}
/***********************************************************************************************
函数名称: SC7313S声道平衡控制程序
函数原型: bit SC_MUTE(bit SW,bit RW)
函数功能: 设置SC7313S每一个声道的音量
输入参数: SW :0=前左声道(RR);1=前右声道(RL);2=后左声道(LR);3=后右声道(LL);
Vol :输入的音量大小(MIN0-63MAX)
RW :0=读出;1=写入
返回参数: Vol :返回SW选中的音量值
创建日期: 2008年3月30日
修改日期:
有关说明:
编写作者: 李东荣(EMAIL:JDLDR@21CN.COM,QQ:20475125)
**********************************************************************************************/
unsigned char SC_RLVol(unsigned char SW,unsigned char Vol,bit RW)
{
unsigned char TempVol,TempSW;
if(RW)
{ SC_RLVol_Num[SW]=Vol;
TempSW=SW;
TempSW<<=5;
TempVol=(0x9F|TempSW)-Vol;
SC_Write(TempVol);
}
return(SC_RLVol_Num[SW]);
}
/***********************************************************************************************
函数名称: SC7313S音效子程序
函数原型: bit SC_MUTE(bit SW,bit RW)
函数功能: 控制SC7313S的高低音平衡
输入参数: SW :0=低音,1=高音
Vol :输入音量(MIN0-15MAX)(7=0dB)
RW :0=读出;1=写入
返回参数: Vol :SW选择的项目音量大小
创建日期: 2008年3月30日
修改日期:
有关说明:
编写作者: 李东荣(EMAIL:JDLDR@21CN.COM,QQ:20475125)
**********************************************************************************************/
unsigned char SC_TBVol(bit SW,unsigned char Vol,bit RW)
{
unsigned char TempVol,TempTB;
if(RW)
{ if (SW)
{TempTB=0x70;}
else
{TempTB=0x60;}
if ((Vol&0x08)==0)
{TempVol=(TempTB+Vol);}
else
{TempVol=(TempTB|0x0F)-(Vol&0x07);}
SC_Write(TempVol);
}
if (SW) return(SC_TVol_Num);
else return(SC_BVol_Num);
}
/***********************************************************************************************
函数名称: SC7313S开关子程序
函数原型: unsigned char SC_SW_Set(unsigned char SW,bit RW)
函数功能: 转换SC7313S输入端口,并自动加载使用通道的输入增益
输入参数: SW :0=第一路输入;1=第二路输入;2=每三路输入;3=第三路输入
RW :0=读出;1=写入
返回参数: SW :返回当前输入端口
创建日期: 2008年3月30日
修改日期:
有关说明:
编写作者: 李东荣(EMAIL:JDLDR@21CN.COM,QQ:20475125)
**********************************************************************************************/
unsigned char SC_SW_Set(unsigned char SW,bit RW)
{
unsigned char VolTemp,OutTemp;
if(RW)
{
SC_MUTE_OPEN();
VolTemp=SC_InVol_Num[SW];
VolTemp<<=3;
OutTemp=(0x58|SW|SC_Loudness)-VolTemp;
SC_Write(OutTemp);
if ((!SC_Mute_Bit)&&(!SC_Mute_Vol)) SC_MUTE_CLOSE();
}
return(SC_SW);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -