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

📄 sc7313s.c

📁 SC7313S(PT2314)控制接口程序For MCS C51
💻 C
📖 第 1 页 / 共 2 页
字号:
返回参数:	无
创建日期:	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 + -