本设计采用小脚丫FPGA开发板和四位数码管构建数字时钟,实现时间显示功能。通过硬件描述语言编程,完成计时、校准等操作,提供精准的时间参考。
设计要求基于小脚丫FPGA开发板及四位数码管实现数字时钟的设计:
1. 使用FPGA、按键以及四位数码管来完成数字时钟的功能。
2. 时间显示格式为XX:XX:XX(小时:分钟:秒),采用24小时制。
3. 四位数码管用于展示时间的各个部分,可以通过按键选择查看或调整时分界面和分秒界面的时间信息。
4. 通过按键设定初始时间。
5. 设计在整点12点报时的功能,即当时间为00:00:00时蜂鸣器会响约5秒钟以示提醒。
硬件连接部分:
- FPGA的系统时钟采用小脚丫FPGA开发板上配置好的24MHz晶振信号,并将其与C1引脚相连。
- 设计中使用五个按键K1至K5,分别接在B8、C8、A10、A11和A12引脚。这些按钮用于控制时间的设置及显示模式的选择等操作。
- 蜂鸣器连接到FPGA的B2引脚上,在整点时通过该蜂鸣器发出声音信号,以提醒用户当前是整点时刻。
- 四位数码管用两个74HC595芯片驱动。这两个IC分别接在N2、M1和K1引脚。
工作原理:
- 利用计数器进行分频处理得到周期为一秒的脉冲信号;
- 使用三个8bit BCD码表示时钟的时间信息,每个BCD码包含分钟、秒钟等时间单位的数据。
- 正常操作下每秒更新一次显示内容;当秒钟到达60后会重置并增加一分钟计数器值。以此类推直到23:59:59的下一刻所有计时位清零;
- 按键K5用于模式切换,提供四种工作状态:分秒显示、分秒调节、时分显示和时分调节。
- K2按钮在时间调整阶段使用;当数字钟处于设置小时或分钟的状态下按下此按键可以改变对应的时间单位数值大小。
代码设计:
为了实现上述功能,整个项目被划分为不同的模块。主要包含以下部分:
1. 五位按键消抖模块:用于去除机械按键接触时产生的抖动。
2. 电子表显示控制单元负责处理用户输入的指令,并根据当前状态调整显示屏上时间的展示方式;
3. 数码管译码器将BCD编码转换成七段数码显示器可以识别的形式;
4. 四位数码管驱动程序用于向74HC595发送数据,以点亮正确的LED显示数字。
5. 与SPI通信相关的代码负责通过串行接口传输必要的控制信号给外部设备如74HC595。