可调数字钟设计(拓展)
AI summary
可调数字钟设计要求包括使用三个按键进行时间切换和校准,具有启停、提醒和闹钟功能。设计过程涉及逻辑控制、闪烁功能和小时/分钟的逻辑控制实现,采用蜂鸣器实现提醒功能。任务分配明确了各部分的责任,包括逻辑控制、闪烁逻辑和整体测试。
Last edited time
Sep 24, 2024 02:58 PM
Last edited by
Tags
Digital Clock Design
Logic Control Implementation
Alarm Functionality
一:设计要求
本设计在简易数字钟基础之上,完成下述功能要求:
- 采用3个按键对数字钟进行切换和校准(第一个按键进行切换:对小时和分钟进行切换,秒不做调节;第二个按键和第三个按键对切换到小时/分钟进行调节,第二个按键对其加控制,第三个按键对其减控制)。
- 切换按键按下第一次切换到小时,按下第二次切换到分钟,由于秒不进行调节,所以按下第三次切换按键,正常显示。
- 切换时,如果切换到小时,小时进行闪烁;
- 切换时,如果切换到分钟,分钟进行闪烁;
- 启停功能
- 提醒功能(按键按下提醒,蜂鸣器响0.1s)
- 设置闹钟/整点报时
…
二:设计过程

三:设计分析
- 数字钟校准原则:先进行切换,切换到小时,才可以对其加减,且小时进行闪烁;再次切换,切换到分钟,也可以对其加减,且分钟进行闪烁;再次切换,正常显示。
- 第一部分设计架构:整体设计

- 第二部分设计架构:逻辑控制部分

上述逻辑控制部分顶层展开如下图所示:

四:设计实现
- 逻辑控制器实现(logic_ctrl)
以输入切换/加/减按键产生输出标志(控制小时/分钟加减)/使能(控制小时/分钟闪烁)。

第一次切换按键按下,切换到小时;第二次切换按键按下,切换到分钟;第三次切换按键按下,正常显示;第四次切换按键按下,切换到小时;第五次切换按键按下,切换到分钟…
- 小时/分钟闪烁功能实现(hour_flash/min_flash)

对于闪烁功能而言,小时/分钟一致,以小时为例。


- 小时/分钟逻辑控制功能实现(hour_ctrl/min_ctrl)

小时逻辑控制:
hour_ctrl
小时逻辑控制:小时进位标志(
hour_flag
)、小时加标志(hour_add_flag
)、小时减标志(hour_sub_flag
),小时计数逻辑(hour
)。小时加逻辑控制:当小时进位标志来时,小时可以加;当小时加标志来时,小时也可以加。
(hour_flag == 1’b1 || hour_add_flag==1’b1&&hour<8’d23) : hour=hour+1;
(hour_flag == 1’b1 || hour_add_flag==1’b1&&hour==8’d23) : hour=0;
小时减逻辑控制:当小时减标志来时,小时可以减。
(hour_sub_flag==1’b1&&hour<8’d23) : hour=hour-1;
(hour_sub_flag==1’b1&&hour==8’d0) : hour=8’d23;

- 拓展(提醒功能:按键按下/整点报时/设置闹钟)
- 无源蜂鸣器
- 提醒作用(按键按下蜂鸣器发声)
- 什么时间响
- 响多长时间
- 什么音调响
- 实现
- 计数器
采用蜂鸣器来实现。

需要产生一定频率方波信号(中高音音调)驱动蜂鸣器发声。

按键按下作为蜂鸣器启动信号,当启动后,设置蜂鸣器的发声时间(0.1s),采用一个计数器做处理,设置蜂鸣器的发声方波频率(1.5KHZ),采用另一个计数器做处理,在0.1s内,才会有方波信号,驱动蜂鸣器发声;在0.1s外,不会有方波信号,蜂鸣器不再发声。
五:练习
- 理解上课数字钟拓展理论
- 尝试完成可调数字钟功能(建模和测试以及下板验证)
六:任务分配
序号 | 任务安排 | 说明 |
1 | 逻辑控制部分(logic_ctrl) | |
2 | 小时/分钟逻辑部分(min_ctrl/hour_ctrl) | |
3 | 小时/分钟闪烁逻辑部分(min_flash/hour_flash) | |
4 | 整体测试(测试一部分功能:切换/闪烁/调整) |
Loading...