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

📄 i2c.h

📁 I2C protocol driver working perfectly with 89C51
💻 H
字号:
/*****************************************************************************
 * I2C control functions.
 * Created By:Ganesh Kumar.SW 
 * Created On:5-03-2008
 ****************************************************************************/
#include <intrins.h>

//DELAY
#define HOLD_L	_nop_();_nop_();_nop_();_nop_()
#define HOLD_M	_nop_();_nop_();_nop_()
#define HOLD_S	_nop_();_nop_()

typedef unsigned char ubyte;  

 sbit btSDA = P0^0;
 sbit btSCL = P0^1;
 ubyte bdata _data;
 sbit MSB =_data^7;

//Function Prototype

void send_stop(void);
void send_data(ubyte temp);
void send_start(void);
void ack(void);


void send_data(ubyte temp)
{	
	
	ubyte i;
	send_start();
	_data=temp;
		for(i=0;i<8;i++)
		{
			
				HOLD_S;
		  	 	 btSCL=0;
		  		HOLD_S;
				btSDA=MSB;
		  		HOLD_M;
		  		btSCL=1; 
				_data=_data<<1;
				/*HOLD_S;
		  	 	 btSCL=0;
		  		HOLD_S;
				btSDA=0;
		  		HOLD_M;
		  		btSCL=1; 		//7
		  		HOLD_S;
				 btSCL=0;
		  		HOLD_S;
				btSDA=0;
		  		HOLD_M;
		  		btSCL=1;		//6
		  		HOLD_S;
				 btSCL=0;
		  		HOLD_S;
				btSDA=0;
		  		HOLD_M;
		  		btSCL=1;		//5
		  		HOLD_S;
				 btSCL=0;
		  		HOLD_S;
				btSDA=0;
		  		HOLD_M;
		  		btSCL=1; 		//4
		  		HOLD_S;
				 btSCL=0;
		  		HOLD_S;
				btSDA=0;
		  		HOLD_M;
		  		btSCL=1;  		//3
		  		HOLD_S;
				 btSCL=0;
		  		HOLD_S;
				btSDA=1;
		  		HOLD_M;
		  		btSCL=1;  		//2
		  		HOLD_S;
				 btSCL=0;
		  		HOLD_S;
				btSDA=1;
		  		HOLD_M;
		  		btSCL=1;  		//1
		  		HOLD_S;
				 btSCL=0;
		  		HOLD_S;
				btSDA=0;
		  		HOLD_M;
		  		btSCL=0;  		//0
		  		HOLD_S;
			
		//}*/
			}	
	send_stop();
} 



void send_stop(void)
{
		//HOLD_L;
		HOLD_L;
		btSCL=0;
		HOLD_L;
		btSDA=0;
		HOLD_L;
	 	btSCL=1;
		HOLD_L;
  		btSDA=1;
		HOLD_L;
   				
}

void send_start(void)
{	

 		 btSCL = 1;
	HOLD_L;
 		 btSDA = 1;
 	HOLD_L;
	//HOLD_L;
  		btSDA = 0;
 	HOLD_L;
  		btSCL=0;
  	HOLD_L;
	
}	


⌨️ 快捷键说明

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