可调数字钟设计(拓展)

AI summary
可调数字钟设计要求包括使用三个按键进行时间切换和校准,具有启停、提醒和闹钟功能。设计过程涉及逻辑控制、闪烁功能和小时/分钟的逻辑控制实现,采用蜂鸣器实现提醒功能。任务分配明确了各部分的责任,包括逻辑控制、闪烁逻辑和整体测试。
Last edited time
Sep 24, 2024 02:58 PM
Last edited by
Tags
Digital Clock Design
Logic Control Implementation
Alarm Functionality

一:设计要求

本设计在简易数字钟基础之上,完成下述功能要求:
  1. 采用3个按键对数字钟进行切换和校准(第一个按键进行切换:对小时和分钟进行切换,秒不做调节;第二个按键和第三个按键对切换到小时/分钟进行调节,第二个按键对其加控制,第三个按键对其减控制)。
  1. 切换按键按下第一次切换到小时,按下第二次切换到分钟,由于秒不进行调节,所以按下第三次切换按键,正常显示。
  1. 切换时,如果切换到小时,小时进行闪烁;
  1. 切换时,如果切换到分钟,分钟进行闪烁;
  1. 启停功能
  1. 提醒功能(按键按下提醒,蜂鸣器响0.1s)
  1. 设置闹钟/整点报时

二:设计过程

notion image

三:设计分析

  1. 数字钟校准原则:先进行切换,切换到小时,才可以对其加减,且小时进行闪烁;再次切换,切换到分钟,也可以对其加减,且分钟进行闪烁;再次切换,正常显示。
  1. 第一部分设计架构:整体设计
    1. notion image
  1. 第二部分设计架构:逻辑控制部分
    1. notion image
      上述逻辑控制部分顶层展开如下图所示:
      notion image

四:设计实现

  1. 逻辑控制器实现(logic_ctrl)
    1. 以输入切换/加/减按键产生输出标志(控制小时/分钟加减)/使能(控制小时/分钟闪烁)。
      notion image
      第一次切换按键按下,切换到小时;第二次切换按键按下,切换到分钟;第三次切换按键按下,正常显示;第四次切换按键按下,切换到小时;第五次切换按键按下,切换到分钟…
  1. 小时/分钟闪烁功能实现(hour_flash/min_flash)
    1. notion image
      对于闪烁功能而言,小时/分钟一致,以小时为例。
      notion image
      notion image
  1. 小时/分钟逻辑控制功能实现(hour_ctrl/min_ctrl)
    1. notion image
      小时逻辑控制: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;
      notion image
  1. 拓展(提醒功能:按键按下/整点报时/设置闹钟)
    1. 采用蜂鸣器来实现。
      notion image
    2. 无源蜂鸣器
      1. 需要产生一定频率方波信号(中高音音调)驱动蜂鸣器发声。
        notion image
    3. 提醒作用(按键按下蜂鸣器发声)
        • 什么时间响
        • 响多长时间
        • 什么音调响
    4. 实现
        • 计数器
          • 按键按下作为蜂鸣器启动信号,当启动后,设置蜂鸣器的发声时间(0.1s),采用一个计数器做处理,设置蜂鸣器的发声方波频率(1.5KHZ),采用另一个计数器做处理,在0.1s内,才会有方波信号,驱动蜂鸣器发声;在0.1s外,不会有方波信号,蜂鸣器不再发声。

五:练习

  1. 理解上课数字钟拓展理论
  1. 尝试完成可调数字钟功能(建模和测试以及下板验证)

六:任务分配

序号
任务安排
说明
1
逻辑控制部分(logic_ctrl)
2
小时/分钟逻辑部分(min_ctrl/hour_ctrl)
3
小时/分钟闪烁逻辑部分(min_flash/hour_flash)
4
整体测试(测试一部分功能:切换/闪烁/调整)
Loading...