📄 i2c.c
字号:
/* YuanGao electronic designe co.ldt
(c) Copyright 2000,2001, All Rights Reserved */
#include "global.h"
#include "util.h"
#include "i2c.h"
void I2C_Init(void)
{
I2C_SCL = 1;
I2C_SDA = 1;
i2c_delay();
I2C_SCL = 0;
I2C_SDA = 0;
I2C_SDA = 0;
I2C_SCL = 1;
I2C_SDA = 1;
i2c_delay();
i2c_delay();
I2C_SCL = 0;
I2C_SDA = 0;
i2c_delay();
I2C_SDA = 0;
I2C_SCL = 1;
I2C_SDA = 1;
}
bit I2C_Clock(void)
{
bit bdata sample;
I2C_SCL = 1;
i2c_delay();
sample = I2C_SDA;
I2C_SCL = 0;
return(sample);
}
void I2C_Start(void)
{
I2C_SCL = 1;
I2C_SDA = 1;
I2C_SDA = 0;
i2c_delay();
I2C_SCL = 0;
i2c_delay();
}
void I2C_Stop(void)
{
I2C_SDA = 0;
i2c_delay();
I2C_SCL = 1;
i2c_delay();
I2C_SDA = 1;
}
bit I2C_Send(unsigned char I2C_Data)
{
unsigned char i;
/*send 8 bits data*/
for(i = 0;i<8;i++){
I2C_SDA =(bit)(I2C_Data & 0x80);
I2C_Data = I2C_Data << 1;
I2C_Clock();
}
/*ask ack:*/
I2C_SDA = 1;
return(~I2C_Clock());
}
void write_i2c(unsigned char I2C_ADDR,unsigned char I2C_DATA)
{
I2C_Start();
I2C_Send(I2C_ADDR);
I2C_Send(I2C_DATA);
I2C_Stop();
}
void i2c_delay(void)
{
char i;
for(i=0;i<2;i++);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -