当前位置:文档之家› 数电实验——多功能数字钟

数电实验——多功能数字钟

数电实验——多功能数字钟
数电实验——多功能数字钟

大连理工大学本科实验报告题目:多功能数字钟

课程名称:《数字电路课程设计》

学院(系):电子信息与电气工程学部

专业:自动化

班级:电自0801

学生姓名:

学号:200881142

完成日期:2011年7月20日

成绩:

2011 年7 月20 日

题目:多功能数字钟

1 设计要求

(1)一个具有“时”,“分”,“秒”的十进制数字显示(小时从00~23)

计时器。

(2)具有手动校时,校分的功能。

(3)定时与闹钟功能,能在设定的时间发出闹铃声

(4)能整点报时。要求从59分54秒起报时,每隔2秒发出低音,,连续

3次,在整点要求是高音。

2 设计分析及系统方案设计

系统总体结果

系统设计要求说明:

(1)该秒表用模24、模60计数器实现24小时计时

(2)在调节闹钟时不影响数字钟的正常走表;

(3)在调节闹钟时要通过数码管显示出;

3系统以及模块硬件电路设计

根据上述给出的系统总体结构框图,给出系统硬件电路设计,并作必要的说明和理论计算。由于“数字电路课程设计”课程采用实验箱完成,没有学时涉

及有关FPGA芯片的使用,因此有关FPGA芯片的部分可以用“FPGA最小系统”模块框代替。其余接口部分(按键,LED以及数码管,各种接口等需要设计电路以及参数)。

下载时选择的开发系统模式以及管脚定义

表1 GW48-CK开发系统工作模式:模式0

接口名称

类型

(输入/输

出)

结构图上

的信号名引脚号说明

en 输入PIO7 16 手动校时(1-调时,0-

走表)

th 输入PIO6 11 调时按键(en=1,或

en1=1调时)

en1 输入PIO5 10 闹钟设定(1-调时,0-

不走)

tm 输入PIO4 9 调分按键(en=1或

en1=1,才可调分)alarmstop 输入PIO3 8 闹铃控制端

clk 输入CLOCK1 42 系统走表时钟(f=1Hz)clk1 输入CLOCK0 2 闹钟与整点报时时钟

(f=256Hz)

clk2 输入CLOCK5 83 整点报时时钟时钟

(f=1024Hz)

qhh 输出PIO47-PIO44 79、78、73、72 输出小时的高位

qlh 输出PIO43-PIO40 71、70、67、66 输出小时的低位

qhm 输出PIO39-PIO36 65、64、62、61 输出分钟的高位

qlm 输出PIO35-PIO32 60、59、58、54 输出分钟的低位

qhs 输出PIO31-PIO28 53、52、51、50 输出秒的高位

qls 输出PIO27-PIO24 49、48、47、39 输出秒的低位

speaker 输出SPEAKER 3 输出蜂鸣器的时钟

4 系统的VHDL设计

系统的各个部分如何用VHDL设计出来的应该有说明,包括论述以及真值表或者状态图等。

要求:系统(或顶层文件)结构描述,各个模块(或子程序)的功能描述;

1)用原理图实现的,需包含以下内容:

(1)系统原理图

(2)主要模块或符号说明;

主要模块:模60计数器,模24计数器,

2)用VHDL语言实现的

(1) 秒计数器(模60计数器)

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

port(clk: in std_logic;

clk_1: out std_logic; --clk_1表进位

qh,ql:out std_logic_vector(3 downto 0) –qh,ql表示十位与个位

);

end;

architecture a of m_601 is

signal qqh,qql: std_logic_vector(3 downto 0);

signal tmp: std_logic;

begin

process(clk)

begin

if clk'event and clk='1' then

if qql=9 then

qql<="0000";

if qqh=5 then

qqh<="0000";tmp<='1';

else

qqh<=qqh+1;

end if;

else

qql<=qql+1;

tmp<='0';

end if;

end if;

end process;

qh<=qqh;

ql<=qql;

clk_1<=tmp;

end;

秒计数器仿真图

(2)分计数器(模60计数器)

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity m_60 is

port(clk,en,t: in std_logic; --在en=1控制的情况下,手动t校时clk_1: out std_logic; --clk_1表进位

qh,ql:out std_logic_vector(3 downto 0) –qh,ql表十位与个位

);

end;

architecture a of m_60 is

signal qqh,qql: std_logic_vector(3 downto 0);

signal tmp,tmp_1: std_logic;

begin

process(tmp_1)

begin

if tmp_1'event and tmp_1='1' then

if qql=9 then

qql<="0000";

if qqh=5 then

qqh<="0000";tmp<='1';

else

相关主题
文本预览
相关文档 最新文档