当前位置:   article > 正文

最近用VHDL语言写的数字钟_数字钟设计实验vhdl

数字钟设计实验vhdl

数字钟设计

一、实验目的:

1.熟悉和掌握基本电子计数器及数码显示的工作原理

2.能独立的完成基本电子计数器的设计,并由此设计出带一定功能的电子钟

二、实验要求

设计一个能进行时、分、秒计时的十二小时制或二十四小时制的数字钟,并具有定时与闹钟功能,能在设定的时间发出闹铃音,能非常方便地对小时、分钟和秒进行手动调节以校准时间,每逢整点,产生报时音报时。

三、实验平台:

MAX+PLUSII10.1

四、实验过程

一)、总体思路:

   这是一个电子钟,其功能如下:可以实现正常的时钟功能,可以调整时间,整点会报时(用显示灯表示),同时还可以设置闹钟,可以显示所设的闹钟值,闹钟有分响铃(用批示灯表示)。在需要校正时间时,不需要暂停时间,可以像在手机上操作一样,用三个调整键,分别对小时调整(CHANGEH),对分钟的第一位调整(CHANGETM),对分钟的第二位调整(CHANGEM)。为了更好的操作,加一个UPDOWN键,为1时,则是每次加1,为0时,则是每次减1。对闹钟进行设置时,不影响正常的计时模块,所以不分影响准确的时间。对每一部分的操作则是通过总的控制模块来实现的。

 

 

整个数字钟的系统框图如下图所示:

 

 

 

 

该数字钟的硬件系统示意图如下图所示:

 

 

二)、模块及代码和波形图:

1、正常计时模块:

★、六进制计数器COUNT6VHDL代码:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_ARITH.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY COUNT6 IS

 PORT( CLK,UPDOWN,CLR,P:IN STD_LOGIC;

       Q:BUFFER STD_LOGIC_VECTOR(2 DOWNTO 0);

       COUT:OUT STD_LOGIC);

END COUNT6;

 

ARCHITECTURE RTL OF COUNT6 IS

BEGIN

 PROCESS(CLK,CLR,P)

 BEGIN

  IF(CLR='0')THEN

    Q<="000";

    COUT<='0';

  ELSIF(CLK'EVENT)AND(CLK='1')THEN

      IF(P='0')THEN

           IF(Q="101")THEN

              Q<="000";

              COUT<='1';

           ELSE Q<=Q+1;

              COUT<='0';

           END IF;

      ELSE

        IF(UPDOWN='1')THEN

           IF(Q="101")THEN

              Q<="000";

              COUT<='0';

           ELSE Q<=Q+1;

              COUT<='0';

           END IF;

        ELSE 

           IF(Q="000")THEN

              Q<="101";

              COUT<='0';

           ELSE Q<=Q-1;

              COUT<='0';

           END IF;

        END IF;

      END IF;

  END IF;

 END PROCESS;

END RTL;

COUNT6波形仿真图:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/550235
推荐阅读
  

闽ICP备14008679号