📄 62420.c.c
字号:
#include <AT89X52.H>
#include <intrins.h>
#include "I2C.H"
#define uchar unsigned char
#define uint unsigned int
#define PARAMEAD 0
void STARTBIT();
void I2C_TX(uchar temp);
void STOPBIT();
uchar I2C_RX();
void EEPROM_RD();
void EPWR1B(uchar add,uchar adata);
/**********************************************************
程序名称: 静音程序
程序功能: 静音62420
入口参数:
出口参数:
调用子程序:
**********************************************************/
void mute_62420()
{
STARTBIT();
M62420_ADD = 0x80; //62420的slave地址
I2C_TX(M62420_ADD);
M62420_ADD1 = 0x10;//62420的sub地址,开启静音模式
I2C_TX(M62420_ADD1);
STOPBIT();
}
/**********************************************************
程序名称: 62420开始位程序
程序功能:
入口参数:
出口参数:
调用子程序:
**********************************************************/
void STARTBIT()
{
uchar j,count;
I2C_SDA = 1;
if (I2C_SDA)
{
I2C_SCL = 1;
for (j=30; j; j--)
{ };
I2C_SDA = 0;
for (j=30; j; j--)
{ };
I2C_SCL = 0;
}
else
{
for (count=20; count; count--)
{
I2C_SCL = 0;
for (j=30; j; j--)
{ };
I2C_SCL = 1;
for (j=30; j; j--)
{ };
}
ERROR_CODE = I2CSTRER;
ERROR_F = 1;
}
}
/**********************************************************
程序名称: 62420写地址程序
程序功能:
入口参数:
出口参数:
调用子程序:
**********************************************************/
void I2C_TX(uchar temp)
{
uchar i,j,k;
for (i=8; i; i--)
{
I2C_SCL = 0;
temp<<=1;
_nop_();
_nop_();
I2C_SDA = CY;
for (j=30; j; j--)
{ };
I2C_SCL = 1;
for (j=30; j; j--)
{ };
}
I2C_SCL = 0;
_nop_();
I2C_SDA = 1;
_nop_();
if (I2C_SDA)
{
for(k=255; k; k--)
{ };
ERROR_F = 1;
ERROR_CODE = I2CTXER;
I2C_SCL = 1;
for (j=30; j; j--)
{ };
I2C_SCL = 0;
}
else
{
I2C_SCL = 1;
for (j=30; j; j--)
{ };
I2C_SCL = 0;
}
}
/**********************************************************
程序名称: 62420停止位程序
程序功能:
入口参数:
出口参数:
调用子程序:
**********************************************************/
void STOPBIT()
{
uchar j=20, count;
do
{
I2C_SCL = 0;
_nop_();
I2C_SDA = 0;
_nop_();
_nop_();
I2C_SCL = 1;
for (count=30; count; count--)
{ };
I2C_SDA = 1;
}
while((I2C_SDA==0) && (j--)); //先判断I2C_SDA是否为0,如为0,满足即为真;则再判断j-1是否为真;只有两条件同时满足时才执行循环.
if (!I2C_SDA)
{
ERROR_CODE = I2CSTPER;
ERROR_F = 1;
}
else
for(count=30; count; count--)
{ };
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -