1、采用STC15F2K60S2单片机作为主控芯片,12864液晶模块作为显示界面,显示出电子时钟的所有功能参数;
2、使用DS1302时钟芯片准确显示出年月日时分秒星期,并添加备用电池,防止时钟芯片掉电时停止工作;可实现年月日时分秒星期的按键调整,闹钟时间的设定以及闹钟的开关,按键可实现连加、连减功能;
3、人体热感应功能采用HC-SR501模块检测人体的移动,当人移动时液晶屏亮,否液晶屏延时20s后熄灭,延时时间可以通过程序修改;
4、采用DS18B20采集温度数据,DHT11采集湿度数据,光敏电阻感应光线变化,PWM调节LCD背光亮度,SYN6288语音合成模块进行整点报时;
#include "config.h"
#include "DS1302.h"
#include "DS18B20.h"
#include "Lcd12864.h"
#include "Time.h"
#include "key.h"
#include "Fonts.h"
#include "DHT11.h"
#include "SYN6288.h"
#include "main.h"
#include "SoundPlay.h"
#include "UART.h"
#include "ADC.h"
#include "PWM.h"
bit flag200ms = 0;
bit flag1s = 0;
bit flag2s = 0;
bit flag4s = 0;
bit FlagNormal = 1;
bit flagSR = 1;
void Timer0Init(void);
void LcdAuto();
void RefreshTemp();
void Delay2000ms(); //@11.0592MHz
void logoflag();
void main()
{
uint8 cnt = 0;
InitADC();
IE |= 0x20; //使能ADC中断
PWM_Init();
UartIni();
InitLcd12864();
Start18B20();
SYN_FrameInfo(0,"欢迎使用多功能时钟");
LcdShowImage(0,16,128,32, hhstu); //黄河科技学院
Delay2000ms();
LcdClearArea(0,0,128,64); //液晶清屏
LcdShowString(0, 0, "基于51单片机的多");
LcdShowString(0, 16, "功能时钟设计");
LcdShowString(0, 32, "导师:");
LcdShowString(0, 48, "学生:");
Delay2000ms();
//液晶清屏
LcdShowString(0, 0, " ");
LcdShowString(0, 16, " ");
LcdShowString(0, 32, " ");
LcdShowString(0, 48, " ");
LcdClearArea(0,0,128,64); //液晶清屏
InitDS1302();