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

📄 sc7313s.c

📁 SC7313S(PT2314)控制接口程序For MCS C51
💻 C
📖 第 1 页 / 共 2 页
字号:
 /**********************************************************************************************
*
*	                     SC7313S控制程序 V1.0
*
*	                这是SC7313S控制程序功能模块
*
*	文件名	: SC7313S.C
*	设计者	: 李东荣(EMAIL:JDLDR@21CN.COM,QQ:20475125)
************************************************************************************************
*                                   功 能 描 述
*
*	1. 
*	2.
************************************************************************************************/
/***********************************************************************************************
						函数声明区
************************************************************************************************/
/***********************************************************************************************
函数名称:	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);
/***********************************************************************************************
函数名称:	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);
/***********************************************************************************************
函数名称:	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);
/***********************************************************************************************
函数名称:	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);
/***********************************************************************************************
函数名称:	SC7313S音效子程序
函数原型:	bit SC_MUTE(bit SW,bit RW)
函数功能:	控制SC7313S的高低音平衡
输入参数:	SW	:0=低音,1=高音
			Vol	:输入音量(MIN0-15MAX)
			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);
/***********************************************************************************************
函数名称:	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);




/***********************************************************************************************
					相关配置程序
************************************************************************************************/
sbit		SC_SDA		=		0xA1;		//SC7313S的SDA引脚地址
sbit		SC_SCL		=		0xA3;		//SC7313S的SCL引脚地址
sbit 		SC_EA		=		0xAF;		//MCU的中断允许寄存器地址
#define 	SC_Loudness		0x00		//0x00=响度开,0x04=响度关
/***********************************************************************************************
					公开变量声明
************************************************************************************************/
bit SC_Mute_Bit;
bit SC_Mute_Vol;
unsigned char SC_Vol_Num;
unsigned char SC_TVol_Num;
unsigned char SC_BVol_Num;
unsigned char SC_SW;
unsigned char SC_InVol_Num[4];
unsigned char SC_RLVol_Num[4];
/***********************************************************************************************
函数名称:	延时子程序
函数原型:	void SC_Nop(unsigned char Num)
函数功能:	延时
输入参数:	无
返回参数:	无
创建日期:	2008年3月30日
修改日期:	
有关说明:	
编写作者:	李东荣(EMAIL:JDLDR@21CN.COM,QQ:20475125)
**********************************************************************************************/
void SC_Nop(unsigned char Num)
{
	while(Num--);
}
/***********************************************************************************************
函数名称:	I2C总线起始信号
函数原型:	void SC_Start(void)
函数功能:	发出I2C总线起始信号
输入参数:	无
返回参数:	无
创建日期:	2008年3月30日
修改日期:	
有关说明:	
编写作者:	李东荣(EMAIL:JDLDR@21CN.COM,QQ:20475125)
**********************************************************************************************/
void SC_Start(void)
{
	SC_Nop(1);
	SC_SCL	=1;
	SC_Nop(1);
	SC_SDA	=0;
	SC_Nop(1);
	SC_SCL	=0;
	SC_Nop(1);
}
/***********************************************************************************************
函数名称:	I2C总线结束信号
函数原型:	void SC_Stop(void)
函数功能:	发出I2C总线结束信号
输入参数:	无
返回参数:	无
创建日期:	2008年3月30日
修改日期:	
有关说明:	
编写作者:	李东荣(EMAIL:JDLDR@21CN.COM,QQ:20475125)
**********************************************************************************************/
void SC_Stop(void)
{
	SC_SDA	=0;
	SC_Nop(1);
	SC_SCL	=1;
	SC_Nop(1);
	SC_SDA	=1;
	SC_Nop(1);
	SC_SCL	=0;
}
/***********************************************************************************************
函数名称:	I2C总线初始化信号
函数原型:	void SC_Init(void)
函数功能:	发出I2C总线初始化程序
输入参数:	无
返回参数:	无
创建日期:	2008年3月30日
修改日期:	
有关说明:	
编写作者:	李东荣(EMAIL:JDLDR@21CN.COM,QQ:20475125)
**********************************************************************************************/
void SC_Init(void)
{
	SC_SCL	=0;
	SC_Nop(1);
	SC_Stop();
}
/***********************************************************************************************
函数名称:	I2C总线时钟发出子程序
函数原型:	bit SC_Clock(void)
函数功能:	发出I2C总线时钟信号,并返回时钟电平为高期间SDA上的状态
输入参数:	无
返回参数:	sample	:总线时钟为高电平期间SDA的状态
创建日期:	2008年3月30日
修改日期:	
有关说明:	
编写作者:	李东荣(EMAIL:JDLDR@21CN.COM,QQ:20475125)
**********************************************************************************************/
bit SC_Clock(void)
{
	bit sample;
	SC_Nop(1);
	SC_SCL	=1;
	SC_Nop(1);
	sample=SC_SDA	;
	SC_Nop(1);
	SC_SCL	=0;
	SC_Nop(1);
	return(sample);
}
/***********************************************************************************************
函数名称:	SC7313S静音开子程序
函数原型:	bit SC_SendByte(char I2CData)
函数功能:	发出I2C总线总线发送1个字节,并请求应答,若收到应答,则返回1,否则返回0
输入参数:	SC_Clock	:返回应答
返回参数:	无
创建日期:	2008年3月30日
修改日期:	
有关说明:	
编写作者:	李东荣(EMAIL:JDLDR@21CN.COM,QQ:20475125)
**********************************************************************************************/
bit SC_SendByte(char I2CData)
{
	register unsigned char i;
	for(i=0;i<8;i++) {
		SC_SDA	=(bit)(I2CData&0x80);
		I2CData<<=1;
		SC_Clock();
		}
	SC_SDA	=1;
	return(~SC_Clock());
}
/***********************************************************************************************
函数名称:	SC7313S静音开子程序
函数原型:	void SC_MUTE_OPEN(void)
函数功能:	SC7313S静音开启
输入参数:	无

⌨️ 快捷键说明

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