本程序实现的效果是12小时制时钟,将程序下载到开发板后,驱动6个数码管显示出来,如下图所示。最左边两位代表时,中间两位代表分,右边两位代表秒。其中从左往右数的第二个数码管的点一直点亮,表示分割时和分。第4个数码管的点一直点亮,表示分割分和秒。最右边数码管的点被点亮时表示PM,熄灭时表示AM。当复位信号有效时(同步清零,低电平有效),时钟会被复位到12:00:00AM。
时钟信号为内部的50MHz晶振,KEY1为复位信号,KEY4为计数使能信号,管脚约束可查询用户手册,截图如下:
本程序分为以下4个模块:
1、50MHz时钟计数分频:
module fd_CLOCK(
input clock,
input resetn,
output reg clk
);
reg [24:0] count;
always @(posedg