1、题目:题目:数字钟数字钟 1 1 设计要求设计要求 该数字钟具有如下六种功能: (1)具有时 、 分 、 秒的十进制数字显示(小时从 0023)的计时器(具有清零 功能和设置起始时间功能) ; (2)具有手动校时、校分、校秒的功能,利用 DE2 Key 键,分别对每一个数码管进行校时 (校正模式下, 时钟处于停滞状态) , 校时之后的时间可以通过开关赋给 24 小时计数器 模块和倒计时模块; (3) 定时与闹钟功能, 能在设定的时间发出闹铃声 (用开发板上红色的 LED 灯全亮来表示) , 程序中实现闹铃 30 秒; (4)能进行零点报时,要求发出仿中央人民广播电台的整点报时信号,即从 23
2、时 59 分 50 秒起,每隔 2 秒钟发出一次低音“嘟”的信号,连续 5 次,最后一次要求高音“嘀”的信号, 此信号结束即达到零点(用开发板上的绿色 LED 灯亮来表示) ; (5)设计一个秒表,显示 1%秒、60 秒、手动停止,手动清零; (6)设计一个倒计时,显示小时、分钟、秒、%1 秒,可清零,可设置起始时间。 2 设计分析及系统方案设计 系统总共有 5 个状态,分别对应设计要求中的 (1)24 小时计数器 (2)时钟校准 (3)闹铃 (4)倒计时 (5)秒表 程序开始利用 50MHz 的时钟分别构造 1Hz 的时钟和 100Hz 的时钟。先用 50MHz 时钟构造模 500000 计
3、数器,用作分频产生 100HZ 信号,然后用 100HZ 信号构造模 100 计数器, 用作分频产生 1HZ 信号, 从而构造出周期是 1 秒和 0.01 秒的时钟。 (1) 时间显示 此部分是用 1HZ 的时钟驱动秒的个位,然后通过进位关系分别带动其余 5 位时间,从而完成时间显示功能。当清零位置0时,时间一直显示为 0。 (2) 手动校时 此部分通过三个 DE2 的 KEY 按键来实现。第一个是状态转换按键,通过它 来将状态转换到校时状态;第二个是校准位置选择按键,通过它来选择此时校准 哪一位;第三个是对所选位置进行加一的按键。设置好时间之后可以通过两个开 关分别将设置好的时间送到正常显示
4、模块和倒计时模块。 (3) 闹铃功能 此部分通过和手动校时部分相同的操作过程来设置闹铃, 系统提供一个可以 打开和关闭闹铃的开关。闹铃部分的信号是一个单独的信号,对该信号的设置并 不影响时钟的正常运行。当闹铃的小时、分钟和秒的信号分别和时钟的小时、分 钟和秒的信号对应相等时,闹铃启动,进行 30 秒的闹铃提醒。 (4) 零点报时 在正常显示 24 小时的状态中,当时间信号运行到 23:59:50 时,开始零点 报时,程序中以驱动绿色 LED 灯亮来代表。 (5) 秒表功能 此部分由 100HZ 的时钟驱动%1 秒位, 通过进位关系分别带动其余 7 位时间 完成计时功能。秒表的信号是一个单独的信
5、号,使用秒表并不影响时钟的正常运 行。对秒表可以进行清零和暂停操作,通过两个开关来实现。 (6)倒计时功能 此部分就是 24 小时正常显示模块的逆过程。用 100HZ 的时钟驱动%1 秒的 个位,然后通过退位关系分别带动其余 7 位完成倒计时功能。倒计时的信号为独 立的信号,使用倒计时并不影响时钟的正常运行。倒计时设有清零位,用开关控 制。 数字钟原理框图如下: 3 系统以及模块硬件电路设计 (1)输入信号 clk0:系统时钟(:系统时钟(50MHZ) state:状态转换按键:状态转换按键 positionselect:位置选择按键:位置选择按键 jiayi:校准、设闹钟时对所选的位进行加一
6、的按键:校准、设闹钟时对所选的位进行加一的按键 queding:校时之后的确定开关:校时之后的确定开关 queding1:设置倒计时之后再确定开关:设置倒计时之后再确定开关 kainaozhong:闹钟开关控制:闹钟开关控制 qingling: 秒表清零开关秒表清零开关 zanting:秒表暂停开关:秒表暂停开关 qingling1: 正常显示的清零开关正常显示的清零开关 qingling2:倒计时的清零开关:倒计时的清零开关 (2)输出信号 输出到数码管显示:输出到数码管显示: bighour:out std_logic_vector(6 downto 0); -时针十位时针十位 smallhour:out std_logic_vector(6 downto 0); -时针个位时针个位 bigminute:out std_logic_vector(6 downto 0); -分针十位分针十位 smallminute:out std_logic_vector(6 downto 0); -分针个位分针