下载此文档

EDA课程设计报告数字电子钟.doc


文档分类:办公文档 | 页数:约12页 举报非法文档有奖
1/12
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/12 下载此文档
文档列表 文档介绍
一、【课题要求】
、秒、分、时的12小时数字钟。

、六十进制、十二进制等所需进制的计数器。

<注意>
1、。
2、设置两个按钮,一个供“开始”及“停止”使用,一个供系统“复位”用。
3、时钟显示使用数码管显示。
4、“时显示”部分注意12点后显示1点。
5、注意各部分的关系,由低位到高位逐级设计、调试。
二、【分析与设计】
数字钟是计数器的综合应用,数字钟由十分之一秒、秒钟、分钟、时钟组成,十分之一秒由十进制计数器74160组成,秒钟由六十进制计数器构成,分钟由六十进制计数器,时钟由十二进制计数器构成。
该数字钟程序的底层文件主要有六进制计数器模块、六十进制计数器模块和十二进制模块,对各模块进行封装,供顶层文件调用,各模块有VHDL文本设计及原理图设计。
输入端clk是连续脉冲,clrn是高电平系统复位,en是高电平使能端,输出端是十分之一秒位、秒钟个位、秒钟十位、分钟个位、分钟十位、时钟个位、时钟十位,最后由7个数码管显示各位的值。
该数字钟程序的底层文件主要有六进制计数器模块、六十进制计数器模块和十二进制模块,对各模块进行封装,供顶层文件调用,各模块有VHDL文本设计及原理图设计。
程序框图:
进位
进位

六进制计数器
六十进制计数器
十进制计数器
十分之一秒秒钟分钟小时
进位
进位
进位
十进制计数器
六十进制计数器
十二进制计数器
六十进制计数器
三、【程序代码及原理图】
1、六进制计数器
VHDL代码:
LIBRARY IEEE;
USE ;
USE ;
ENTITY cout6 IS
PORT(clk,en,clrn,load:IN STD_LOGIC;
date:IN STD_LOGIC_VECTOR(2 DOWNTO 0);
cnt:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);
co:OUT STD_LOGIC );
END cout6;
ARCHITECTURE behave OF cout6 IS
SIGNAL q:STD_LOGIC_VECTOR(2 DOWNTO 0);
BEGIN
co<='1' WHEN((q="101")AND(en='1'))ELSE'0';
PROCESS(en,clk)
BEGIN
IF clrn='0' THEN
q<="000";
ELSIF(clk'event and clk='1') THEN
IF load='0' THEN
q<=date;
ELSIF en='1' THEN
q<=q+1;
IF(q="101")THEN
q<="000";
END IF;
END IF;
END IF;
END PROCESS;
cnt<=q;
END behave;
波形仿真:

2、六十进制计数器
原理图:
波形仿真:
3、十二进制计数器
VHDL代码:
LIBRARY IEEE;
USE ;
USE ;
ENTITY cout12 IS
PORT(clk,clrn,ldn,en:IN STD_LOGIC;
ha:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
hb:IN STD_LOGIC;
qa:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
qb:out STD_LOGIC);
END cout12;
ARCHITECTURE behav OF cout12 IS
SIGNAL q:STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL b:STD_LOGIC;
SIGNAL a:STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
PROCESS(en,clk)
BEGIN
IF clrn='0' THEN
q<="0000";
ELSIF(clk'event and clk='1') THEN
IF ldn='0' THEN
b<=hb;
a<=ha;
ELSIF en='1' THEN
q<=q+1;
IF(q="1011")TH

EDA课程设计报告数字电子钟 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数12
  • 收藏数0 收藏
  • 顶次数0
  • 上传人xgs758698
  • 文件大小289 KB
  • 时间2018-11-12