1、EDA电子钟多功能数字时钟课程设计含代码优秀 多功能数字时钟设计说明:1系统顶层框图: 各模块电路功能如下:1.秒计数器、分计数器、时计数器组成最基本的数字钟,其计数输出送7段译码电路由数码管显示.2.基准频率分频器可分频出标准的1HZ频率信号,用于秒计数的时钟信号;分频出4HZ频率信号,用于校时、校分的快速递增信号;分频出64HZ频率信号,用于对按动“校时”,“校分”按键的消除抖动.2.多功能数字钟结构框图:一、系统功能概述已完成功能1.完成时分秒的依次显示并正确计数,利用六位数码管显示;2.时分秒各段个位满10正确进位,秒分能做到满60向前进位,有系统时间清零功能;3.定时器:实现整点报时
2、,通过扬声器发出高低报时声音;4.时间设置,也就是手动调时功能:当认为时钟不准确时,可以分别对分时钟进行调整;5.闹钟:实现分/时闹钟设置,在时钟到达设定时间时通过扬声器响铃.有静音模式. 待改进功能:1. 系统没有万年历功能,正在思考设计方法.2. 应添加秒表功能.二、系统组成以及系统各部分的设计1.时计数模块时计数模块就是一个2位10进制计数器,记数到23清零.VHDL的RTL描述如下:-cnt_h.vhdlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt_h is port
3、(en,clk,clr:in std_logic; dout:out std_logic_vector(7 downto 0); c:out std_logic);end cnt_h;architecture rtl of cnt_h issignal t:std_logic_vector(7 downto 0);begin process(en,clk,clr) variable t:std_logic_vector(7 downto 0); begin if en=1 then -异步使能 if clk event and clk=1 then t:=t+1; if t(3 downto
4、0)=XA then -个位等于10则十位加1 t(7 downto 4):=t(7 downto 4)+1; t(3 downto 0):=X0; -个位清零 end if; if tX23 then -大于23清零 t:=X00; end if; end if; if clr=1 then -异步清零 t:=X00; end if; end if; dout=t; end process;end rtl;时计数器模块仿真波形如下从仿真波形可知,当计数到23时,下一个时钟上升沿到来时就清零了,符合设计要求.时计数模块框图如下2.分及秒计数模块分及秒计数模块也是一个2位10进制计数器,记数到5
5、9清零.VHDL的RTL描述如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt_s is port(en,clk,clr:in std_logic; dout:buffer std_logic_vector(7 downto 0); c:out std_logic);end cnt_s;architecture rtl of cnt_s isbegin process(en,clk,clr) begin if en=1 then if clr=1 then -异步清零 do
6、ut=X00; elsif clk event and clk=1 then if dout(3 downto 0)9 then dout(3 downto 0)=dout(3 downto 0)+1; c=0; elsif dout(7 downto 4)5 then dout(3 downto 0)=X0; dout(7 downto 4)=dout(7 downto 4)+1; else dout=X00; c=1; end if; end if; else dout10 then dout=1;t:=t-1; else dout=0; end if; end if; else dout
7、=0;t:=0; end if; end process;end rtl;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ring is port( clk: in std_logic; clk500: in std_logic; clk1k:in std_logic; beep:out std_logic);end ring;architecture rtl of ring isbegin process(clk) variable t: std_logic; variable n
8、: integer range 0 to 15:=0; begin if clk event and clk=1 then t:=not t;n:=n+1; end if; if t=1 and n11 then beep=clk500; elsif n=11 then beep=clk1k; else beepsys_en,clk=clk_h,clr=sys_rst,dout=reg_h); 米:cnt_s port 米ap(en=sys_en,clk=clk_米,clr=sys_rst,dout=reg_米,c=c_米); s:cnt_s port 米ap(en=sys_en,clk=sy
9、s_clk1,clr=SCc,dout=reg_s,c=c_s); -sled:seg米ain port 米ap(clk=clk1,reset_n=SCc,seg_data=seg_data,seg_co米=seg_co米,datain=dout(15 downto 0); -ring0:ring port 米ap(en=en_r,clk=clk_ring,clk500=sys_clk500,clk1k=sys_clk1k,beep=beep); haoin1:haoin port 米ap( SA,sys_clk64,SAc); haoin2:haoin port 米ap( SB,sys_cl
10、k64,SBc); haoin3:haoin port 米ap( SC,sys_clk64,SCc); haoin4:haoin port 米ap( SD,sys_clk64,SDc); NL:naoling port 米ap(beep=NL_ring,h=reg_h,米=reg_米,clk4hzh=sys_clk4_NL_h,clk4hz米=sys_clk4_NL_米,sys_en=sys_en,sys_rst=sys_rst,h_o=NL_reg_h,米_o=NL_reg_米); beep=clk_ring and 米h; -led=reg_s(3 downto 0); p_sys_clk
11、:process(clk1) variable t1,t4,t64,t500,t1k:integer range 0 to 50000000; begin if clk1 event and clk1=1 then t1:=t1+1; t4:=t4+1; t64:=t64+1; t500:=t500+1; t1k:=t1k+1; if t1=clki/2 then t1:=0; sys_clk1=not sys_clk1; end if; if t4=clki/8 then t4:=0; sys_clk4=not sys_clk4; end if; if t64=clki/128 then t
12、64:=0; sys_clk64=not sys_clk64; end if; if t500=clki/1000 then t500:=0; sys_clk500=not sys_clk500; end if; if t1k=clki/2000 then t1k:=0; sys_clk1k=not sys_clk1k; end if; end if; end process p_sys_clk; p_c:process(SAc,SBc,SCc,SDc) begin if SAc=1 and SDc=0 then clk_h=sys_clk4; else clk_h=c_米; end if;
13、if SAc=1 and SDc=1 then sys_clk4_NL_h=sys_clk4; else sys_clk4_NL_h=0; end if; if SBc=1 and SDc=0then clk_米=sys_clk4; else clk_米=c_s; end if; if SBc=1 and SDc=1then sys_clk4_NL_米=sys_clk4; else sys_clk4_NL_米=0; end if; if SDc=0 then dout(7 downto 0)=reg_s; dout(15 downto 8)=reg_米; dout(23 downto 16)=reg_h; else dout(7 downto 0)=ZZZZZZZZ; dout(15 downto 8)=NL_reg_米; dout(23 downto 16)1 then 米h=1; end if; clk_ring=clk_ring_t;end process p_ring;end rtl;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1