基于STM32的电子时钟设计
1、设计目的
(1)掌握使用KEIL MDK5进行软件开发的具体流程;
(2)掌握硬件电路的设计方法;
(3)掌握STM32微控制器的程序设计及代码编写方法。
2、设计具体要求
(1)通过STM32自带的实时时钟功能获取时间信息;
(2)在OLED显示屏上显示日期、时、分、秒等时间信息;
(3)通过按键可对时间信息进行修改;
(4)具有闹钟设定功能;
(5)加分项:自行增加其他功能。
3、proteus仿真图
4、程序代码
# include "key.h"
# include "sys.h"
# include "timer.h"
# include "digitaltube.h"
# include "exti.h"
# include "led.h"
int flag1 = 0;
int count_l = 0;
int count_h = 0;
extern int temp;
void Init (void);
void Mod_Time_Check (void);
// 主函数
int main(void)
{
Init ();
while (1)
{
Mod_Time_Check ();
DigitalTube_DispData_H (count_h);
DigitalTube_DispData_L (count_l);
}
}
// 初始化函数
void Init ()
{
NVIC_PriorityGroupConfig (NVIC_PriorityGroup_2);
TIM3_Int_Init(10, 884); // 根据proteus环境而设置的1ms定时
DigitalTube_Init ();
LED_Init ();
EXTIX_Init ();
KEY_Init ();
}
// 设置时间函数
void Mod_Time_Check ()
{
if (flag1 == 1)
{
int i;
TIM_Cmd(TIM3, DISABLE);
DISP_ZERO ();
for (i = 0; i < 8; i++)
{
Set_Time ();
GPIO_Write (GPIOA, 0x00);
DISP_Bit (temp, i);
}
TIM_Cmd(TIM3, ENABLE);
flag1 = 0;
LED0 = 1;
}
}
下载地址:成品下载