《数字电子钟的设计报告》
A:本次课程设计选的题目:《数字钟的设计》
其基本要求如下:
1. 实现基本的计时功能,输入1kHz的时钟,采用24小时制计时,能显示时、分、秒。
2. 校正功能; 时分均有校时功能。
3. 当计时器运行到59分49秒开始报时,每鸣叫1s就停叫1s,共鸣叫6,前5响为低音,频率为750Hz;最后1响为高音,频率为1KHz。
4. 可设定夜间某个时段不报时。
5. 设定闹钟,当按下闹铃开关时,可在规定时间闹铃,当开关复位时,闹铃停止。
方案一
根据方案的要求,可以用VHDL语言 ,采用自顶向下的设计方法。可用分频的方法得到1HZ的时钟用与计数;用7段数码管来显示时间,需要6个数码管;同时可以根据不同的频率的输入来调节蜂鸣器的鸣叫声音,从而实现整点报时功能和闹铃功能。对于闹铃功能,可以用一个触发器和一个寄存器来实现。根据要求基本确定由以下模块组成:
1. 秒计数模块:秒计数,在频率为1HZ的时钟下以60次为循环计数,并产生进位信号影响分计数;
2. 分计数模块:分计数,在秒进位信号为高电平时,计数一次,同样以60次为一个循环计数,同时产生分进位信号影响时计数;
3. 时计数模块:时计数,在分进位信号为高电平时,计数一次,以24次为一个循环计数;
4. 频率产生模块:主要有2个部分,一个是产生1HZ的计数频率,一个是产生725HZ和500HZ的蜂鸣器鸣叫频率;
5. 时间显示模块:通过选中不同的数码管,同时进行一定频率的扫描显示时,分,秒。
6. 时间设置模块:设置调试使能端,可以调时,分。基本功能是在使能端为高电平时,可以使时和分循环计数;
7. 整点报时模块:在秒计数到50秒时,同时分计数到59分开始,丰鸣器产生每个2秒的鸣叫(500HZ),到整点是产生750HZ的鸣叫。
8. 闹钟模块:在设定闹钟闹铃时间后,当闹钟使能端有效时,可在闹铃时间闹铃,通过人工拨0后停闹。
秒计数模块
VHDL源程序:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY MIAN IS ---------------秒计数模块-------------
PORT(RD,CLK:IN STD_LOGIC; ------------秒复位信号-----
SEC1,SEC0:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
CO:OUT STD_LOGIC);
END MIAN;
ARCHITECTURE MIANA OF MIAN IS
BEGIN
PROCESS(CLK,RD) --秒计数进程
VARIABLE CNT1,CNT0:STD_LOGIC_VECTOR(3 DOWNTO 0); 输出信号
BEGIN
IF RD='1' THEN ----复位信号为1时,秒计数清零---
CNT1:="0000";
CNT0:="0000";
ELSIF CLK 'EVENT AND CLK='1' THEN -输入时钟信号和清零信号
IF CNT1="0101"AND CNT0="1000"THEN –当秒计数为58时进位信号为1
CO<='1';
CNT0:=&