YTE dat)Р {Р BYTE i;Р for (i=0; i<8; i++) //8位计数器Р {Р dat <<= 1; //移出数据的最高位 SDA = CY; //送数据口 SCL = 1; //拉高时钟线 Delay5us(); //延时Р SCL = 0; //拉低时钟线 Delay5us(); //延时Р }Р BH1750_RecvACK();Р }Р /**************************************Р 从IIC总线接收一个字节数据Р **************************************/Р BYTE BH1750_RecvByte()Р {Р BYTE i;Р BYTE dat = 0;Р SDA = 1; //使能内部上拉,准备读取数据,Р for (i=0; i<8; i++) //8位计数器Р {Р dat <<= 1;Р SCL = 1; //拉高时钟线Р Delay5us(); //延时Р dat |= SDA; //读数据Р SCL = 0; //拉低时钟线Р Delay5us(); //延时Р }Р return dat;Р }Р //*********************************Р void Single_Write_BH1750(uchar REG_Address)Р {Р BH1750_Start(); //起始信号Р BH1750_SendByte(SlaveAddress); //发送设备地址+写信号Р BH1750_SendByte(REG_Address); //内部寄存器地址,Р // BH1750_SendByte(REG_data); //内部寄存器数据,Р BH1750_Stop(); //发送停止信号Р }