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

📄 24c16.c

📁 对遥控器PT2262编码芯片进行解码的源程序。已经在多个产品中使用。
💻 C
字号:
/****************************************************************************
【文  件  名  称】24C16.C
【功  能  描  述】输入输出程序
【程  序  版  本】1.0
****************************************************************************/

//***************************************************************************


#include <REG2051.H>
#include "INC\DECLARE.H"
#include "INC\SM89516A.H"
#include "INC\IOMOD.H"
#include <intrins.h>
//***************************************************************************



#define Delay_2us()  _nop_();_nop_();
#define Delay_5us()  _nop_();_nop_();_nop_();_nop_();_nop_();

/****************************************************************************
名称:    IIC_Start
参数:    无
返回值:   无
描述:   
创建日期:
修改日期:
****************************************************************************/
void IIC_Start()
{
    SDA =1;
   	Delay_2us();
  	SCL =1;
   	Delay_5us();
   	SDA =0;
   	Delay_5us();
  	SCL =0;
}

/****************************************************************************
名称:    IIC_Stop
参数:    
返回值:   
描述:   
创建日期:
修改日期:
****************************************************************************/
void IIC_Stop()
{  
  	SDA =0;
  	Delay_2us();
  	SCL =1;
   	Delay_5us();
  	SDA =1;
   	Delay_5us();
}

/****************************************************************************
名称:    IIC_SendByte
参数:    
返回值:   
描述:   
创建日期:
修改日期:
****************************************************************************/
void IIC_SendByte(unsigned char data8)
{
  	unsigned char  bitcnt  ;
  	bitcnt =8;
	while (bitcnt-- >0)
  	{
  	 	if ((data8&0x80)==0)SDA =0;
     	else SDA =1;
   		Delay_2us();
   		SCL =1;
   		Delay_5us();
   		SCL =0;
   		data8 <<=1;
  	}
   	Delay_2us();
  	SDA =1;
   	Delay_2us();
  	SCL =1;
    Delay_5us();
  	SCL =0;

}

/****************************************************************************
名称:    IIC_RcvByte
参数:    无
返回值:   IIC得到的数
描述:   
创建日期:
修改日期:
****************************************************************************/
unsigned char IIC_RcvByte(void)
{
  	unsigned char  temp ,bitcnt =8;           

 	SDA =1;
	temp = 0;
 	bitcnt =8;
 	while(bitcnt-- >0)
 	{
    	Delay_2us();
    	SCL =0;
    	Delay_5us();
    	SCL =1;
    	Delay_5us();   
    	temp<<=1;
    	if (SDA==1)	temp ++;    	
    }
  	SCL =0;
   	Delay_5us();
  	SDA =1;
   	Delay_2us();
  	SCL =1;
   	Delay_5us();
  	SCL =0;
  	return temp;
}

/****************************************************************************
名称:   Get_SP_Byte1
参数:   slav_addr: EEPROM主地址
         sub_addr :EEPROM从地址
返回值:   无
描述:   
创建日期:
修改日期:
****************************************************************************/
unsigned char Get_SP_Byte(unsigned char slav_addr,unsigned char sub_addr)
{
	unsigned char result;
	IIC_Start();
	IIC_SendByte(slav_addr);
	IIC_SendByte(sub_addr);
	IIC_Start();
	IIC_SendByte(slav_addr+1);
	result = IIC_RcvByte();
	IIC_Stop();
	return result;
} 

/****************************************************************************
名称:   Save_SP_Byte1
参数:   SLAV_ADDR: EEPROM主地址
         nvm_addr :EEPROM从地址
         val_write:欲存的值
返回值:   无
描述:   
创建日期:
修改日期:
****************************************************************************/
void Save_SP_Byte(unsigned char slav_addr,unsigned char sub_addr,unsigned char val)
{
	IIC_Start();
	IIC_SendByte(slav_addr);
	IIC_SendByte(sub_addr);
	IIC_SendByte(val);
	IIC_Stop();
	Delay_Nms(10);
}	 

⌨️ 快捷键说明

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