📄 iic.c
字号:
#include "config.h"
void IIC_Delay(UCHAR x)
{
while(x > 0) x--;
}//void IIC_Delay(BYTE x)
void IIC_Start(void)
{
SET_SDA_OUT();
SET_SDA_HIGH();
SET_SCL_HIGH();
IIC_Delay(5);
SET_SDA_LOW();
IIC_Delay(5);
SET_SCL_LOW();
}//void IIC_Start(void)
void IIC_Stop(void)
{
SET_SDA_OUT();
SET_SDA_LOW();
SET_SCL_HIGH();
IIC_Delay(5);
SET_SDA_HIGH();
IIC_Delay(5);
SET_SCL_LOW();
}//void IIC_Stop(void)
void IIC_SendByte(UCHAR data)
{
UCHAR i;
SET_SDA_OUT();
for(i = 0; i < 8; i++)
{
if(data & 0x80) SET_SDA_HIGH();
else SET_SDA_LOW();
IIC_Delay(2);
SET_SCL_HIGH();
IIC_Delay(2);
SET_SCL_LOW();
data = data << 1;
}
}//void IIC_SendByte(BYTE data)
UCHAR IIC_ReceByte(void)
{
UCHAR i,data;
SET_SDA_IN();
data = 0;
for(i = 0; i < 8; i++)
{
IIC_Delay(2);
SET_SCL_HIGH();
IIC_Delay(2);
data = data << 1;
if(READ_SDA_DATA()) data |= 1;
SET_SCL_LOW();
}
return data;
}//BYTE IIC_ReceByte(void)
UCHAR IIC_ReplyBit(void)
{
UCHAR stat;
SET_SDA_IN();
SET_SCL_HIGH();
IIC_Delay(2);
if(READ_SDA_DATA()) stat = FALSE;
else stat = TRUE;
SET_SCL_LOW();
return stat;
}//BYTE IIC_ReplyBit(void)
void IIC_Answer(void)
{
SET_SDA_OUT();
SET_SDA_LOW();
IIC_Delay(2);
SET_SCL_HIGH();
IIC_Delay(2);
SET_SCL_LOW();
}//void IIC_Answer(void)
void IIC_NoAnswer(void)
{
SET_SDA_OUT();
SET_SDA_HIGH();
IIC_Delay(2);
SET_SCL_HIGH();
IIC_Delay(2);
SET_SCL_LOW();
}//void IIC_NoAnswer(void)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -