📄 sc7313s.c
字号:
/**********************************************************************************************
*
* 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 + -