具有闹铃的数字时钟设计.EDA课程设计
EDA课程设计报告书
课题名称 基于EDA的数字时钟设计 姓名 *** 学号 0812201-41 院系 物理与电信工程系 专业 电子信息工程 指导教师 *** 讲师
2011年 6月8日
设计任务及要求:
主要设计任务及要求如下:
1.数字显示当前的小时、分钟及秒钟;
2.可以预置为12小时计时显示或24小时计时显示;
3.时间修改功能:能进行小时、分钟以及秒钟的修改;
4.闹铃功能:能预置时间,并在相应时刻闹铃。
指导教师签名:
年 月 日 二、指导教师评语:
指导教师签名:
年 月 日
三、成绩
验收盖章
年 月 日 基于EDA的数字时钟设计
熊静平
(湖南城市学院物理与电信工程系电子信息工程专业,湖南益阳,41300)
1设计目的
1、学习复杂数字电路系统的设计。
2、运用VHDL设计一个多功能数字时钟。
2设计的主要内容和要求
1.数字显示当前的小时、分钟以及秒钟;
2.可以预置为12小时计时显示或24小时计时显示;
3.时间修改功能:能进行小时、分钟以及秒钟的修改;
4.闹铃功能:能预置时间,并在相应时刻闹铃。
3 整体设计方案
该设计的基本设计方案:电路由控制电路、两个60进制加法计数器、一个24进制加法计数器、译码器、显示器、闹铃电路组成。计数器对秒、分、小时进行计时,当计时到23时59分59秒(选择24小时计时方式)或11时59分59秒(选择12小时计时方式)时,来一个计数脉冲,则计数器清零,重新开始计时。译码器将计数器输出的BCD码计时结果转换成十进制送到显示器,显示器显示时、分、秒计时结果。当时间达到预置的闹铃时间时,输出高电平实现闹铃。总体设计框图如图3.1所示。
图 3.1 总体方案设计框图
4 软件电路的设计
4.1秒计时电路设计
本设计是采用VHDL语言来设计硬件电路,首先完成秒钟的计时程序,亦即完成一个60进制计时器的设计,源程序代码如下:
--秒钟的计时程序
LIBRARY ieee;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_unsigned.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
ENTITY second IS --实体,定义输入和输出端口
PORT(clk1,rst1:in std_logic;
cout1:out std_logic;
cq0:out std_logic_vector(3 downto 0);
cq1:out std_logic_vector(3 downto 0));
END second;
ARCHITECTURE behave of second is --结构体
SIGNAL d: std_logic_vector(3 downto 0);--定义信号d、g,作为中转量供进程使用 SIGNAL g: std_logic_vector(3 downto 0);
BEGIN
process(clk1,rst1,d,g) --进程开始
BEGIN
if (rst1 =1) then --当复位rst1=1时,秒计时复位
d =0000;
g =0000;
elsif(clk1EVENT and clk1=1)then --时钟的上升沿有效
if(d=9 and g=5)then --当d=9 且 g=5 时产生进位
cout1=1;
else
cout1=0;
end if;
if(d=9)then --d=9 则把d清零
d=0000;
if(g=5)then
g=0000;--在d=9的情况下,若g=5,将g清零,否则加1
else
g=g+1;
end if;
else
d=d+1; --d小于9时,d+1
end if;
原创力文档

文档评论(0)