推荐-基于多功能数字钟的课程设计报告 精品

  • 格式:doc
  • 大小:355.00 KB
  • 文档页数:12

下载文档原格式

  / 12
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

EDA技术课程设计

多功能数字钟

学院:城市学院

专业、班级:

姓名:

指导老师:

20XX年12月

目录

1、设计任务与要求 (2)

2、总体框图 (2)

3、选择器件 (2)

4、功能模块 (3)

(1)时钟记数模块 (3)

(2)整点报时驱动信号产生模块 (6)

(3)八段共阴扫描数码管的片选驱动信号输出模块 (7)

(4)驱动八段字形译码输出模块 (8)

(5)高3位数和低4位数并置输出模块 (9)

5、总体设计电路图 (10)

(1)仿真图 (10)

(2)电路图 (10)

6、设计心得体会 (11)

一、设计任务与要求

1、具有时、分、秒记数显示功能,以24小时循环计时。

2、要求数字钟具有清零、调节小时、分钟功能。

3、具有整点报时,整点报时的同时输出喇叭有音乐响起。

二、总体框图

多功能数字钟总体框图如下图所示。它由时钟记数模块(包括hour、minute、second 三个小模块)、驱动8位八段共阴扫描数码管的片选驱动信号输出模块(seltime)、驱动八段字形译码输出模块(deled)、整点报时驱动信号产生模块(alart)。

系统总体框图

三、选择器件

网络线若干、共阴八段数码管4个、蜂鸣器、hour(24进制记数器)、minute(60进制记数器)、second(60进制记数器)、alert(整点报时驱动信号产生模块)、

seltime(驱动4位八段共阴扫描数码管的片选

驱动信号输出模块)、deled(驱动八段字形译

码输出模块)。

四、功能模块

多功能数字钟中的时钟记数模块、驱动8位八段共阴扫描数码管的片选驱动信号输出模块、驱动八段字形译码输出模块、整点报时驱动信号产生模块。

(1) 时钟记数模块:

<1.1>该模块的功能是:在时钟信号(CLK)的作用下可以生成波形;在清零信号(RESET)作用下,即可清零。

VHDL程序如下:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity hour24 is

port( clk: in std_logic;

reset:instd_logic;

qh:BUFFER STD_LOGIC_VECTOR(2 DOWNTO 0);

ql:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0));

end hour24;

architecture behav of hour24 is

begin

process(reset,clk)

begin

if reset='1' then qh<="000"; ql<="0000";

elsif(clk'event and clk='1') then

if (qh<2) then

if (ql=9) then

ql<="0000"; qh<=qh + 1;

else ql<=ql+1;

end if;

else

if (ql=3) then ql<="0000"; qh<="000";

else ql<=ql+1;

end if;

end if;

end if;

end process;

end behav;

仿真波形如下:

VHDL程序如下:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY min60 IS

PORT(reset:IN STD_LOGIC;

load:IN STD_LOGIC;

clk1:IN STD_logic;

clk:IN STD_LOGIC;

co:OUT STD_LOGIC;

qh:BUFFER STD_LOGIC_VECTOR(2 DOWNTO 0); ql:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0)); end min60;

ARCHITECTURE behave OF min60 IS

BEGIN

PROCESS(clk,reset,load)

BEGIN

if(reset='1') then

qh<="000"; ql<="0000"; elsif(load='1') then co<=clk1;

elsif(clk'EVENT and clk='1') then

if(ql=9) then

ql<="0000";--低4位清零

if(qh=5) then qh<="000";--高4位清零

else qh<=qh+1 ;--计数功能的实现;

end if;

else ql<=ql+1; --低4位加1

end if;

if(qh=5 and ql=9) then co<='1';

else co<='0';

end if;

end if;

end process;

end behave;

仿真波形如下: