资源简介
TSL2561光强传感器是采用I2C的通讯方式,可利用单片机的IO口模拟
SDA,SCL读出内部寄存器的光强数据。这种数字芯片可在工农业生产中
得到广泛的应用。
代码片段和文件信息
#include
//TSL2561地址
#define uchar unsigned char
#define uint unsigned int
//设备读写地址
#define SLAVE_ADDR_WR 0x72
#define SLAVE_ADDR_RD 0x73
//命令控制寄存器
#define CONTROL 0x80 //控制寄存器
#define TIMING 0x81 //时间寄存器
#define DATA0LOW 0x8C //通道0低字节寄存器
#define DATA0HIGH 0x8D //通道0高字节寄存器
#define DATA1LOW 0x8E //通道1低字节寄存器
#define DATA1HIGH 0x8F //通道1高字节寄存器
uchar DataLow0DataHigh0DataLow1DataHigh1commadChannel0Channel1temp;
sbit sda = P2^0;
sbit scl = P2^1;
void delay()
{;;;}
void delay1ms(uchar x)
{
uchar ab;
for(a=x;a>0;a--)
for(b=100;b>0;b--);
}
void start()
{
sda=1;
delay();
scl=1;
delay();
sda=0;
delay();
}
void stop()
{
sda=0;
delay();
scl=1;
delay();
sda=1;
delay();
}
void respons()
{
uchar i;
scl=1;
delay();
while((sda==1)&&(i<250))
i++;
scl=0;
delay();
}
void write_byte(unsigned char date)
{
uchar i;
for(i=0;i<8;i++)
{
scl=0;
date<<=1;
sda=CY;
delay();
scl=1;
delay();
}
scl=0;
delay();
sda=1; //释放资源
delay();
}
uchar read_byte()
{
uchar ik;
scl=0;
delay();
sda=1; //释放资源
delay();
for(i=0;i<8;i++)
{
scl=1;
delay();
k=(k<<1)|sda;
scl=0;
delay();
}
return k;
}
void TSL2561_Write(uchar command
评论
共有 条评论