我是靠谱客的博主 感动哈密瓜,最近开发中收集的这篇文章主要介绍基于51单片机驱动BH1750采集光强度 LCD1602显示一、基本参数二、接线三、部分代码四、实验现象五、注意事项,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
基于51单片机驱动BH1750采集光强度 LCD1602显示
- 一、基本参数
- 二、接线
- 三、部分代码
- 引脚定义
- IIC通信
- 地址
- IIC 时序对用代码
- 四、实验现象
- 五、注意事项
一、基本参数
供电电源 :3-5v
光照度范围:0-65535 lx
传感器内置16bitAD转换器
直接数字输出,省略复杂的计算,省略标定
不区分环境光源
接近于视觉灵敏度的分光特性
可对广泛的亮度进行1勒克斯的高精度测定
二、接线
BH1750模块 | STC89C52RC |
---|---|
VCC | 5V |
GND | GND |
SCL | P1.0 |
SDA | P1.1 |
ADDR | ADDRESS引脚接地时地址为0x46,接电源时地址为0xB8 此处悬空 默认0x46 |
三、部分代码
引脚定义
sbit SCL=P1^0; //IIC时钟引脚定义
sbit SDA=P1^1; //IIC数据引脚定义
IIC通信
地址
#define SlaveAddress 0x46
IIC 时序对用代码
/**************************************
起始信号
**************************************/
void BH1750_Start()
{
SDA = 1; //拉高数据线
SCL = 1; //拉高时钟线
Delay5us(); //延时
SDA = 0; //产生下降沿
Delay5us(); //延时
SCL = 0; //拉低时钟线
}
/**************************************
停止信号
**************************************/
void BH1750_Stop()
{
SDA = 0; //拉低数据线
SCL = 1; //拉高时钟线
Delay5us(); //延时
SDA = 1; //产生上升沿
Delay5us(); //延时
}
/**************************************
发送应答信号
入口参数:ack (0:ACK 1:NAK)
**************************************/
void BH1750_SendACK(bit ack)
{
SDA = ack; //写应答信号
SCL = 1; //拉高时钟线
Delay5us(); //延时
SCL = 0; //拉低时钟线
Delay5us(); //延时
}
/**************************************
接收应答信号
**************************************/
bit BH1750_RecvACK()
{
SCL = 1; //拉高时钟线
Delay5us(); //延时
CY = SDA; //读应答信号
SCL = 0; //拉低时钟线
Delay5us(); //延时
return CY;
}
/**************************************
向IIC总线发送一个字节数据
**************************************/
void BH1750_SendByte(BYTE 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;
}
四、实验现象
五、注意事项
1、VCC GND切勿接反 接反易烧
2、ADDRESS引脚接地时地址为0x46,接电源时地址为0xB8
最后
以上就是感动哈密瓜为你收集整理的基于51单片机驱动BH1750采集光强度 LCD1602显示一、基本参数二、接线三、部分代码四、实验现象五、注意事项的全部内容,希望文章能够帮你解决基于51单片机驱动BH1750采集光强度 LCD1602显示一、基本参数二、接线三、部分代码四、实验现象五、注意事项所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复