数电实验报告

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

数字电路与逻辑设计综合实验

实验报告

课题名称:数字钟

班级:08211102班

学号:070062

班内序号:33

姓名:何慧芳

一.设计课题的任务要求

1.实验目的

1.熟练掌握VHDL 语言和QuartusII 软件的使用;

2.理解状态机的工作原理和设计方法;

3.掌握利用EDA 工具进行自顶向下的电子系统设计方法;

2.实验任务

A.基本任务:设计制作一个能显示时、分、秒的时钟

1. 可手动校对时间,能分别进行时和分的校正;

2. 12 小时(有上、下午显示)、24 小时计时制可选;

B.提高要求:

1. 整点报时功能;

2. 闹铃功能,当计时到预定时间时,蜂鸣器发出闹铃信号,闹铃时间为5 秒,可

提前终止闹铃;

3. 自拟其它功能。

3.实验器材

1.计算机;

2.示波器;

3.直流稳压电源;

4.万用表;

5.EDA 开发板及相应元器件。

二.系统设计(设计思路、总体框图、分块设计)

1.设计思路

数字钟是一个将“时”、“分”、“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时,显示满刻度为23 时59 分59 秒;或者计时周期为12 小时并配有上下午指示,显示满刻度为12 时59 分59 秒;另外还应有校时功能和报时功能。

电路由晶体振荡器、时钟计数器、译码驱动电路和数字显示电路以及时间调整电路组成。其中,时钟计数器、译码驱动电路及时间调整电路由CPLD 设计完成,晶体振荡器负责给CPLD 提供所需的高频时钟脉冲信号。

1、晶体振荡器

晶体振荡器的作用是产生时间标准信号。数字钟的精度,主要取决于时间标准信号的频率及其稳定度。因此,一般采用石英晶体振荡器经过分频得到这一信号。也可采用由门电路或555 定时器构成的多谐振荡器作为时间标准信号源。

2、计数器

有了时间标准“秒”信号后,就可以根据60 秒为1 分、60 分为1 小时、24 小时为1 天的计数周期,分别组成两个六十进制(秒、分)、一个二十四进制(时)的计数器。将这些计数器适当地连接,就可以构成秒、分、时的计数,实现计时的功能。

3、译码和数码显示电路

译码和数码显示电路是将数字钟和计时状态直观清晰地反映出来,被人们的视觉器官所接受。显示器件选用LED 七段数码管。在译码显示电路输出的驱动下,显示出清晰、直观的数字符号。

4、校时电路

实际的数字钟表电路由于秒信号的精确性不可能做到完全(绝对)准确无误,加之电路中其它原因,数字钟总会产生走时误差的现象。因此,电路中就应该有校准时间功能的电路。

2.模块划分

采用自顶向下的设计方法,通过对数字钟实现功能的分析,决定将各个功能由一个个模块实现,核心模块就是秒计时器、分计时器和小时计时器。其他的功能主要围绕在计时器的周边添加,这样系统设计简单明了,并且功能容易扩展。

将模块分为:

分频模块:div50m,div500

计时模块:second,minute,hour

整点报时和闹铃模块:speaker,alarm,beep

译码和数码显示:seltime,display

3.总体框图

(1).设计的时钟的系统结构图(对外接口图)

(2).各模块连接图(逻辑划分方框图):

(3)设计的时钟的逻辑流程图

(4)逻辑图对应的MDS图

方框图

三.仿真波形及波形分析

1,秒计时器

仿真波形:

冲,同时秒从0开始继续计时;

波形分析:设置set设置时间有效时,使set-sec有效,则秒按照计时规律变化,在59秒的时候,不产生进位enmin。

2,分计时器仿真波形:

波形分析:可以看到在进位enmin为1的时候,分钟按照规律变为加1。当分钟变化到59的时候产生进位enhour。Enmin为0的时候,即秒还没有进位的时候,分钟保持不表。

3,小时计时器仿真波形:

波形分析:可以看到enhour为1的时候小时按照规律变化,到23时小时从0开始计数。Enhour 为0的时候小时不变化。

4,小时,分,秒总体仿真波形

波形分析:从图中可以看出置0信号置0,调时,调分信号为高电平分,时分别进1的情况。

5整点报时仿真波形:

6,12/24小时进制

波形分析:从图中可以看到每个24小时制对应的12小时制的数值和上下午显示。从仿真来看没有出现错误。

7,闹铃模块仿真波形:

波形分析:alarm_on为1的时候,当输入的时间和设置时间相等,则beep输出1,完成了闹铃的功能。

8,分时扫描模块仿真波形:

波形分析:可以看出在时钟周期下六个数码管分时输出有效,在大于300hz的频率下人眼会看到六个数码管持续稳定的点亮。

9,数码管显示

仿真波形:

10,轰鸣器仿真波形:

波形分析:可以看到a 和b 任一个为1,则输出bp 为1

四.源程序

1.分频模块

use ieee.std_logic_unsigned.all;

entity div50m is

port(clk_in : in std_logic; --时钟输入

clk_out : out std_logic); --时钟输出

end;

architecture a of div50m is

signal cnt : integer range 0 to 24999999;

signal clk_tmp : std_logic;

begin

process(clk_in)

begin

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

if cnt=24999999 then

cnt<=0;

clk_tmp<= not clk_tmp;

else

cnt<=cnt+1;

end if;

end if;

end process;

clk_out<=clk_tmp;

end;

--div500将50mhz的时钟分频到500hz,供分时扫描模块使用library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity div500 is

port(clk_in : in std_logic;

clk_out : out std_logic);

end;

architecture b of div500 is

signal cnt : integer range 0 to 49999;

signal clk_tmp : std_logic;

begin

process(clk_in)

begin

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

if cnt=49999 then

cnt<=0;

相关文档
最新文档