数字逻辑课程设计报告-电子钟

2019-08-20 20:15

数字逻辑电路

—课程设计报告

数字逻辑课程设计报告

-----多功能数字钟的实现

一.设计目的:

1.学会应用数字系统设计方法进行电路设计。 2.进一步提高MaxplusII软件开发应用能力。 3.培养学生综合实验能力。

二. 实验仪器与器材: 1、开发软件 MaxplusII软件

2、微机

3、ISP实验板 SE_3型ISP数字实验开发系统 4、打印机

三.实验任务及要求 设计一个多功能数字钟:

1.能进行正常的时、分、秒计时功能。

1)用M6M5进行24进制小时的显示; 2)用M4M3进行60进制分的显示;

3)用M2M1进行60进制秒的显示。 2.利用按键实现“校时”、“校分”和“秒清单”功能。

1)按下SA键时,计时器迅速递增,按24小时循环,并且计满23时回到00。

2)按下SB键时,计时器迅速递增,按60小时循环,并且计满59时回到00,但不向时进位。

3)按下SC,秒清零。要求按下“SA”或“SB”均不会产生数字跳变(“SA”、“SB”按键是有抖动的,必须对“SA”“SB”进行消抖动处理。) 3.能利用实验板上的扬声器作整点报时功能。

1)当计时到达59分50秒时开始报时,在59分50、52、54、56、58秒鸣叫,鸣叫声频为500Hz。

2)到达59分60秒时为最后一声整点报时。整点报时的频率为1Kz。 4.能闹时

1)闹时的最小时间间隙为10分钟。

2)闹时长度为1分钟。 3)闹时声响是单频的。

5.用MaxplusII软件设计符合以上功能要求的多功能数字钟,并用层次化设计方法设计该电路。

1)通过语言实现各模块的功能,然后再画出该电路的顶层图。

2)消抖电路可以通过设计一个D触发器来实现,SA、SB、SC等为包含抖动的诸如信号,而电路的输出则是一个边沿整齐的输出信号。

3) 其他的计时功能、显示功能、多路选择功能、分频功能、报时功能和闹时等功能模

块都用VHDL语言实现。简单的与非门是调用系统内部的元件。

四、设计说明

多功能数字钟的顶层图为:

模块功能如下:

1. 计数器、分计数器、时计数器组成了最基本的数字钟计时电路,其输出本应都连接到一个六选一多路选择器上,作为该选择器的输入。但由于考虑到之后的闹时模块有一个时间比较模块,故而将计数器的所有时间输出都先连接到比较器上,然后再连接到六选一的多路选择器上。

2. 频率分频器可分频出标准的1Hz频率信号,用于秒计数的时钟信号;分频出4Hz频率信号,用于校时,校分的快速递增信号。分频出的64Hz频率信号用于对按动“校时”、 “校分”按键消除抖动。

3.select2_1_31是二选一数据选择器,用于对校时、校分与正常计时的选择。 4. D触发器实际上是用来完成消除抖动的。64Hz作为该触发器时钟,SA、SB、SC是包含着抖动的输入信号,而模块的输出则是一个边沿整齐的输出信号。 5.整点报时电路需要500Hz通过一个组合电路完成功能,前五声讯响功能报时电路还需用一个触发器来保证整点报时的时间为1秒。

6、闹时模块闹时时间长度为1分钟,频率为512Hz。是由一个时间设定模块和一个时间比较模块来完成的。

五 框图及相关模块说明:

1、总体框图:

说明:程序在编译后进行下载,自动进入计时状态,sa,sb可分别调时、分两个状态;sc用来对秒进行清零操作;set用来调节闹钟的时间,当set拨开时,sa、sb分别调闹时的时、分两个状态,当set关闭时,sa、sb分别调正常计时的时、分的两个状态;se用于快速结束闹铃,即可以实现提前终止闹铃的功能。

2、模块说明:

1计时模块:

进制计数器 24 a计时模块VHDL源程序:

计时模块主要完成正常计时功能,它通过小时分钟和秒的关系来完成计时。即由两个模60的计数器和一个模24的计数器,经过联合来完成,其联系模块可在顶层图中看出。计时模块的VHDL源程序为: library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity cnt60_31 is -----分和秒的计数 port (clk:in std_logic; clear:in std_logic;

c:out std_logic;

k1,k0:out std_logic_vector(3 downto 0)); end cnt60_31;

architecture cnt of cnt60_31 is

signal q1,q0:std_logic_vector(3 downto 0); begin

process(clk,clear) begin

if(clear='1')then

q1<=\ else

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

if(q1=\到59 q1<=\ elsif(q1<\ q0<=\ elsif(q0<\ q0<=q0+'1'; end if; end if; end if; k1<=q1; k0<=q0;

60进制计数器 60进制计数器 MUX MUX 1HZ end process;

end cnt;

library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity hour24_31 is

port (clk:in std_logic;

h1,h0:out std_logic_vector(3 downto 0)); end hour24_31;

architecture hour of hour24_31 is

signal q1,q0:std_logic_vector(3 downto 0); begin

process(clk)

begin

if(clk'event and clk='1')then if(q1=\ q1<=\ elsif(q0=\ q0<=\ else

q0<=q0+'1'; end if; end if; h1<=q1; h0<=q0; end process; end hour;

2校时模块:

24进制计数器 MUX 1HZ 60进制计数器 60进制计数器 校对信号 消抖 校时 消抖 校分 分频


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

下一篇:中医护理考试试题6

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

马上注册会员

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