這是我的主函數,幫我看看吧,非常感謝
- #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"); ////顯示數單位
-
-
-
- }
-
- }
復制代碼 |