1
摘要
本设计以 stm32G431RBT6 芯片为核心,AT86C52RC 芯片为辅助,设计一个多
功能实时时钟。本设计通过 stm32 内部的 RTC 芯片实现实时时间的功能,利用四
个按键实现时间或功能的调整,通过串口实现双机通信,时间信息可通过 LCD 与
数码管进行显示,并通过 iic 进行数据储存,LED 与蜂鸣器可在预定时间点进行
铃声提示。软件方面采用 C 语言编程,整个时钟系统能完成时间的显示、修改、
闹钟、秒表和倒计时的功能,通过快速扫描程序与各模块程序,完成所需求的软
件环境。
关键词:实时时钟,RTC,闹钟,秒表,倒计时
2
目录
一、课题背景 ..................................................................................................................................4
二、功能描述 ..................................................................................................................................4
2.1 整体功能 ..........................................................................................................................4
2.2 本设计完成的工作...........................................................................................................5
2.2.1 基本任务................................................................................................................5
2.2.2 扩张任务................................................................................................................6
2.3 具体功能 ..........................................................................................................................6
2.3.1 stm32 部分............................................................................................................6
2.3.2 51 单片机部分......................................................................................................8
三、 总体方案设计 ........................................................................................................................8
3.1 方案提出 ...........................................................................................................................8
3.1.1 数码管显示模块的方案........................................................................................8
3.1.2 秒表、倒计时功能的定时器的方案....................................................................9
3.2 方法论证 ...........................................................................................................................9
3.2.1 数码管显示模块....................................................................................................9
3.2.2 秒表、倒计时功能的定时器................................................................................9
3.3 方案选择 ..........................................................................................................................9
四、 硬件实现及单元电路设计...................................................................................................10
4.1 主控模块 .........................................................................................................................10
4.2 单片机细节介绍..............................................................................................................11
4.3 51 单片机细节介绍........................................................................................................12
4.4 STM32 的软件实现..........................................................................................................13
4.4.1 LED 显示模块......................................................................................................13
4.4.2 LCD 显示模块......................................................................................................13
4.4.3 蜂鸣器模块.........................................................................................................13
4.4.4 按键控制模块.....................................................................................................14
4.4.5 串口发送模块.....................................................................................................14
4.4.6 iic 模块..............................................................................................................14
4.4.7 RTC 实时时钟......................................................................................................15
4.4.8 闹钟、秒表、倒计时与时间设置.....................................................................15
4.5 51 单片机的软件实现....................................................................................................16
4.5.1 数码管显示模块.................................................................................................16
4.5.2 定时器部分.........................................................................................................16
4.5.3 串口接收模块.....................................................................................................16
五、系统软件设计方案.................................................................................................................17
5.1 按键扫描程序框图..........................................................................................................17
5.2 串口发送程序框图.........................................................................................................18
六、总结体会 ................................................................................................................................19
参考文献 ........................................................................................................................................20
附录 1 CubeMX 设置......................................................................................................................21
附录 2 参考代码(main.c) ..............................................................................................................21
3
一、课题背景
随着电子科技的不断发展,传统的时钟已被一些高档的电子时钟所取代,与
传统的时钟相比,电子时钟融合了挂历和时钟的优点,能昼夜清晰显示,集年、
月、日、时、分、秒、星期于一体,外观新颖,造型别县一格。除此之处电于其
历以及一些传统电子表的制作成本相对较高,其销售价格也大多在 15 一 30 元之
间,而一个电子时钟的价格也在这之间,传统电子表无法显示显示年、月、日,
而电子时钟则由于它可以自动识别闰年、大小月份、星期无须调整,在价格相差
不大的情况下,电子时钟的性价比显然要高的多。就其阅读功能而言,电子时钟
阅读起来更加方便,同时他还有闹铃等的功能,这比传统的挂历以及电子表要强
大的多。如今安卓系统的时钟软件就具有闹钟、时钟、秒表和计时功能,其他系
统也自带着不同风格的电子时钟,电子时钟取代传统的挂历以及传统电子表已成
为不可抵挡的趋势。
二、功能描述
2.1 整体功能
本次设计为基于 stm32 的多功能实时时钟,主界面可显示当前的日期、星期
与时间,附加页面下可实现闹钟、秒表、倒计时与更改当前时间的功能(含 2 个
闹钟、2 个秒表、3 个倒计时),通过 iic(EEPROM)进行时间与状态实时保存
且可通过串口通信将当前时间显示在 51 单片机的八位数码管上。系统框图如图
2.1 所示。
4
STM32主控模块
LCD显示
51单片机
串口
IIC(EEPROM)
蜂鸣器模块
LED显示
按键控制
定时器模块
TX RX
数码管显示
定时器模块
图 2.1 系统框图
2.2 本设计完成的工作
2.2.1 基本任务
(1)在 STM32 上设计一个单片机电子时钟,设计的电子时钟时间通过串口
传输至 51 单片机并通过 51 单片机数码管显示;
(2)具有能通过按键实现设置时间的功能;
(3)显示格式为小时十位、小时个位,分十位、分个位,秒十位、秒个位;
(4)闹钟时间设置和报警功能。
5
2.2.2 扩张任务
(1)设计闹钟、秒表、倒计时与时间设置功能;
(2)通过 LCD 显示时钟相关功能;
(3)显示当天日期与星期;
(4)实施保存当前时间与闹钟、秒表、倒计时的状态。
2.3 各模块具体任务
2.3.1 stm32 部分
2.3.1.1 LED 显示
当闹钟时间到达、秒表每运行运行一分钟、倒计时计时结束时,对应 LED 交
替闪烁。
闹钟:闪烁 10 次,对应 LED7-8;
秒表:闪烁 1 次,对应 LED5-6;
倒计时:闪烁 5 次,对应 LED1-4。
2.3.1.2 LCD 显示
颜色设置:黑色背景,白色字体,蓝色设置填充。
主页面:显示当前日期、星期与时间。
闹钟界面:显示设定时间与当前状态,系统预留 2 个存储位置用于存储常用
的时间。当设置闹钟时,当前状态为 Setting,当闹钟启用时,当前状态为 On,
当闹钟禁用时,当前状态为 Off。
秒表界面:显示秒表运行时间与当前状态,系统预留 2 个存储位置用于存储
常用的时间。当秒表运行时,当前状态为 Running,当秒表暂停时,当前状态为
Pause,当秒表停止时,当前状态为 Off。
倒计时界面:显示设定时间或剩余时间与当前状态,系统预留 3 个存储位置
用于存储常用的时间。当设置倒计时时,当前状态为 Setting,当倒计时运行时,
当前状态为 Running,当倒计时暂停时,当前状态为 Pause,当倒计时停止时,
当前状态为 Standby。
更 改 时 间 界 面 : 显 示 设 定 时 间 , 当 保 存 时 间 时 , 显 示 ”