蓝桥杯单片机实现手机时钟

在备战蓝桥杯单片机设计与开发项目时,许多同学在学习完按键、数码管、蜂鸣器、定时器、AT24C02、DS1302等模块后,可能会感到缺乏一个综合项目来进行实际练习。本文想与大家分享我在备战过程中获得的灵感:复刻一款实际手机软件时钟的所有功能。这个项目不仅有效练习了上述模块的灵活运用,还激发了我对单片机学习的兴趣。希望通过这个分享,能够为大家提供一个有趣且实用的练习机会。(末尾附带视频演示)

1 整体功能介绍

本项目实现了时间、日期和星期的动态显示,以及秒表闹钟设置与开关和计时器功能。左下角配备了一个矩阵键盘,按键排列为从左到右、从下到上,编号为1至16。当数码管全灭时,表示系统处于主菜单状态:

包含七个主要模块:时钟模块、秒表模块、闹钟设置模块、闹钟启用/禁用模块、计时器设置模块、计时显示模块,以及计时器关闭模块。

2 时钟模块

单片机上电后,默认进入时钟模块,显示当前北京时间(时分秒)、日期和星期。按下2键可查看显示时间

按3键可查看日期(年月日):

按4键可显示星期(其中001表示星期一):

按1键可退出时钟模块,返回主菜单,再次按下1键进入时钟模块。

3 秒表模块

在主菜单下,按下2键进入秒表模块,首次进入时默认显示00-00-00:

按5键启动秒表,再次按5键可停止秒表。按6键将秒表归零,按7键记录当前秒表数值(在秒表运行时,按键7也能记录当前数值)。按键8可显示记录的数值,即使在断电后重新插电,按键8依然能显示断电前的记录(掉电不丢失)。按键2可返回主菜单。

4 闹钟设置模块

在主菜单下,按下3键进入闹钟设置模块。进入该模块时,默认显示上次保存的闹钟数值(该数据掉电不丢失):

按5键可将分钟加1,按6键可将分钟减1;按7键将小时加1,按8键将小时减1。按9键保存当前闹钟数值,按10键读取已保存的闹钟数值。按3键可返回主菜单。

5 闹钟启用/禁用模块

在主菜单下,按下4键进入闹钟启用/禁用模块。数码管显示当前状态:0表示关闭闹钟,1表示开启闹钟:

插电后,默认状态为关闭闹钟。按1键可开启闹钟,再次按1键则关闭闹钟,状态将依次循环(上电后,闹钟默认设置为上次保存的时钟数值)。开启闹钟后,用户一般会返回时钟模块查看时间。当时间到达时,闹钟会持续响铃。此时,用户需返回主菜单,按4键,然后按1键关闭闹钟。再次按4键可返回主菜单。

计时器设置模块

在主菜单下,按5键进入计时器设置模块。该模块默认显示上次保存的计时数据(该数据掉电不丢失):

按9键可将小时加1,按10键可将小时减1;按11键可将分钟加1,按12键可将分钟减1;按13键可将秒钟加1,按14键可将秒钟减1。按15键保存当前计时数据,按16键显示保存的数据。按5键可返回主菜单。

计时显示模块

在主菜单下,按6键进入计时显示模块,再次按6键可退出该模块并返回主菜单。在该模块中,1键用于启动/暂停计时器,2键为复位按键,3键用于关闭闹铃。数码管默认显示保存的计时数据。

  1. 按1键启动计时器(在计时器运行期间无法进入计时器设置模块),再次按1键可暂停计时,此时可以进入设置计时器设置模块。如果返回计时显示模块,数码管将显示保存的计时数据。

  2. 按1键启动定时器,再次按1键停止计时器,按2键可复位定时器(在定时器启动期间且未到0时,按2键将重新开始计时)。此时用户仍可进入计时器设置模块。

  3. 当计时器为0且闹铃持续响铃时,可以按1键关闭闹铃,此时可以进入设置计时器数值模块,但定时器数值为0,用户需按复位按键以将定时器数值恢复为保存的计时数据。

  4. 当计时器为0且闹铃持续响铃时,用户也可以按3键关闭闹铃,此时计时器数值将自动恢复为保存的计时数据,用户仍可进入设置计时器数值模块。

在进行上述操作的任何时刻,用户均可返回主菜单并查看除了设置计时器数值模块和启动/关闭闹钟模块以外的其他模块。

计时器关闭模块

在主菜单下,按7键可关闭定时器。该键的功能与显示计时模块中的3键相同,旨在为用户在除显示计时模块和启动/关闭闹钟模块之外的其他模块操作时,提供更快捷的定时器闹铃关闭方式。

9 Bug
  1. 由于时钟芯片未外接备用电源,单片机在掉电后无法维持时间计算。因此,在上电前需在程序中对时钟进行校准。

  2. 由于上述原因,闹钟只能设置为当天的响铃时间,无法指定在未来某一天的特定时间响铃。

10 补充
  1. 当定时器和闹钟同时开启时,若两者互不影响,用户可以随时查看当前时间。在任一计时器或闹钟到达设定时间后,用户只需关闭相应的闹铃即可。

  2. 如果闹钟和定时器同时到达设定时间,闹铃将持续响铃。在这种情况下,用户需要同时关闭闹钟和定时器的闹铃。

视频链接:蓝桥杯单片机实现手机时钟_哔哩哔哩_bilibili

  • 18
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值