教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 互联网资料 >

数字逻辑课程设计报告-电子钟(2)

来源:网络收集 时间:2026-08-27
导读: a 校时模块最初的图形: 3整点报时模块: 59’50’‘起 OR SPEAKER 整点 a整点报时模块VHDL源程序: 此模块主要完成 整点的报时功能。它通过对预设的时间和计时的时间的比较来完成整点报时,当计时到达59分50秒时开

a 校时模块最初的图形:

3整点报时模块:

59’50’‘起 OR SPEAKER

整点

a整点报时模块VHDL源程序: 此模块主要完成

整点的报时功能。它通过对预设的时间和计时的时间的比较来完成整点报时,当计时到达59分50秒时开始报时,在59分50、52、54、56、58秒鸣叫,鸣叫声频为500Hz。到达59分60秒时为最后一声整点报时。整点报时的频率为1Kz。该模块的VHDL代码为: library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all; entity alert_31 is

port(m1,m0,s1,s0:in std_logic_vector(3 downto 0); siga,sigb:out std_logic); end alert_31;

architecture alert of alert_31 is

begin

siga<='1'when(m1=\and m0=\and s1=\and (s0=\or

s0=\ sigb<='1'when(m1=\end alert;

b报时生成器件图:

本模块端口说明:m1,m0,s1,s0分别为分和秒的高低位的输入;siga,sigb分别为500hz和1khz鸣叫的控制信号。

功能实现:定义一个以m1、m0、s1、s0为敏感信号的一个比较进程,在进程判断分是否为59分,若是则判断秒的高位是否是5,若是则如果秒的低位为0、2、6、8则siga为1;若分不是59则判断分和秒是否都为0,若都为0则sigb为1。

4分频模块: CLK

a分频生成器件图: 计数器1 计数器2 计数器3 1KHZ 500HZ 1HZ

b源代码: library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all; entity fenpin_31 is

port (clk:in std_logic;

hz512,hz256,hz64,hz4,hz1:out std_logic);

end fenpin_31;

architecture fenpin of fenpin_31 is

signal cc: std_logic_vector(9 downto 0); begin

process(clk) begin

if(clk'event and clk='1') then if(cc=\ cc<=\ else

cc<=cc+1; end if; end if; end process; hz512<=cc(0); hz256<=cc(1); hz64<=cc(3); hz4<=cc(7); hz1<=cc(9); end fenpin;

C分频仿真波形图:

模块说明:由于clk的频率为1024hz,所以可以定义一个std_logic_vecture(9 downto 0),使它不停地从0000000000加到1111111111然后又返回000000000,由于最低位在clk

脉冲到来时从0变成1,然后又在下一个脉冲变回0,因此最低位的时钟周期为clk的时钟周期的两倍,它的频率就为clk频率的1/2即512HZ。同理,次高位的频率就为clk频率的1/2*1/2=1/4,用这种方法就可以得到各种能整除1024的频率,从而实现分频功能。

5. 24进制模块

a 24进制器件生成图

b 24进制源程序:

library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity hour24_31 is

port (clk:in std_logic;

h1,h0:out std_logic_vector(3 downto 0)); end hour24_31;

architecture hour of hour24_31 is

signal q1,q0:std_logic_vector(3 downto 0); begin

process(clk) begin

if(clk'event and clk='1')then if(q1=\ q1<=\ elsif(q0=\

q0<=\ else

q0<=q0+'1'; end if; end if; h1<=q1; h0<=q0; end process; end hour;

c 24进制仿真波形图:

本模块端口说明:clk输入端;h1和h0分别为小时的高位和低位输出,用来在数码管中分别显示小时的高位和低位数值,定义为std_logic_vector(3 downto 0).

功能实现:在clk上升沿来临时,如果高位为2,低位为3则高位各低位都变回0,不然再低位进行判断,若低位为9变回0,高位加1,若不为9则低位直接加1即可同样实现.

6.60进制模块:

a 60进制器件生成图:

b 60进制源程序:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity cnt60_31 is -----60进制的分和秒的计数 port (clk:in std_logic; clear:in std_logic; c:out std_logic;

k1,k0:out std_logic_vector(3 downto 0)); end cnt60_31;

architecture cnt of cnt60_31 is

signal q1,q0:std_logic_vector(3 downto 0); begin

process(clk,clear) begin

…… 此处隐藏:313字,全部文档内容请下载后查看。喜欢就下载吧 ……
数字逻辑课程设计报告-电子钟(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/444264.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)