####################################################3
#####################################################
GY-30頭文件
復(fù)制代碼
- #ifndef _GY30_H
- #define _GY30_H
- #include <reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit SCL=P1^0; //IIC時鐘引腳定義
- sbit SDA=P1^1; //IIC數(shù)據(jù)引腳定義
- void delay_nms(unsigned int k);
- void Init_BH1750(void);
- void conversion(uint temp_data);
- void Single_Write_BH1750(uchar REG_Address); //單個寫入數(shù)據(jù)
- uchar Single_Read_BH1750(uchar REG_Address); //單個讀取內(nèi)部寄存器數(shù)據(jù)
- void Multiple_Read_BH1750(); //連續(xù)的讀取內(nèi)部寄存器數(shù)據(jù)
- //------------------------------------
- void Delay5us();
- void Delay5ms();
- void BH1750_Start(); //起始信號
- void BH1750_Stop(); //停止信號
- void BH1750_SendACK(bit ack); //應(yīng)答ACK
- bit BH1750_RecvACK(); //讀ack
- void BH1750_SendByte(uchar dat); //IIC單個字節(jié)寫
- uchar BH1750_RecvByte(); //IIC單個字節(jié)讀
- #endif
########################################################################################################3#####################################################
液晶屏1602部分
液晶屏頭文件復(fù)制代碼
- #include <reg52.h>
- #include <intrins.h>
- #include <math.h>
- #include <stdio.h>
- #include "lcdd.h"
- #define uchar unsigned char
- #define uint unsigned int
- #define LCD_DB P0 //數(shù)據(jù)口
- void delay_n10us(uint n) //延時
- {
- uint i;
- for(i=n;i>0;i--)
- {
- nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
- }
- }
- /*void WaitForEnable(void)
- {
- LCD_DB=0xff;
- LCD_RS=0;LCD_RW=1;_nop_();
- LCD_E=1;_nop_();_nop_();
- while(LCD_DB&0x80);
- LCD_E=0;
- }*/
- void LCD_init(void)
- {
- delay_n10us(10);
- LCD_write_command(0x38);//??8???,2?,5x7
- delay_n10us(10); LCD_write_command(0x0c);//???,???,???
- delay_n10us(10); LCD_write_command(0x06);//??????,?????
- delay_n10us(10); LCD_write_command(0x01);//??????
- delay_n10us(100); //????,????,???n?10us
- }
- void LCD_write_command(uchar dat)
- {
- delay_n10us(10);
- LCD_RS=0; //??
- LCD_RW=0; //??
- LCD_E=1; //??
- LCD_DB=dat; delay_n10us(10); //????,??LCD1602?,?for??1???????????
- LCD_E=0; delay_n10us(10); //????,??LCD1602?,?for??1???????????
- }
- void LCD_write_data(uchar dat)
- {
- delay_n10us(10);
- LCD_RS=1; //??
- LCD_RW=0; //??
- LCD_E=1; //??
- LCD_DB=dat; delay_n10us(10);
- LCD_E=0; delay_n10us(10);
- }
- void LCD_disp_char(uchar x,uchar y,uchar dat)
- {
- uchar address;
- if(y==0)
- address=0x80+x;
- else
- address=0xc0+x;
- LCD_write_command(address);
- LCD_write_data(dat);
- }
- void LCD_disp_str(uchar x,uchar y,uchar *str)
- {
- uchar address;
- if(y==0)
- address=0x80+x;
- else
- address=0xc0+x;
- LCD_write_command(address);
- while(*str!='\0')
- {
- LCD_write_data(*str);
- str++;
- }
- }
復(fù)制代碼
- #ifndef _LCDD_H
- #define _LCDD_H
- #include <reg52.h>
- #define LCD_DB P0
- #define uchar unsigned char
- sbit LCD_RS=P2^7;
- sbit LCD_RW=P2^6;
- sbit LCD_E=P2^5;
- void LCD_init(void); //?????
- void LCD_write_command(uchar command); //?????
- void LCD_write_data(uchar dat); //?????
- 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); //LCD1602???????
- #endif
IMG_20180610_090425.jpg (4.85 MB, 下載次數(shù): 26)
zhanghyg 發(fā)表于 2018-6-11 08:42
你的主程序呢?BH1750讀出來的數(shù)據(jù)要先處理一下才能顯示。
zhanghyg 發(fā)表于 2018-6-11 08:42
你的主程序呢?BH1750讀出來的數(shù)據(jù)要先處理一下才能顯示。
roc2 發(fā)表于 2018-6-11 16:07
第一可以用串口或其他方式看看bh1750測得的數(shù)據(jù)是不是對的,第二液晶顯示一個特定的數(shù)字看看是不是對的,如 ...
歡迎光臨 (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |