仿真要求:
(1)用Proteus进行功能仿真,实现闹钟功能。
(2)在OLED上显示日期、时、分、秒等,并能通过按键修改时间。
(3)具有闹钟设定功能,到达设定时间蜂鸣器报警。
实物要求:
(1)通过STM32自带的实时时钟功能获取时间信息;
(2)在OLED显示屏上显示日期、时、分、秒等时间信息;
(3)通过按键可对时间信息进行修改;
(4)具有闹钟设定功能;
(5)加分项:自行增加其他功能。
#include "delay.h"
#include "LCD1602.h"
#include "key.h"
#include "led.h"
#include "ds1302.h"
#include "stdio.h"
#include "stdlib.h"
extern _Bool flag_timer;
int main(void)
{
_Bool Alarm = 0;
unsigned char key_value = 0;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
Lcd1602_Init();
LED_Init();
KEY_Init();
DS1302_Init();
KEY_Init();
while(1)
{
DS1302_ReadTime();
delay_ms(60);
key_value = KEY_Scan(0);
switch(key_value)
{
case 1:
KEY_Set();
break;
case 2:
BEEP = 1;
break;
case 4:
KEY_Set_Alarm();
break;
}
DS1302_Time();
if(Timer_info.hou == Ahour&&Timer_info.min ==Amin )
{
if(Timer_info.sec==0)
{
if(Alarm==0)
{
Alarm = 1;
BEEP = 0;
}
}
}
else
{
if(Alarm==1)
{
Alarm = 0;
BEEP = 1;
}
}
}
}