- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数字电路课程设计精品
数字电路课程设计
一?数字电子钟 任务:用文本法或图形法设计一个能显示时、分、秒的数字电子钟要求:1?设计由晶振电路产生标准信号的单元电路 2时为00~23六十进制计数器,分、秒为00~59六十进制计数器;3?能够显示出时、分、秒;4?具有清零,调节分钟的功能;5?具有整点报时功能,整点报时的同时LED灯花样显示、声响电路发出叫声;6?对时、分、秒单元电路进行仿真并纪录;7?选作部分:具有定时闹钟功能,可在任意设定一时间,到时自动提醒,通过声响电路发出叫声。
秒计数模块VHDL(second.vhd)
秒计数模块中是以60进制进行循环的,故需要的秒数据输出应该是7位的,但是为了方便随后的调整时间模块设计,秒输出数据用8位二进制表示,其中低四位用于秒的低位,而高四位作为秒的高位。
另外在该模块下的程序由于考虑到系统功能中调整时钟和分钟的要求,故要在秒计数模块中另外加入复位信号(reset)以及分钟设置信号(setmin)。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY SECOND IS
PORT(RESET,CLK,SETMIN:IN STD_LOGIC;------系统时钟、复位、分设置信号
DAOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
-------------------------秒计数信号
ENMIN:OUT STD_LOGIC);-----------------------分进位信号
END SECOND;
ARCHITECTURE ART OF SECOND IS
SIGNAL COUNT:STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL COUNTER:STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL CARRY_OUT1:STD_LOGIC;
SIGNAL CARRY_OUT2:STD_LOGIC;
BEGIN
P1:PROCESS(RESET,CLK)
BEGIN
IF (RESET=0) THEN COUNT=0000;
COUNTER=0000;
ELSIF(CLKEVENT AND CLK=1) THEN
IF(COUNTER5) THEN
IF(COUNT=9) THEN
COUNT=0000;
COUNTER=COUNTER+1;
ELSE COUNT=COUNT+1;
END IF;
CARRY_OUT1=0;
ELSE
IF(COUNT=9) THEN
COUNT=0000;
COUNTER=0000;
CARRY_OUT1=1;
ELSE COUNT=COUNT+1;
CARRY_OUT1=0;
END IF;
END IF;
END IF;
END PROCESS P1;
DAOUT(7 DOWNTO 4)=COUNTER;
DAOUT(3 DOWNTO 0)=COUNT;
ENMIN=CARRY_OUT1 OR SETMIN;
END ART;
仿真结果:
分计数模块VHDL(minute.vhd)
分计数同秒计数基本相同,由于均是60进制的计数器,故思路完全一致。
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY MINUTE IS
PORT(CLK,EN,SETHOUR:IN STD_LOGIC;
DAOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO
文档评论(0)