找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4214|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

GY-30光照傳感器,芯片為bh1750,最小值212lx,中文數(shù)據(jù)手冊在附件里,串口顯示

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:247090 發(fā)表于 2018-1-9 22:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include  <REG51.H>        
#include  <math.h>    //Keil library  
#include  <stdio.h>   //Keil library        
#include  <INTRINS.H>
#include  <IIC.H>
#define   uchar unsigned char
#define   uint unsigned int        
#define          address   0x46 //定義器件在IIC總線中的從地址,根據(jù)ALT  ADDRESS地址引腳不同修改
                              //ALT  ADDRESS引腳接地時地址為0x46,接電源時地址為0xB8
                                                         
typedef   unsigned char BYTE;                 //聲明新的類型名來代替原有的類型名
typedef   unsigned short WORD;

BYTE    BUF[8];                         //接收數(shù)據(jù)緩存區(qū)              
uchar   ge,shi,bai,qian,wan;            //顯示變量
int     dis_data;                       //變量
int w_data;


void  Multiple_Read_BH1750();                               //連續(xù)的讀取內(nèi)部寄存器數(shù)據(jù)
//------------------------------------
bit  BH1750_RecvACK();                  //讀ack
BYTE BH1750_RecvByte();                 //IIC單個字節(jié)讀

void conversion(uint temp_data)  //  數(shù)據(jù)轉(zhuǎn)換出 個,十,百,千,萬
{  
    wan=temp_data/10000+0x30 ;
    temp_data=temp_data%10000;   //取余運(yùn)算
        qian=temp_data/1000+0x30 ;
    temp_data=temp_data%1000;    //取余運(yùn)算
    bai=temp_data/100+0x30   ;
    temp_data=temp_data%100;     //取余運(yùn)算
    shi=temp_data/10+0x30    ;
    temp_data=temp_data%10;      //取余運(yùn)算
    ge=temp_data+0x30;         
}
//-------------------------------------------------------------------------------------//
//函數(shù):      wr_BH1750_one_data()
//功能:      寫一位bh1750數(shù)據(jù)
//address:   芯片從地址
//saddress:  寫寄存器地址
//w_data:    待寫數(shù)據(jù)
//-------------------------------------------------------------------------------------//
void wr_BH1750_one_data(int saddress)
{
_nop_();
iic_start();
_nop_();
iic_sendbyte(address);
_nop_();
iic_sendbyte(saddress);
_nop_();
iic_sendbyte(w_data);
_nop_();
iic_stop();
_nop_();
}
//-------------------------------------------------------------------------------------//
//函數(shù):      rd_BH1750_one_data()
//功能:      讀一位max30102數(shù)據(jù)
//address:   芯片從地址
//saddress:  讀寄存器地址
//rda:       讀出的數(shù)據(jù)
//-------------------------------------------------------------------------------------//
void rd_BH1750_one_data(void)
{

iic_start();
_nop_();
iic_sendbyte(address+1);
BUF[0] =iic_rcvbyte_nack();          //BUF[0]存儲0x32地址中的數(shù)據(jù)
_nop_();
_nop_();
iic_start();
_nop_();
BUF[1] =iic_rcvbyte_nack();
_nop_();
_nop_();
iic_stop();


}



void uart_putchar(unsigned char dat)
{
        SBUF=dat; //把數(shù)據(jù)送給sbuf緩存器中
        while(TI!=1);//發(fā)送標(biāo)志位 TI如果發(fā)送了為1,沒發(fā)送為0,沒發(fā)送等待,到了退出循環(huán)
        TI=0; //到了,TI清為0

        
}
void uart_printf(unsigned char *buff)
{

         while(*buff)
uart_putchar(*buff++);
}

//-------------------------------------------------------------------------------------//
//函數(shù):      主程序
//功能:   
//-------------------------------------------------------------------------------------//
main()
{
float temp;
   unsigned char str[5];
TMOD=0x21;                  
SCON=0x50;
TH1=0xFD;
TL1=0xFD;
TR1=1;                           
TI=1;   
//設(shè)置51的波特率為 9600 N 8 1
//51主頻為11.0592MHz
wr_BH1750_one_data(0x01);
while(1)
{  

wr_BH1750_one_data(0x01);   // power on
wr_BH1750_one_data(0x10);   // H- resolution mode   連續(xù)H分辨率模式        在1lx分辨率下開始測量。  測量時間一般為120ms。
delayms(180);      
rd_BH1750_one_data();




        dis_data=BUF[0];
    dis_data=(dis_data<<8)+BUF[1];//合成數(shù)據(jù),即光照數(shù)據(jù)

    temp=(float)dis_data/1.2;

    conversion(temp);         //計算數(shù)據(jù)和顯示

        str[0]=wan;
        str[1]=qian;
        str[2]=bai;
        str[3]=shi;
        str[4]=ge;
        uart_printf("light:");
        uart_printf(str);
        uart_printf(" lx");
        delayms(200);
        uart_printf("\r\n");
        delayms(100);
}
}


GY-30光照傳感器.rar

1004.25 KB, 下載次數(shù): 53, 下載積分: 黑幣 -5

中文數(shù)據(jù)手冊加全程序

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表