功能介绍:
0.本系统采用STC89C52作为单片机
1.LCD1602液晶实时显示当前时间/工作模式/灯光亮度
2.具备闹钟功能,到达闹钟时间,蜂鸣器报警
3.自动模式下,有人灯亮,人离开后15s,灯光熄灭,并且可根据环境光亮度,自动调整灯光亮度
4.手动模式下,可手动调试灯光亮度
5.可通过蓝牙发送命令分别控制台灯状态
发送命令格式:*Ax#,x表示灯光等级,1~3有效,C表示关闭
*MM# 切换为手动模式 *MA#切换为自动模式
6.可通过按键更改当前时间/工作模式/闹钟开关/闹钟时间
7.采用DC002作为电源接口可直接输入5V给整个系统供电
原理图:

PCB:

主程序:
#define __MAIN_C
#include
#include "main.h"
bit dispFlag = 1;
bit setFlag = 0;
unsigned char setIndex = 0;
unsigned char lightValue;
unsigned char timeLimit[2] = {
22, 11};
char dispMode = NORMAL;
bit autoFlag = 0;
bit lampASwitch = 0;
unsigned char lampAPWM = 0;
int cnt = 0;
unsigned int time500us = 0;
unsigned char i = 0;
unsigned char R_buf[4];
unsigned char timeDelay = 0;
unsigned char alarmDelay = 0;
bit alarmSwitch = 0;
void main()
{
//初始化
lampASwitch = LAMP_OFF;
Timer0_Init();
UART0_Init();
LCD_Init();
DS1302_Init();
DelayMs(20);
//开机显示
LCD_DispStr(0, 0, " Welcome! ");
DelayS(2);
LCD_Clear();
while(1)
{
// LCD1602液晶显示
if (dispFlag == 1 && setFlag == 0)
{
dispFlag = 0;
Alarm