这是主程序代码
#include "main.h"
#include "delay.h"
#include "BH1750.h"
#include "lcd1602.h"
#include <REG52.H>
#include "DS1302.h"
#include "LCDC1602.h"
/********************* 宏定义 *******************/
#define RUN_CNT_MAX 2
#define MENU_NUM_LIMIT 3
/********************* 引脚定义 *******************/
/********************* 变量定义 *******************/
uchar menu = 0;
uint Light = 0;
/********************* 函数声明 *******************/
//显示界面 每个菜单的结构
void Dis_menu();
//显示 数据
void Dis_Dat();
//获取数据
void Get_Dat();
#include <REG52.h>
// 定义类型别名
typedef unsigned char u8; // 0 到 255
typedef unsigned int u16; // 0 到 65535
void Delay20ms(void) //@11.0592MHz
{
unsigned char data i, j;
i = 36;
j = 217;
do
{
while (--j);
} while (--i);
}
// 定义按键和 LED 引脚
sbit K1 = P3^0; // 按键 1 连接到 P3.2
bit mode = 0;
void main()
{
while(1) // 主循环
{
if(K1==0)
{
DelayMs(20);
if(K1==0)
{
mode = ~mode;
while(K1==0);
}
}
if(mode==0)
{
LCD_Init1();
DS1302_Init();
LCD_ShowString(1,1," - - ");//静态字符初始化显示
LCD_ShowString(2,1," : : ");
DS1302_SetTime();//设置时间
{
DS1302_ReadTime();//读取时间
LCD_ShowNum(1,1,DS1302_Time[0],2);//显示年
LCD_ShowNum(1,4,DS1302_Time[1],2);//显示月
LCD_ShowNum(1,7,DS1302_Time[2],2);//显示日
LCD_ShowNum(2,1,DS1302_Time[3],2);//显示时
LCD_ShowNum(2,4,DS1302_Time[4],2);//显示分
LCD_ShowNum(2,7,DS1302_Time[5],2);//显示秒
}
}
else
{
DelayMs(100);//等待系统稳定
LCD_Init();
Dis_menu();
Init_Bh1750();
{
Get_Dat();
} //万年历
}
}
}
//获取数据
void Get_Dat()
{
static uint Run_Get_Cnt = RUN_CNT_MAX;
if(Run_Get_Cnt++ > RUN_CNT_MAX)
{
Run_Get_Cnt = 0;
Light = Get_Bh1750();
Dis_Dat();
}
}
//显示 数据
void Dis_Dat()
{
if(menu == 0)
{
LCD_Write_Number(6,0,Light,5);
}
}
//显示界面 每个菜单的结构
void Dis_menu()
{
LCD_Clear();
if(menu == 0)
{
LCD_Write_String(0,0,"Light: Lx");
}
else if(menu == 1)
{
}
Dis_Dat();
}
|