這是主程序代碼
#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();
}
|