GY 您所在的位置:网站首页 h110mk接线图 GY

GY

2024-06-02 07:07| 来源: 网络整理| 查看: 265

GY-30数字光强度模块BH1750FVI资料。压缩包内含数据手册、接线图(原理图)、STC89c52用Lcd1602显示光照度数据的例子程序、还有avr的例子程序。资料是网上找到的,这段时间在用这个模块,用的89c52,资料没有问题,lcd1602显示模块采集的光照度。 GY-30数字光强度模块BH1750FVI:

下面是stc89c52中的接线图

avr中的接线图:

代码甩上:

//*************************************** // BH1750FVI IIC测试程序 // 使用单片机STC89C51 // 晶振:11.0592M // 显示:LCD1602 // 编译环境 Keil uVision2 // 参考宏晶网站24c04通信程序 //**************************************** #include #include //Keil library #include //Keil library #include #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 Single_Read_BH1750(uchar REG_Address); //单个读取内部寄存器数据 void Multiple_Read_BH1750(); //连续的读取内部寄存器数据 //------------------------------------ void Delay5us(); void Delay5ms(); void BH1750_Start(); //起始信号 void BH1750_Stop(); //停止信号 void BH1750_SendACK(bit ack); //应答ACK bit BH1750_RecvACK(); //读ack void BH1750_SendByte(BYTE dat); //IIC单个字节写 BYTE BH1750_RecvByte(); //IIC单个字节读 //----------------------------------- //********************************************************* void conversion(uint temp_data) // 数据转换出 个,十,百,千,万 { wan=temp_data/10000+0x30 ; temp_data=temp_data%10000; //取余运算 qian=temp_data/1000+0x30 ; temp_data=temp_data%1000; //取余运算 bai=temp_data/100+0x30 ; temp_data=temp_data%100; //取余运算 shi=temp_data/10+0x30 ; temp_data=temp_data%10; //取余运算 ge=temp_data+0x30; } //毫秒延时************************** void delay_nms(unsigned int k) { unsigned int i,j; for(i=0;i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有