序言

定时模块旨在让使用者自定义倒计时时间并实时显示当前倒计时状态,该模块由定时操作和显示两个部分组成。

定时操作部分

定时操作部分由三个个轻触按键和两个个纽子开关组成,编号分别为 SW 、 + 、 - 、 ST、TBTN ,分别为切换清零键、增加键、减少键、状态键。其中,前三个按键有两种模式:轻点模式、长按模式; ST 按键仅有轻点模式。

image轻触按键图

硬件连接

硬件原理图如下图所示(Altium Designer 绘制):

image定时操作部分原理图 缺少该部分的连接说明

代码开发

此部分按键,拟采用按键扫描方式来动态检测当前按键状态,并实时作出相应操作,可能会以定时器中断方式来实现,具体要看定时器的优先级判定是否符合预期的时间误差。

该部分代码如下所示:

1
//缺少此部分代码

显示部分

显示部分也拟采用一个四位数码管显示,不同的是会带有 “:” 秒钟显示,前两位代表小时数,后两位代表分钟数。根据当前的按键操作或倒计时时间来实时显示。具体的现实以及操作逻辑如下所示。

操作逻辑及显示说明:

  • 上电后定时显示初始化为 00:00, 系统初始化计时时间为 0 ,显示在上电 2s 后关闭。
  • TBTN 为显示和计时总开关,只有当 TBTN 闭合时,定时操作显示部分才会运行,以下所有操作的前提是 TBTN 闭合。
  • 轻点切换键(SW),第一次为分钟位闪烁,再点即为小时位闪烁,此后再点即循环切换闪烁。
  • 长按切换键(SW) 2s 后将清零显示和计时。
  • 10s 后未操作则停止闪烁,并保存当前计时时间,若要调节计时时间,请重新轻点切换键(SW)。
  • 在定时显示闪烁时轻点增加键(+)和减少键(-)可以增加或减少当前位的计数值。
  • 设置计时时间完成后,可直接轻点状态键(ST)开始计时(也可在闪烁停止时轻点该键开始计时)。
  • 在计时运行期间,秒位开始闪烁。
  • 在计时运行期间,SW 、 + 、 - 三个按键轻点模式和长按模式均失效。
  • 在计时运行期间,轻点状态键即可暂停当前计时。
  • 在计时暂停期间,分钟、小时、秒位同时缓慢闪烁以代表当前计时处于暂停状态。
  • 在计时暂停期间,SW 、 + 、 - 的按键轻点模式恢复正常。
  • 在计时暂停期间,再次轻点状态键(ST)即可继续运行当前计时。
  • 在计时暂停期间,长按切换键(SW) 2s 后将清零显示和计时,同时结束显示闪烁。
待添加的功能:
  • 在计时运行期间,同时按住 + 、 - 按键 2s 以上将锁定当前所有按键(即四个按键的功能全部失效),直到计时结束,或者再次同时按住 + 、 - 按键 2s 以上方可解锁。

硬件连接

硬件原理图如下图所示(Altium Designer 绘制):

image定时显示部分原理图 缺少该部分的连接说明

代码开发

与功率现实部分基本相似(多了一个“:”),动态显示模式,节省核心工作资源。代码与定时操作部分代码联动。

该部分代码如下所示:

1
//缺少此部分代码

此间车厢已使用  次 |   人乘坐过此趟开往世界尽头的列车