江苏大学数字逻辑电路课程设计

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

江苏大学

数字逻辑电路课程设计

课题:多功能数字钟

学号:4141110023

姓名:谢舟

专业班级:J 计算机1401

学院:京江学院

指导老师:耿霞

2016年1月9日

J计算机1401 谢舟4141110023

目录

一、实验目的 (1)

二、顶层图 (1)

三、系统功能分析 (1)

1.时、分、秒的基本组成VHDL (1)

2.分配器和二路选择器 (4)

3.计时和校时模块 (5)

4.整点报时模块 (6)

5.分频模块 (7)

6.动态显示模块 (8)

7.闹钟模块 (11)

四、引脚锁定 (12)

五、心得体会 (12)

一、实验目的

多功能数字钟具有以下功能:

(1)能进行正常的时、分、秒计时。

(2)可使用以EP1C12F324C8为核心的硬件系统上的脉冲按键或者拨动开关实现“校

时”、“校分”及秒清零功能。

(3)可使用以EP1C12F324C8为核心的硬件系统上的扬声器进行整点报时。

(4)设置闹钟,并连接扬声器实现闹铃功能。

(5)通过以EP1C12F324C8为核心的硬件系统上的动态扫描数码管显示时间。

二、顶层图

三、系统功能分析

根据总体设计框图,可以将整个系统分为6个模块来实现,分别是计时模块、校时模块、整点报时模块、分频模块、动态显示模块及闹钟模块。

1.时、分、秒的基本组成VHDL

(1)24进制计数器

源程序:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

use ieee.std_logic_arith.all;

entity cnt24 is

port(clk:in std_logic;

ql,qh:out std_logic_vector(3 downto 0);

tc:out std_logic);

end cnt24;

architecture one of cnt24 is

signal l,h:std_logic_vector(3 downto 0);

signal co:std_logic;

begin

process(clk)

begin

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

if (l<"1001" and (h="0000" or h="0001")) then

l<=l+1;h<=h;co<='0';

end if;

if(l="1001" and (h="0000" or h="0001")) then

h<=h+1;l<="0000";co<='0';

end if;

if(l<"0100" and h<"0010") then

l<=l+1;h<=h;co<='0';

end if;

if(l="0011" and h="0010") then

h<="0000";l<="0000";co<='1';

end if;

end if;

qh<=h;

ql<=l;

tc<=co;

end process;

end one;

模块图:

(2)60进制计数器

源程序:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity cnt60 is

port (

clk,clr:in std_logic;

ql,qh:buffer std_logic_vector(3 downto 0);

tc:out std_logic

);

end cnt60;

architecture behavor of cnt60 is

signal h,l:std_logic_vector(3 downto 0);

signal co:std_logic;

begin

process(clk,clr)

begin

if (clr='0') then h<="0000"; l<="0000"; co<='0';

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

if (l="1001") then

if (h="0101") then h<="0000";l<="0000";co<='1';

else h<=h+1;l<="0000";co<='0';

end if;

else

l<=l+1;h<=h;

co<='0';

end if;

end if;

qh<=h;

ql<=l;

tc<=co;

end process;

end behavor;

模块图:

2.分配器和二路选择器(1)分配器

源程序:

library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all;

entity dex2 is

port(sel:in std_logic;

data: in std_logic;

o1,o2:out std_logic); end dex2;

architecture beh of dex2 is begin

process(sel)

begin

if(sel='0')then

o1<=data;

else

o2<=data;

end if;

end process;

end beh;

模块图:

相关文档
最新文档