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

📄 i2c_c_code for c8051.c

📁 基于C8051的I2C设计
💻 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 + -