GY-30数字光强度模块BH1750FVI资料。压缩包内含数据手册、接线图(原理图)、STC89c52用Lcd1602显示光照度数据的例子程序、还有avr的例子程序。资料是网上找到的,这段时间在用这个模块,用的89c52,资料没有问题,lcd1602显示模块采集的光照度。
GY-30数字光强度模块BH1750FVI:
下面是stc89c52中的接线图
avr中的接线图:
代码甩上:
//***************************************
// BH1750FVI IIC测试程序
// 使用单片机STC89C51
// 晶振:11.0592M
// 显示:LCD1602
// 编译环境 Keil uVision2
// 参考宏晶网站24c04通信程序
//****************************************
#include <REG51.H>
#include <math.h> //Keil library
#include <stdio.h> //Keil library
#include <INTRINS.H>
#define uchar unsigned char
#define uint unsigned int
#define DataPort P0 //LCD1602数据端口
sbit SCL=P1^0; //IIC时钟引脚定义
sbit SDA=P1^1; //IIC数据引脚定义
sbit LCM_RS=P2^6; //LCD1602命令端口
sbit LCM_RW=P2^5; //LCD1602命令端口
sbit LCM_EN=P2^7; //LCD1602命令端口
#define SlaveAddress 0x46 //定义器件在IIC总线中的从地址,根据ALT ADDRESS地址引脚不同修改
//ALT ADDRESS引脚接地时地址为0xA6,接电源时地址为0x3A
typedef unsigned char BYTE;
typedef unsigned short WORD;
BYTE BUF[8]; //接收数据缓存区
uchar ge,shi,bai,qian,wan; //显示变量
int dis_data; //变量
void delay_nms(unsigned int k);
void InitLcd();
void Init_BH1750(void);
void WriteDataLCM(uchar dataW);
void WriteCommandLCM(uchar CMD,uchar Attribc);
void DisplayOneChar(uchar X,uchar Y,uchar DData);
void conversion(uint temp_data);
void Single_Write_BH1750(uchar REG_Address); //单个写入数据
uchar S