上传者: sdychenying 
                                    |
                                    上传时间: 2021-11-16 20:48:04
                                    |
                                    文件大小: 1.73MB
                                    |
                                    文件类型: -
                                
                            
                                
                            
                                本产品是一个具有音量控制的IC。
void I2C_start(void)
{
   	EA=0;
    PTDAT=1; PTSCL=1; SomeNOP();
    PTDAT=0; SomeNOP(); 
	PTSCL=0;	
}
static void I2C_stop(void)
{
	PTSCL=0; PTDAT=0; SomeNOP(); 
	PTSCL=1; SomeNOP(); PTDAT=1; 
}
static char I2C_ack(void)
{
	unsigned int  errtime=255;//因故障接收方无ACK,超时值为255。
	PTDAT=1;SomeNOP();
    PTSCL=1;SomeNOP();
   
 	while(PTDAT) 
	{ errtime--; 
  			if (!errtime) 
  			{ 
               I2C_stop();
  			   return 0;
            }
    }
    PTSCL=0;
    return 1;
}
static char I2C_send_byte(unsigned char ch)
{
	uchar i=8;
	while (i--)
	{
	    PTSCL=0;_nop_();
       _nop_();_nop_();_nop_();_nop_();_nop_();
	   if(ch&0x80)
         PTDAT=1; 
	   else
         PTDAT=0;
       ch<<=1; SomeNOP();
       PTSCL=1; SomeNOP();
       
    }
     PTSCL=0;
	return I2C_ack();
}
char pt2314_send_data(unsigned char *dat, unsigned char n)
{
	unsigned char i;
	I2C_start();
	if (!I2C_send_byte(0x88))
	{
		return 0;
	}
	for (i = 0; i < n; i++)
	{
		if (!I2C_send_byte(dat[i]))
		{
			return 0;
		}
	}
	I2C_stop();
	return 1;
}
char Set_pt2314_Volume(unsigned char dat)
{
    //unsigned char i;
	I2C_start();
	if (!I2C_send_byte(0x88))
	{
		return 0;
	}
//	for (i = 0; i < n; i++)
//	{
	if (!I2C_send_byte(dat))
		{
			return 0;
		}
//	}
	I2C_stop();
	return 1;
}
/