河南农业大学
课 程 设 计 报 告
题 目: 数字钟电路设计
课 程: 《EDA 技术》课程设计
专业班级:
学生姓名:
学 号:
完成日期: 10.6.13
机电工程学院
目 录
摘 要 …………………………………………………… ……………1
1 概 述 ……………………………………………………… ………1
1.1 课 程 设 计 目 的 …………………………………… ……………1
1.2 课 程 设 计 内 容 …………………………………………… ……1
1.3 课 程 设 计 原 理 …………………………………………… ……1
2 设 计 过 程 …………………………………………………… ……1
2.1 模 块 HOUR……………………………………………… ………1
2.2 模 块 MINUTE……………………………………………………2
2.3 模 块 SECOND……………………………….……………………2
2.4 模 块 ALERT………………………………………………………2
2.5 模 块 SELTIME……………………………………………………3
2.6 顶 层 设 计 模块 CLOCK……………………………………………4
3 系 统 仿 真 …………………………………… …………………… 4
3.1 时 序 仿 真 …………………………………………… …………4
3.2 电 路 功 能 验 证 …………………………………… ……………6
3.3 问 题 分 析 ………………………………………… ……………7
4 心得体会………………………………………………… …………7
参考文献………………………………………………………………8
附录 1:源程序清单………………………………………………… …………8
河南农业大学 09~10EDA 实习报告(0704101053)
1
数字钟电路设计
摘要:数字时钟是我们日常生活中很常见的电子器件,数字时钟电路也是很
多电子设备中非常重要的组成部分。学习 EDA 技术,学会设计数字时钟电路是
非常基础的一个内容。希望借数字钟电路的设计更好地熟悉用 EDA 设计硬件的
方法和流程,为以后从事相关工作做好准备。
1 概述
1.1 课 程 设 计 目 的
《 EDA 课 程 设 计 》( 注 : EDA 即 电 子 设 计 自 动 化 , Electronics Design
Automation)是继《模拟电子技术基础》、《数字电子技术基础》课程后,电信专
业学生在电子技术实验技能方面综合性质的实验训练课程,是电子技术基础的一
个部分,其目的和任务是通过 2 周的时间,让学生掌握 EDA 的基本方法,熟悉一
种 EDA 软件(QUARTUSII),并能利用 EDA 软件设计一个电子技术综合问题,并在
实验板上成功下载,为以后进行工程实际问题的研究打下设计基础。
1.2 课 程 设 计 内 容
设计数字钟电路满足以下要求
○
1
、具有时,分,秒,计数显示功能,以 24 小时循环计时。
○
2
、具有清零,调节小时、分钟功能。
○
3
、具有整点报时功能,整点报时的同时 LED 灯花样显示。
1.3 课程设计原理
○
1
.时钟计数: 秒——60 进制 BCD 码计数;
分——60 进制 BCDD 码计数;
时——24 进制 BCDD 码计数;
整个计数器有清零,调分,调时功能,在接近整数时间能提供报时信号。
○
2
.具有驱动 8 位八段共阴扫描数码管的片选驱动信号输出和八段字形译码输出。
○
3
.扬声器在整点时有报时驱动信号产生。
○
4
. LED 灯在整点时有花样显示信号产生。
2 设 计 过 程
多功能数字钟总体框图如下图所示。它由时钟记数模块(包括 HOUR、
MINUTE、SECOND 三个小模块)、驱动 8 位八段共阴扫描数码管的片选驱动信号输
出模块(SELTIME)、驱动八段字形译码输出模块(DELED)、整点报时驱动信号产
生模块(ALART)。
2.1 HOUR 模块
该模块的功能是:在时钟信号(CLK)的作用下可以生成波形;在清零信号
(RESET)作用下,即可清零如图 2-1。
if(reset='0') then
count<="000000";清零
elsif(clk' event and clk='1') then
河南农业大学 09~10EDA 实习报告(0704101053)
2
if(count(3 downto 0)="1001") then
if(count<16#24#)then
--count<16#24# === 十六进制的 24
[1]
count<=count+7;--实现进位
图 2-1
2.2 MINUTE 模块
该模块比较重要,SEHOUR 可以使 CLK 有效,在 CLK 的作用下对下位直接进
位,即 ENHOUR 有输出。RESET 起到清零作用。CLK1 作用下分钟位开始工作。DAOUT
为对照时间的分钟个位及十位的数值(如图 2-2)。
图 2-2
if(reset='0') then
count<="0000000";
elsif(sethour='0') then
enhour<=clk1;--调整小时
elsif(clk' event and clk='1') then
if(count(3 downto 0)="1001") then
if(count<16#60#) then
if(count="1011001") then
enhour<='1';count<="0000000";--向小时进位
else count<=count+7--分钟的个位向十位进位
2.3 SECOND 模块
时钟信号 CLK 起到计时,RESET 起到清零作用,SETMIN 可以通过控制 ENMIN
来实现对分钟的控制。DAOUT 输出对应时间的钞钟的个位及十位。(如图 2-3)
图 2-3
2.4 ALERT 模块
该模块功能:在时钟信号(CLK) ,SPEAK 输出接扬声器,(如图 2-4)
以产生整点报时发声。DANI 为条件,在条件信号作用下,SPEAK 和 LAMP 作
河南农业大学 09~10EDA 实习报告(0704101053)
3
图 2-4
if(rising_edge(clk))then
if(dain="000000") then
if(count<="10")then --cout 必须为小于等于 2
if(count="00")then
lamp<="001";--
elsif(count="01")then
lamp<="010";--
elsif(count="10")then
lamp<="100";--实现灯的花样显示
end if;
count<=count+1;
else count<="00";
2.5 SELTIME 模块
作用是驱动 8 位八段共阴扫描数码管的片选驱动信号输出,CLK1 是驱动信
号,RESET 作用是清零,SEC、MIN、HOUR 对应秒、分、时的数字值。sel 输出到
扫描数码管的片洗端, Daout 是输出的对应的时、分或秒的个十位对应的十六进
制的值(图 2-5)。
图 2-5
case count is
when"000"=>daout <=sec(3 downto 0);--秒的个位
when"001"=>daout(3)<='0';daout(2 downto 0)<=sec(6 downto 4);--秒的十位
when"010"=>daout <=min(3 downto 0);--分的个位
when"011"=>daout(3)<='0';daout(2 downto 0)<=min(6 downto 4);--分的十位
when"100"=>daout <=hour(3 downto 0);--小时的个位
when others=>daout(3 downto 2)<="00";daout(1 downto 0)<=hour(5 downto
4);--小时的十位
end case;----------关于片选的作用
[2]
(+++) DELED 模块(附加模块)
主要作用是接受片选得到的信号将其输入到八段共阴级数码管 7 个接口
评论1