📄 i2c.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 + -