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

2020-02-21 13:30

数字逻辑电路实验报告

姓名: 班级: 学号:

指导老师:耿霞 学校:江苏大学

1

目录

一、实验目的???????????????????????3 二、设计要求??????????????????????3 三、具体设计思路????????????????????3

1. 24进制计数器的设计????????????????????4 2. 60进制计数器的设计????????????????????5 3. 二路选择器的设计??????????????????????6 4. 分频器的设计????????????????????????6 5. 动态扫描的涉及???????????????????????7 6. 整点报时功能的设计?????????????????????8 7. 选择显示与闹钟设置的设计??????????????????9

四、顶层图????????????????????????10 五、各个模块???????????????????????11

1. 计时模块?????????????????????????11 2. 整点报时与闹钟模块????????????????????11

六、设计总结???????????????????????12

2

一:实验目的

1. 学会应用数字系统方法进行电路设计;

2. 进一步学会应用Quartus软件开发应用能力; 3. 培养综合实验的能力。

二:设计要求

设计一个多功能数字时钟,具有以下几个功能: (1) 能进行正常的时、分、秒计时。

① 使用一个二十四进制和两个六十进制的计数器级联。分计数器以秒计

数器的进位作为计数脉冲,小时计数器以分计时器的进位作为计数脉冲。

② 给秒1Hz 。

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

关实现“校时”,“校分”及清零功能。 (3) 可以使用系统上的扬声器进行整点报时

① 计时到59分50秒时,每两秒一次低音报时,整点进行高音报时。 ② 低音报时用512Hz,高音报时用1kHz。 (4) 设置闹钟,并连接扬声器实现闹铃功能。

① 设定闹钟时间与新的计数器进行存储,与正常计时互不干扰。 ② 与正常计时状态进行切换。

③ 设定一个比较模块,当计时与闹钟相等时,驱动扬声器鸣叫。 ④ 闹钟响声控制在一分钟之内,可以在一分钟设置按键取消闹时状态 (5) 用动态数码管显示时间。

① 用6个数码管,分别用一组独立的七段码进行驱动显示,将小时高位

到秒低位共6组时间经过7段译码,按照顺序锁定到数码管上。 ② 用动态扫描的方式显示。 ③ 扫描频率越高越稳定。

三:具体设计思路

利用按键实现“校时”,“校分”及清零功能。

(1) SA:校时键。按下SA键时,时计数器迅速递增,按24小时循环,并且

计满23时回到00.

(2) SB:校分键。按下SB键时,分计数器迅速递增,按60小时循环,并且

计满59时回到00,但不向时进位。

(3) SC:秒清零。按下SC时,秒计数器清零。

(4) 要求按键均不产生数字跳变,因此需要进行销抖处理。用D触发器。 实现:

3

1. 24进制计数器的设计: VHDL语言描述:

libraryieee;

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

entity cnt24 is

port(rst,clk:instd_logic; co:outstd_logic;

qout:outstd_logic_vector(7 downto 0)); end cnt24;

architecture behave of cnt24 is

signalqh,ql:std_logic_vector(3 downto 0); signaltco:std_logic;

begin

process(clk,rst) begin

if (rst='0') then qh<=\

//若rst为0时,十位qh以及个位ql都清零,且不进位 elsif (clk'event and clk='1') then

if (ql<9 and (qh=0 or qh=1)) then

//当个位ql小于9,十位qh等于‘0’或‘1’时

ql<=ql+1;qh<=qh;//个位ql加1,qh不变 end if;

if(ql=9) then/ /当个位ql等于9时

ql<=\//个位ql清零

qh<=qh+1;//十位qh加1

end if;

if(ql<4 and qh=2) then//当十位qh等于2,个位ql小于4时

ql<=ql+1;qh<=qh;//个位ql加1,十位qh不变 end if;

if(ql=3 and qh=2) then//当十位qh等于2,个位ql等于3 qh<=\//十位、个位都清零 end if; end if;

qout<=qh&ql;co<=tco;//通过qout输出十位个位 end process; end behave;

4

2. 60进制计数器的设计:

VHDL语言描述:

library ieee;

use ieee.std_logic_1164.all;

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

entity cnt60 is

port(rst,clk:instd_logic; co:outstd_logic;

qout:outstd_logic_vector(7 downto 0)); end cnt60;

architecture behave of cnt60 is

signal qh,ql:std_logic_vector(3 downto 0); signal tco:std_logic;

begin

process(clk,rst) begin

if (rst='0') then qh<=\//当rst为‘0’时,十位qh和个位ql清零,不进位 elsif (clk'event and clk='1') then

if (ql=9) then //当个位ql等于9时

if (qh=5) then qh<=\

//如果是为qh等于5,则十位qh和个位ql为零,并产生一个进位信号 else qh<=qh+1;ql<=\

//如果qh不是等于5,则十位qh加1,个位ql为零,不产生进位信号 end if;

else ql<=ql+1;qh<=qh; tco<='0';

//如果个位ql不为9,则个位ql加1,十位qh不变,并不产生进位信号 end if;

end if;

qout<=qh&ql;co<=tco;//通过qout输出十位和个位 end process; end behave;

5


数字逻辑电路课程设计报告江苏大学.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《百合花》(精)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: