数字钟设计初级版资料

上传人:pu****.1 文档编号:459023194 上传时间:2023-11-02 格式:DOCX 页数:13 大小:492.82KB
返回 下载 相关 举报
数字钟设计初级版资料_第1页
第1页 / 共13页
数字钟设计初级版资料_第2页
第2页 / 共13页
数字钟设计初级版资料_第3页
第3页 / 共13页
数字钟设计初级版资料_第4页
第4页 / 共13页
数字钟设计初级版资料_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《数字钟设计初级版资料》由会员分享,可在线阅读,更多相关《数字钟设计初级版资料(13页珍藏版)》请在金锄头文库上搜索。

1、一 数子钟设计原理和基于 Quarturs n的设计流程1.1 数字钟设计原理首先下载程序进行复位清零操作,电子钟从00: 00: 00计时开始。sethour可以调整时 钟的小时部分,setmin 可以调整分钟,步进为1。由于电子钟的最小计时单位是1s,因此提供给系统的内部的时钟频率应该大于 1Hz,这里 取100Hz。CLK连接外部10Hz的时钟输入信号clk。对clk进行计数,当clk=10时,秒加1, 当秒加到60时,分加1;当分加到60时,时加1;当时加到24时,全部清0,从新计时。用6位数码管分别显示“时”、“分”、“秒”,通过OUTPUT( 6 DOWNTO的信号来点 亮指定的L

2、EDt段显示数码管。该系统由振荡器、分频器、“时、分、秒”计数器、译码器及显示器、校时电路等组成。 石英晶体振荡器和分频器产生整个系统的时基信号,它直接决定计时系统的精度。“秒计数器” 采用六十进制计数器,每累计60秒向“分计数器”进位;“分计数器”采用六十进制计数器, 每累计60分向“时计数器”进位;“时计数器”采用二十四进制计数器,按照“24翻1”规律计数。”时、分、秒”计数器的输出经译码器送显示器显示。校时电路用来当计时出现误差 时对“时、分、秒”进行校对调整。1.2 Quarturs H的设计流程图选计文件遗置约束 a rtu3 II分析与南化Oua rtus IIQuartus II

3、功能仿耳配置煽程文件 aof * pof布局布战后的 仿其文件Vvo/vha/.sdcQuartos II)领附序仿真配置编程需件irr?r /图1-1设计流程图二系统框图及程序清单2.1系统框图图2-1系统框图2.2源程序2.2.1 小时计数器VHDL言源程序LIBRARY IEEE;use IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY hour ISPORT(clk,reset:IN STD_LOGIC;daout:out STD_LOGIC_VECTOR(5 DOWNTO 0);END ENTITY hour

4、;ARCHITECTURE fun OF hour ISSIGNAL count:STD_LOGIC_VECTOR(5 DOWNTO 0);BEGINdaout=count;PROCESS(clk,reset)BEGINIF(reset=0)THEN count=000000;若 reset=0,则异步清零ELSIF(clkevent and clk=1)THEN否则,若 clk 上升沿到IF(count(3 DOWNTO 0)=1001)THEN若个位计时恰好到“ 1001 即 9IF(count16#23#)THEN23 进制count=count+7;若到 23D 则else count

5、=000000”;复 0END IF;ELSIF (count16#23#)THEN若未至U 23D ,贝U count 进 1否则清零count=count+1;ELSEcount=000000”;END IF;END IF ( count(3 DOWNTO 0 ) = “ 1001)”END IF; END IF (reset= ) 0END PROCESS;END fun;2.2.2 分钟计数器VHDL言源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY minute ISP

6、ORT(clk,clk1,reset,sethour:IN STD_LOGIC;enhour:OUT STD_LOGIC;daout:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END ENTITY minute ;ARCHITECTURE fun OF minute ISSIGNAL count :STD_LOGIC_VECTOR (6 DOWNTO 0);SIGNAL enhour_1, enhour_2: STD_LOGIC; enmin_1 为 59 分时的进位信号BEGIN enmin_2 由 clk 调制后的手动调时脉冲信号串daout=count;enhou

7、r_2= (sethour and clk1); sethour 为手动调时控制信号,高电平有效enhour= (enhour_1 or enhour_2);PROCESS(clk,reset,sethour)BEGINIF(reset=0) THEN 若 reset 为 0 ,则异步清零 count=0000000;ELSIF(clkevent and clk=1)THEN 否则,若 clk 上升沿到IF(count (3 DOWNTO 0) =1001)THEN 若个位计时恰好到 “ 1001即” 9IF(count 16#60#) THEN 又若 count 小于16#60#,即60IF

8、(count=1011001) THEN 又若已到 59D enhour_1=1; 则置进位为1count=0000000; count 复 0ELSEcount=count+7; 若 count 未到 59D ,则加7 ,即作“加 6 校正 ”END IF; 使前面的 16#60#的个位转变为 8421BCD 的容量ELSEcount=0000000; count 复 0(有此句,则对无效状态电路可自启动)END IF; END IF (count16#60#)ELSIF (count 16#60#) THEN count=count+1; 若 count16#60# 则 count 加 1

9、 enhour_1=0 after 100 ns; 没有发生进位ELSEcount=0000000; 否则,若 count 不小于 16#60# count 复 0END IF; END IF ( count ( 3 DOWNTO 0 ) =“ 1001)”END IF; END IF (reset= ) 0END process;END fun;2.2.3 秒钟计数器VHDL言源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY second ISPORT( clk,reset,s

10、etmin:STD_LOGIC;enmin:OUT STD_LOGIC;daout:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END ENTITY second;ARCHITECTURE fun OF second ISSIGNAL count:STD_LOGIC_VECTOR(6 DOWNTO 0);SIGNAL enmin_1,enmin_2:STD_LOGIC; enmin_1 为 59 秒时的进位信号BEGIN enmin_2 由 clk 调制后的手动调分脉冲信号串daout=count;enmin_2=(setmin and clk); setmin 为手动调

11、分控制信号,高电平有效enmin=(enmin_1 or enmin_2); enmin 为向分进位信号PROCESS(clk,reset,setmin)BEGINIF(reset=0)THEN count=0000000; 若 reset为 0,则异步清零ELSIF(clk event and clk=1)then 否则,若 clk 上升沿到IF(count(3 downto 0)=1001)then 若个位计时恰好到 “ 1001即” 9IF(count16#60#)then 又若 count 小于16#60#,即 60HIF(count=1011001)then 又若已到 59Denmi

12、n_1=1;count=0000000; 则置进位为 1 及 count 复 0ELSE 未到 59D count=count+7; 则加 7,而+7=+1+6 ,即作 “加 6 校正 ”END IF;ELSE 若count不小于16#60# (即count等于或大于16#60#) count=0000000; count 复 0END IF;END IF (count16#60#)ELSIF(count16#60#)then 若个位计数未到 “ 1001则转此句再判” count=count+1;若 count16#60# 则 count 加 1enmin_1=0after 100 ns;

13、没有发生进位ELSE 否则,若 count 不小于 16#60#count=0000000;则 count 复 0END IF;END IF ( count( 3 DOWNTO 0) =“ 1001)”END IF;END IF (reset= ) 0END PROCESS;END fun;2.2.4 顶层文件library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity DigitalClock isport(clk,en,rst : in std_logic;ADJEN : in std_log

14、ic;AlarmEn: in std_logic;alarmADJ: in std_logic;ADJ: in std_logic_vector(3 downto 0);sound : out std_logic;hour_unit : out std_logic_vector(3 downto 0); hour_decade : out std_logic_vector(3 downto 0);min_unit : out std_logic_vector(3 downto 0); min_decade : out std_logic_vector(3 downto 0);sec_unit : out std_logic_vector(3 downto 0); sec_decade : out std_logic_vector(3 downto 0);dote1: out std_logic_vector(3 downto 0);dote2: out std_logic_vector(3 downto 0);end ;architecture bhv of DigitalClock iscomponent hourport(rst,carry,en : in std_logic;ADJc

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号