📄 i2c_c_code for c8051.c
字号:
/************************I2C***************************************************/
sbit SCL=P3^4;
sbit SDA=P3^5;
void i2c_delay(void)
{
unsigned char j;
j=1;
}
void I_start(void)
{
SCL=HIGH;
i2c_delay();
SDA=LOW;
i2c_delay();
SCL=LOW;
i2c_delay();
}
void I_stop(void)
{
SDA=LOW;
i2c_delay();
SCL=HIGH;
i2c_delay();
SDA=HIGH;
i2c_delay();
// SCL=LOW;
// i2c_delay();
}
bit I_clock(void)
{
bit sample;
SCL=HIGH;
i2c_delay();
sample=SDA;
SCL=LOW;
i2c_delay();
return(sample);
}
bit I_send(unsigned char I_data)
{
register unsigned char i;
for(i=0;i<8;i++)
{ SDA=(bit)(I_data&0x80);
I_data=I_data<<1;
I_clock();
}
SDA=HIGH;
return(~I_clock());
}
unsigned char I_receive(void)
{
unsigned char I_data=0;
register unsigned char i;
for(i=0;i<8;i++)
{
I_data*=2;
if(I_clock()) I_data++;
}
return(I_data);
}
void I_ack(void)
{
SDA=LOW;
I_clock();
SDA=HIGH;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -