这是我的主函数,帮我看看吧,非常感谢
- #include <reg52.h>
- #include <intrins.h>
- #include <math.h>
- #include <stdio.h>
- #include "GGYY.H"
- #include "lcdd.h"
- #define uint unsigned int
- #define uchar unsigned char
- typedef unsigned char BYTE;
- typedef unsigned short WORD;
- BYTE BUF[8];
- uchar code ge,shi,bai,qian;
- int dis_data;
- void Single_Write_BH1750(uchar REG_Address);
- void delay_nms(unsigned int k);
- void Init_BH1750(void);
- void Multiple_Read_BH1750();
- void conversion(uint temp_data);
- void LCD_disp_char(uchar x,uchar y,uchar dat);//??????????????,X(0-15),y(1-2)
- void LCD_disp_str(uchar x,uchar y,uchar *str);
- void LCD_init(void);
- //毫秒延时**************************
- void delay_nms(unsigned int k)
- {
- unsigned int i,j;
- for(i=0;i<k;i++)
- {
- for(j=0;j<121;j++)
- {;}}
- }
- /**************************************
- 延时5微秒(STC90C52RC@12M)
- 不同的工作环境,需要调整此函数,注意时钟过快时需要修改
- 当改用1T的MCU时,请调整此延时函数
- **************************************/
- void Delay5us()
- {
- _nop_();_nop_();_nop_();_nop_();
- _nop_();_nop_();_nop_();_nop_();
- _nop_();_nop_();_nop_();_nop_();
- _nop_();_nop_();_nop_();_nop_();
- }
- /**************************************
- 延时5毫秒(STC90C52RC@12M)
- 不同的工作环境,需要调整此函数
- 当改用1T的MCU时,请调整此延时函数
- **************************************/
- void Delay5ms()
- {
- WORD n = 560;
- while (n--);
- }
-
- void main()
- {
- float temp;
- delay_nms(100); //延时100ms
- LCD_init(); //初始化LCD
- Init_BH1750(); //初始化BH1750
-
-
- Delay5ms();
- while(1) //循环
- {
- Single_Write_BH1750(0x01); // power on
- Single_Write_BH1750(0x10); // H- resolution mode
- delay_nms(180); //延时180ms
- Multiple_Read_BH1750(); //连续读出数据,存储在BUF中
- dis_data=BUF[0];
- dis_data=(dis_data<<8)+BUF[1];//合成数据,即光照数据
-
- temp=(float)dis_data/1.2;
- conversion(temp); //计算数据和显示
-
-
- LCD_disp_str(9,0,"L:");
-
- LCD_disp_char(11,0,qian); //显示数据
- LCD_disp_char(12,0,bai);
- LCD_disp_char(13,0,shi);
- LCD_disp_char(14,0,ge);
- LCD_disp_str(15,0,"l"); ////显示数单位
-
-
-
- }
-
- }
复制代码 |