EDA课程设计报告(多功能数字时钟的设计)

时间:2024.3.27

1 绪论

1.1设计目的

     本次设计的目的就是在掌握EDA实验开发系统的初步使用基础上,了解EDA技术,加深对计算机体系结构的理解。通过学习的VHDL语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识,学习VHDL基本单元电路的综合设计应用。通过对实用数字钟的设计,巩固和综合运用计算机原理的基本理论和方法,理论联系实际,提高设计、分析、解决计算机技术实际问题的独立工作能力。

1.2设计要求

   (1)熟练掌握VHDL语言的结构特点并能运用到具体实际中。

   (2)学会利用复杂的可编程逻辑器件进行简单的电子系统设计。

   (3)熟悉并掌握基于EDA实验开发系统设计实际问题的方法和步骤。

   (4)通过设计过程提高自己运用所学知识来分析解决问题的能力。

1.3设计内容

本课程设计中使用Altera公司的EP2C35系列的FPGA芯片,利用SOPC-NIOSII-EP2C35开发板上的资源和QuartusII软件,实现一个多功能数字时钟。本设计的任务要求显示格式为 小时-分钟-秒钟,整点报时,报时时间为10秒,即从整点前10秒钟开始进行报时提示,喇叭开始发声,直到过整点时,在 5秒LED开始闪烁,过整点后,停止闪烁。系统时钟选择时钟模块的10KHz,要得到1Hz时钟信号,必须对系统时钟进行10,000次分频。调整时间的的按键用按键模块的S1和S2,S1调节小时,每按下一次,小时增加一个小时,S2调整分钟,每按下一次,分钟增加一分钟。另外用S8按键作为系统时钟复位,复位后全部显示00-00-00。扩展内容:用16*16点阵显示实现日期的动态显示用4×4键盘阵列键盘替换按键实现日期、时钟的调整,用液晶显示模块日期、时间的显示。

1.4设计环境

    本次课题设计方要用到的开发环境是Altera公司的EDA设计工具软件QuartusII。

Altera公司的工作与EDA厂家紧密结合,使QuartusII软件可以与其它工业标准的设计输入、综合和校验工具相连接。设计者可以使用Altera或标准EDA输入工具进行设计,使用QuartusII编译器对Altera器件的设计进行编译,并使用Altera或其它EDA校验工具进行仿真。目前,QuartusII支持与Cadence,Mentor Graphics, Synopsys, Viewlogic等EDA工具接口。

QuartusII的设计输入、处理和校验功能都集中在统一的开发环境下,这样可以加快动态调试,缩短开发周期。

QuartusII软件支持多种硬件描述语言设计输入,包括VHDL,Verilog HDL和Altera自己的硬件描述语言AHDL。

    QuartusII软件提供丰富的库单元供设计调用,其中包括74系列的全部器件和一些基本的逻辑门,多种特殊的逻辑宏功能(Macro-Function)以及新型的参数化的兆功能(Mage-Function).调用库单元进行设计,可以大大减轻工作量。

                    

 2 VHDL简介                

2.1VHDL硬件描述语言简介

模块是VHDL的基本描述单位,用于描述某个设计的功能或结构及其与其他模块通信的外部端口。一个设计的结构可使用开关级原语、门级原语和用户定义的原语方式描述; 设计的数据流行为使用连续赋值语句进行描述; 时序行为使用过程结构描述。一个模块可以在另一个模块中使用。

说明部分用于定义不同的项,例如模块描述中使用的寄存器和参数。语句定义设计的功能和结构。说明部分和语句可以散布在模块中的任何地方;但是变量、寄存器、线网和参数等的说明部分必须在使用前出现。为了使模块描述清晰和具有良好的可读性, 最好将所有的说明部分放在语句前。本书中的所有实例都遵守这一规范。

在模块中,可用下述方式描述一个设计:

(1) 数据流方式;

(2) 行为方式;

(3) 结构方式;

(4) 上述描述方式的混合。

VHDL模型中的所有时延都根据时间单位定义。

在顺序过程中出现的语句是过程赋值模块化的实例。模块化过程赋值在下一条语句执行前完成执行。过程赋值可以有一个可选的时延。

时延可以细分为两种类型:

(1) 语句间时延: 这是时延语句执行的时延。

(2) 语句内时延: 这是右边表达式数值计算与左边表达式赋值间的时延。

在VHDL中可使用如下方式描述结构:

(1) 内置门原语(在门级);

(2) 开关级原语(在晶体管级);

(3) 用户定义的原语(在门级);

(4) 模块实例 (创建层次结构)。

3 各模块电路及其简介

3.1 分频器模块

          

                   图3.1 分频器模块

因为本实验选用频率为10KHZ,对于秒表的计时和进行数码管的动态扫描来说,频率都太大了,因此要将10KHz进行分频处理,本次设计将分成1Hz频率。

3.2 控制调节模块

图3.2 控制调节模块

  本模块用于时间与日期的切换与时间的调节、日期的调节以及复位调节,其中K1用于时间与日期的切换,S1、S2用于时间的调节,S3、S4、S5用于日期的调节,最后S8为复位按键。

3.3 报警模块

       

      图3.3 报警模块

  报警模块中有两个报警输出,其一为蜂鸣器,在整点前十秒开始发声;其二为LED灯显示输出,在最后5秒按照一定的规律亮灯。本模块受到前一模块输出分、秒的控制。

3.4 数码管显示模块

    

图3.4 数码管显示模块

很显然,此模块是用来进行数码管显示的,先进行动态扫描,然后将程序中要求输出的部分通过7段数码管显示出来。其中K1用于控制显示部分是日期还是时间。比之于静态显示,动态显示有着不可替代的优点:占用数据线少,功耗

小。

3.5 16*16点阵控制模块

        

图3.5 16*16点阵控制模块

  本模块用于控制后面的16*16点阵显示模块,其中keyc用于控制点阵的行扫描,S为4根数据总线,用于控制点阵数据的动态显示。

3.6 16*16点阵显示模块

            

                        图3.6 16*16点阵显示模块

  该模块用于满足实验内容中用16*16点阵动态显示日期的要求。可以看出,输出为每一行的数据,通过动态扫描之后就可以动态的显示所有的16行数据。

4 设计步骤

4.1新建一个工程

(1)打开Quartus II 12.1sp1仿真软件,点击File=>New Project Wizard按钮创建一个新的工程。弹出如图所示对话框:

   

(2)再点击Next按钮出现下一对话框并将工程名和文件名都命名为zjh:

(3)然后再点击Next按钮出现下一对话框将Family设置为cycloneIII,将Package设置为FBGA,将Picount设置为780,将Speed grade设置为8并选择EP3C80F780C8器件,如图所示:

(4)最后点击Next=>Finish按钮完成新工程的创建。

4.2新建一个VHDL文件

(1)点击File=>New按钮出现如图所示对话框:

          

(2)选择VHDL File完成文件创建,创建完成后如图所示:

4.3VHDL程序的编译及仿真

4.3.1VHDL程序的编译

    将编写好的符合实验要求的VHDL程序复制在上图所示的对话框内,然后点击Processing=>Start Compilation按钮开始进行编译,编译完成并确保程序无误后开始进行管脚分配。

4.3.2管脚分配

(1)点击Assignments=>Assignments Editor按钮出现如图所示对话框:

(2)再点击List、>>、OK按钮出现如图所示管脚分配对话框:

(3)然后按如下表所示的管脚顺序进行分配:

(4)分配完成后再进行一次编译以使管脚分配生效。

4.3.3下载与仿真

  用下载线将电脑USB接口和试验箱VGA接口相连接,点击Tools=>Programmer按钮将Output File内的文件添加进去,再点击Start按钮将结果下载到试验箱内。

观察并操作试验箱看仿真结果能否满足数字时钟的设计需求。

5 心得与体会

  这次的EDA课程设计是我大学的第三次课程设计,由于刚开始设计思路不清晰,对Quartus II 12.1sp1仿真软件的运用也不熟练而且相关的知识准备也不充分,所以拿到设计题目后感觉不知所措,不知道如何开始。但是通过一段时间的查阅资料和请教同学老师我发现设计多功能数字时钟也并不十分困难,在他们的帮助与指导下我的课程设计也就顺利的一步步展开。

通过这次课程设计让我体会到在实际的操作过程中,要把理论中所学的知识灵活地运用起来,在程序调试中会遇到各种各样的问题,而耐心就是我们最好的帮手,遇事不能急、不能慌,慢慢分析才能解决问题。这次课程设计提高了我解决问题的能力,使我学会了在设计中怎样去查找问题,然后怎样解决问题。

这次课程设计让我可以熟练的掌握了Quartus II 12.1sp1仿真软件的操作,也了解了如何运用VHDL语言和FPGA芯片去解决实际问题,总之通过这次课程设计自己还是有了不小的收获与提高。

6 参考文献

1 《SOPCIIEDA实验指导书》(第二版)

2 《SOPCII使用手册》(第二版)

3  http://jpkc.hdu.edu.cn/elec/eda/edanew_m/

4 《EDA技术基础》. 谭会生编著.  湖南大学出版社,2004

5 《EDA技术实用教程》(第三版),潘松、黄继业编著 ,科学出版社 ,2010

7附录

附录一 VHDL程序清单

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_arith.all;

use ieee.std_logic_unsigned.all;

--------------------------------------------------------------------

entity zjh is

  port( Clk       :  in   std_logic;   --时钟输入

        S8        :  in   std_logic;   --复位输入

        S1,S2     :  in   std_logic;   --Change Hour, Minute

        S3,S4,S5  :  in   std_logic;   --Change Year, Month and Day

        spk       :  out  std_logic;   --蜂鸣器

        led       :  out  std_logic_vector(3 downto 0);   --整点输报时输出

        Display   :  out  std_logic_vector(7 downto 0);   --七段码管显示输出

        SEG_SEL   :  buffer  std_logic_vector(2 downto 0); --七段码管扫描驱动

        keyc         :  out  std_logic_vector(3 downto 0);

        keyr         :  out  std_logic_vector(15 downto 0);

        K1        :  in   std_logic  --显示切换

       );     

end zjh;

--------------------------------------------------------------------

architecture behave of zjh is

  signal Disp_Temp     : integer range 0 to 15;

  signal Disp_Decode   : std_logic_vector(7 downto 0);

  signal SEC1,SEC10    : integer range 0 to 9;

  signal MIN1,MIN10    : integer range 0 to 9;

  signal HOUR1,HOUR10  : integer range 0 to 9;

  signal Year1,Year10  : integer range 0 to 9;

  signal Month1,Month10: integer range 0 to 9;

  signal Day1,Day10    : integer range 0 to 9;

  signal Music_Count   : std_logic_vector(2 downto 0);

  signal Clk_Count1    : std_logic_vector(13 downto 0);   --产生1Hz时钟的分频计数器

  signal Clk1Hz        : std_logic;

  signal led_count   : std_logic_vector(2 downto 0);

  signal led_display   : std_logic_vector(3 downto 0);

 

  signal cdount        : std_logic_vector(3 downto 0);

  signal dount         : std_logic_vector(12 downto 0);

  signal s             : std_logic_vector(3 downto 0);

  signal m,d,y          : integer range 0 to 31;

  begin

    process(Clk)

      begin

        if(Clk'event and Clk='1') then

           if(Clk_Count1<10000) then

             Clk_Count1<=Clk_Count1+1;

           else

             Clk_Count1<="00000000000001";

           end if;

        end if;

    end process;

    Clk1Hz<=Clk_Count1(13);

    process(Clk1Hz,S8)

      begin

        if(S8='0') then    --系统复位

           SEC1<=0;

           SEC10<=0;

           MIN1<=0;

           MIN10<=0;

           HOUR1<=0;

           HOUR10<=0;

           Year10 <= 1;

           Year1 <= 3;

           Month10 <= 0;

           Month1 <= 1;

           Day10 <= 0;

           Day1 <= 1;

        elsif(Clk1Hz'event and Clk1Hz='1') then    --正常运行               

          if (K1= '1') then

            if(S3='0') then   --调节年

              if(Year1=9) then

                 Year1<=0;

                 Year10<=Year10+1;

              elsif(Year10=9 and Year1=9) then

                 Year1<=0;

                 Year10<=0;

              else

                 Year1<=Year1+1;

              end if;

             end if;

           if(S4='0') then   --调节月

              if(Month1=9) then

                 Month1<=0;

                 Month10<=Month10+1;

              elsif(Month10=1 and Month1=2) then

                 Month1<=0;

                 Month10<=0;

                 Year1<=Year1+1;

              else

                 Month1<=Month1+1;

              end if;

             end if;

            if(S5='0') then   --调节日

              if(Day1=9) then

                 Day1<=0;

                 Day10<=Day10+1;

              elsif(Day10=3 and Day1=1) then

                 Day1<=0;

                 Day10<=0;

                 Month1<=Month1+1;

              else

                 Day1<=Day1+1;

              end if;

              end if;

      elsif (K1 = '0') then

         if(S1='0') then   --调节小时

              if(HOUR1=9) then

                 HOUR1<=0;

                 HOUR10<=HOUR10+1;

              elsif(HOUR10=2 and HOUR1=3) then

                 HOUR1<=0;

                 HOUR10<=0;

                 Day1<=Day1+1;

              else

                 HOUR1<=HOUR1+1;

              end if;

           elsif(S2='0') then  --调节分钟

              if(MIN1=9) then

                 MIN1<=0;

                 if(MIN10=5) then

                    MIN10<=0;

                    HOUR1<=HOUR1+1;

                 else

                    MIN10<=MIN10+1;

                 end if;

              else

                 MIN1<=MIN1+1;

              end if;

             end if;

           end if;

             if(SEC1=9) then

                       SEC1<=0;

                       if(SEC10=5) then

                          SEC10<=0;

                          if(MIN1=9) then

                             MIN1<=0;

                             if(MIN10=5) then

                                MIN10<=0;

                                if (HOUR10 >= 2 and HOUR1 >= 3) then

                                    HOUR10 <= 0;

                                    HOUR1 <= 0;

                                    -- Day += 1;

                                    if (Day10 = 3 and Day1 = 0) then

                                        Day10 <= 0;

                                        Day1 <= 1;

                                        -- Month += 1;

                                        if (Month10 = 1 and Month1 = 2) then

                                            Month10 <= 0;

                                            Month1 <= 1;

                                            -- Year += 1;

                                            if (Year10 = 9 and Year1 = 9) then

                                                Year10 <= 0;

                                                Year1 <= 0;

                                            end if;

                                            if (Year1 < 9) then

                                                Year1 <= Year1 + 1;

                                            elsif (Year1 = 9) then

                                                Year10 <= Year10 + 1;

                                                Year1 <= 0;

                                            end if;

                                        end if;

                                        if (Month1 < 9) then

                                            Month1 <= Month1 + 1;

                                        elsif (Month1 = 9) then

                                            Month10 <= Month10 + 1;

                                            Month1 <= 0;

                                        end if;

                                    end if;

                                    if (Day1 < 9) then

                                        Day1 <= Day1 + 1;

                                    elsif (Day1 = 9) then

                                        Day10 <= Day10 + 1;

                                        Day1 <= 0;

                                    end if;

                                elsif (HOUR1 < 9) then

                                    HOUR1 <= HOUR1 + 1;

                                elsif (HOUR1 = 9) then

                                    HOUR1 <= 0;

                                    HOUR10 <= HOUR10 + 1;

                                end if;

                             else

                                MIN10<=MIN10+1;

                             end if;

                          else

                             MIN1<=MIN1+1;

                          end if;

                       else

                          SEC10<=SEC10+1;

                       end if;

                    else

                       SEC1<=SEC1+1;

                    end if;

                   end if;

    end process;

 process(Clk)

      begin

        if(Clk'event and Clk='1') then

           Music_Count<=Music_Count+1;    

          if(MIN10=5 and MIN1=9 and SEC10=5 and SEC1=0) then    --在59分50秒开始提示

              if((SEC1 MOD 2)=0) then        --在偶数秒开始发声

                 SPK<=Music_Count(2);        --嘀

              else

                 SPK<='0';

              end if;

           elsif(MIN10=0 and MIN1=0 and SEC10=0 and SEC1=0) then

              SPK<=Music_Count(1);           --嗒

           else

              SPK<='0';

           end if;

        end if; 

    end process;

    process(Clk)

      begin

        if(Clk1hz'event and Clk1hz='1') then

              

          if(MIN10=5 and MIN1=9 and SEC10=5  and  SEC1>4) then    --在59分55秒开始提示

              led_Count<=led_Count+1;

          else

              led_count<="000";

           end if;

         end if; 

             end process;

 process(led_count)

      begin

        case (led_count) is

         when "000"=>led_display<="0000";

         when "001"=>led_display<="1001";

         when "010"=>led_display<="0110";

         when "011"=>led_display<="1010";

         when "100"=>led_display<="0101";

         when "101"=>led_display<="1111";

         when others=>led_display<="0000";

        end case; 

      led<=led_display;

    end process;

    process(SEG_SEL)     

      begin

        if (K1 = '1') then

           case (SEG_SEL+1) is

            when "000"=>Disp_Temp<=Year10;

            when "001"=>Disp_Temp<=Year1;

            when "010"=>Disp_Temp<=10;

            when "011"=>Disp_Temp<=Month10;

            when "100"=>Disp_Temp<=Month1;

            when "101"=>Disp_Temp<=10;

            when "110"=>Disp_Temp<=Day10;

            when "111"=>Disp_Temp<=Day1;

           end case;

        elsif (K1 = '0') then

               case (SEG_SEL+1) is

                when "000"=>Disp_Temp<=HOUR10;

                when "001"=>Disp_Temp<=HOUR1;

                when "010"=>Disp_Temp<=10;

                when "011"=>Disp_Temp<=MIN10;

                when "100"=>Disp_Temp<=MIN1;

                when "101"=>Disp_Temp<=10;

                when "110"=>Disp_Temp<=SEC10;

                when "111"=>Disp_Temp<=SEC1;

               end case;

        end if;

    end process;

    process(Clk)

      begin

        if(Clk'event and Clk='1') then    --扫描累加

           SEG_SEL<=SEG_SEL+1;

           Display<=Disp_Decode;

        end if;

    end process;

    process(Disp_Temp)      --显示转换

      begin

        case Disp_Temp is

          when 0=>Disp_Decode<="00111111";   --0

          when 1=>Disp_Decode<="00000110";   --1

          when 2=>Disp_Decode<="01011011";   --2

          when 3=>Disp_Decode<="01001111";   --3

          when 4=>Disp_Decode<="01100110";   --4

          when 5=>Disp_Decode<="01101101";   --5

          when 6=>Disp_Decode<="01111101";   --6

          when 7=>Disp_Decode<="00000111";   --7

          when 8=>Disp_Decode<="01111111";   --8

          when 9=>Disp_Decode<="01101111";   --9

          when 10=>Disp_Decode<="01000000";   ---

          when others=>Disp_Decode<="00000000";   --全灭

        end case;

    end process;

   

    

    process(clk) --显示时序控制    

      begin

      if  clk'event  and  clk='1'  then

               dount<=dount+1;

              if  dount=8191    then

                dount<="0000000000000";

                 if  S=15  then

                    S<="0000";

                 else

                    s<=S+1;

                 end  if;

                s<=s+1;

              else

                s<=S;

              end  if;

             if  cdount<15   then

            cdount<=cdount+1;

           else

             cdount<="0000";

           end  if;

      end  if;

      keyc<=cdount;

   end  process;

  process(s,cdount)                       

      begin

        m<=Month10*10+Month1;

        d<=Day10*10+Day1;

        y<=year10*10+year1;      

     if  s="0000"  then

       case cdount is

         when "0000"=>keyr<="1111111111111111";--20

         when "0001"=>keyr<="1100111110011111";

         when "0010"=>keyr<="1101011111101111";

         when "0011"=>keyr<="1101101111110111";

         when "0100"=>keyr<="1101110111110111";

         when "0101"=>keyr<="1101111011101111";

         when "0110"=>keyr<="1101111100011111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111000000011111";

         when "1010"=>keyr<="1110111111101111";

         when "1011"=>keyr<="1101111111110111";

         when "1100"=>keyr<="1101111111110111";

         when "1101"=>keyr<="1101111111110111";

         when "1110"=>keyr<="1110111111101111";

         when "1111"=>keyr<="1111000000011111";

         when others=>keyr<="1111111111111111";

       end case;

elsif   s="0001"  then

case y is

     when 13=>

       case cdount is

         when "0000"=>keyr<="1111111111111111";--13

         when "0001"=>keyr<="1111111111011111";

         when "0010"=>keyr<="1111111111001111";

         when "0011"=>keyr<="1100000000000111";

         when "0100"=>keyr<="1111111111111111";

         when "0101"=>keyr<="1111111111111111";

         when "0110"=>keyr<="1111111111111111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1110011111001111";

         when "1010"=>keyr<="1101111111110111";

         when "1011"=>keyr<="1101111111110111";

         when "1100"=>keyr<="1101111011110111";

         when "1101"=>keyr<="1101111011110111";

         when "1110"=>keyr<="1110000100001111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 14=>

       case cdount is

         when "0000"=>keyr<="1111111111111111";--14

         when "0001"=>keyr<="1111111111011111";

         when "0010"=>keyr<="1111111111001111";

         when "0011"=>keyr<="1100000000000111";

         when "0100"=>keyr<="1111111111111111";

         when "0101"=>keyr<="1111111111111111";

         when "0110"=>keyr<="1111111111111111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111100111111111";

         when "1010"=>keyr<="1111101011111111";

         when "1011"=>keyr<="1111101100111111";

         when "1100"=>keyr<="1111101111011111";

         when "1101"=>keyr<="1111101111101111";

         when "1110"=>keyr<="1100000000000111";

         when "1111"=>keyr<="1111101111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 15=>

       case cdount is

         when "0000"=>keyr<="1111111111111111";--15

         when "0001"=>keyr<="1111111111011111";

         when "0010"=>keyr<="1111111111001111";

         when "0011"=>keyr<="1100000000000111";

         when "0100"=>keyr<="1111111111111111";

         when "0101"=>keyr<="1111111111111111";

         when "0110"=>keyr<="1111111111111111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1110011100000111";

         when "1010"=>keyr<="1101111110110111";

         when "1011"=>keyr<="1101111110110111";

         when "1100"=>keyr<="1101111110110111";

         when "1101"=>keyr<="1101111110110111";

         when "1110"=>keyr<="1110000001110111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 16=>

       case cdount is

         when "0000"=>keyr<="1111111111111111";--16

         when "0001"=>keyr<="1111111111011111";

         when "0010"=>keyr<="1111111111001111";

         when "0011"=>keyr<="1100000000000111";

         when "0100"=>keyr<="1111111111111111";

         when "0101"=>keyr<="1111111111111111";

         when "0110"=>keyr<="1111111111111111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111000000011111";

         when "1010"=>keyr<="1110111011101111";

         when "1011"=>keyr<="1101111101110111";

         when "1100"=>keyr<="1101111101110111";

         when "1101"=>keyr<="1101111101110111";

         when "1110"=>keyr<="1110000011001111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 17=>

       case cdount is

         when "0000"=>keyr<="1111111111111111";--17

         when "0001"=>keyr<="1111111111011111";

         when "0010"=>keyr<="1111111111001111";

         when "0011"=>keyr<="1100000000000111";

         when "0100"=>keyr<="1111111111111111";

         when "0101"=>keyr<="1111111111111111";

         when "0110"=>keyr<="1111111111111111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111111111110111";

         when "1010"=>keyr<="1111111111110111";

         when "1011"=>keyr<="1100111111110111";

         when "1100"=>keyr<="1111000111110111";

         when "1101"=>keyr<="1111111000110111";

         when "1110"=>keyr<="1111111111000111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 18=>

       case cdount is

         when "0000"=>keyr<="1111111111111111";--18

         when "0001"=>keyr<="1111111111011111";

         when "0010"=>keyr<="1111111111001111";

         when "0011"=>keyr<="1100000000000111";

         when "0100"=>keyr<="1111111111111111";

         when "0101"=>keyr<="1111111111111111";

         when "0110"=>keyr<="1111111111111111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111001110011111";

         when "1010"=>keyr<="1110110101101111";

         when "1011"=>keyr<="1101111011110111";

         when "1100"=>keyr<="1101111011110111";

         when "1101"=>keyr<="1101111011110111";

         when "1110"=>keyr<="1110110101101111";

         when "1111"=>keyr<="1111001110011111";

         when others=>keyr<="1111111111111111";

       end case;

    when 19=>

       case cdount is

         when "0000"=>keyr<="1111111111111111";--19

         when "0001"=>keyr<="1111111111011111";

         when "0010"=>keyr<="1111111111001111";

         when "0011"=>keyr<="1100000000000111";

         when "0100"=>keyr<="1111111111111111";

         when "0101"=>keyr<="1111111111111111";

         when "0110"=>keyr<="1111111111111111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1110011000001111";

         when "1010"=>keyr<="1101110111110111";

         when "1011"=>keyr<="1101110111110111";

         when "1100"=>keyr<="1101110111110111";

         when "1101"=>keyr<="1110111011101111";

         when "1110"=>keyr<="1111000000011111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 20=>

       case cdount is

         when "0000"=>keyr<="1111111111111111";--20

         when "0001"=>keyr<="1100111110011111";

         when "0010"=>keyr<="1101011111101111";

         when "0011"=>keyr<="1101101111110111";

         when "0100"=>keyr<="1101110111110111";

         when "0101"=>keyr<="1101111011101111";

         when "0110"=>keyr<="1101111100011111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111000000011111";

         when "1010"=>keyr<="1110111111101111";

         when "1011"=>keyr<="1101111111110111";

         when "1100"=>keyr<="1101111111110111";

         when "1101"=>keyr<="1101111111110111";

         when "1110"=>keyr<="1110111111101111";

         when "1111"=>keyr<="1111000000011111";

         when others=>keyr<="1111111111111111";

       end case;

    when 21=>

       case cdount is

         when "0000"=>keyr<="1111111111111111";--21

         when "0001"=>keyr<="1100111110011111";

         when "0010"=>keyr<="1101011111101111";

         when "0011"=>keyr<="1101101111110111";

         when "0100"=>keyr<="1101110111110111";

         when "0101"=>keyr<="1101111011101111";

         when "0110"=>keyr<="1101111100011111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111111111011111";

         when "1010"=>keyr<="1111111111001111";

         when "1011"=>keyr<="1100000000000111";

         when "1100"=>keyr<="1111111111111111";

         when "1101"=>keyr<="1111111111111111";

         when "1110"=>keyr<="1111111111111111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

     elsif   s="0010"  then

      case cdount is    

    when"0000"=>keyr<="1111101110111111";

    when"0001"=>keyr<="1111101111011111";

    when"0010"=>keyr<="1111101111101111";

    when"0011"=>keyr<="1111101111110011";

    when"0100"=>keyr<="1111100000011100";

    when"0101"=>keyr<="1111101111011101";

    when"0110"=>keyr<="1111101111011101";

    when"0111"=>keyr<="1111101111011101";

    when"1000"=>keyr<="0000000000000001";

    when"1001"=>keyr<="1111101111011101";

    when"1010"=>keyr<="1111101111011101";

    when"1011"=>keyr<="1111101111011101";

    when"1100"=>keyr<="1111101111011101";

    when"1101"=>keyr<="1111101111111101";

    when"1110"=>keyr<="1111101111111111";

    when"1111"=>keyr<="1111111111111111";    

    when others=>keyr<="1111111111111111";      --年

      end case;

   elsif  s="0011"  then

   case m is

    when 1=>

         case cdount is

         when "0000"=>keyr<="1111111111111111"; --列显示01

         when "0001"=>keyr<="1111000000011111";

         when "0010"=>keyr<="1110111111101111";

         when "0011"=>keyr<="1101111111110111";

         when "0100"=>keyr<="1101111111110111";

         when "0101"=>keyr<="1101111111110111";

         when "0110"=>keyr<="1110111111101111";

         when "0111"=>keyr<="1111000000011111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111111111011111";

         when "1010"=>keyr<="1111111111001111";

         when "1011"=>keyr<="1100000000000111";

         when "1100"=>keyr<="1111111111111111";

         when "1101"=>keyr<="1111111111111111";

         when "1110"=>keyr<="1111111111111111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 2=>

         case cdount is

         when "0000"=>keyr<="1111111111111111"; --列显示02

         when "0001"=>keyr<="1111000000011111";

         when "0010"=>keyr<="1110111111101111";

         when "0011"=>keyr<="1101111111110111";

         when "0100"=>keyr<="1101111111110111";

         when "0101"=>keyr<="1101111111110111";

         when "0110"=>keyr<="1110111111101111";

         when "0111"=>keyr<="1111000000011111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1100111110011111";

         when "1010"=>keyr<="1101011111101111";

         when "1011"=>keyr<="1101101111110111";

         when "1100"=>keyr<="1101110111110111";

         when "1101"=>keyr<="1101111011101111";

         when "1110"=>keyr<="1101111100011111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 3=>

         case cdount is

         when "0000"=>keyr<="1111111111111111"; --列显示03

         when "0001"=>keyr<="1111000000011111";

         when "0010"=>keyr<="1110111111101111";

         when "0011"=>keyr<="1101111111110111";

         when "0100"=>keyr<="1101111111110111";

         when "0101"=>keyr<="1101111111110111";

         when "0110"=>keyr<="1110111111101111";

         when "0111"=>keyr<="1111000000011111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1110011111001111";

         when "1010"=>keyr<="1101111111110111";

         when "1011"=>keyr<="1101111111110111";

         when "1100"=>keyr<="1101111011110111";

         when "1101"=>keyr<="1101111011110111";

         when "1110"=>keyr<="1110000100001111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 4=>

         case cdount is

         when "0000"=>keyr<="1111111111111111"; --列显示04

         when "0001"=>keyr<="1111000000011111";

         when "0010"=>keyr<="1110111111101111";

         when "0011"=>keyr<="1101111111110111";

         when "0100"=>keyr<="1101111111110111";

         when "0101"=>keyr<="1101111111110111";

         when "0110"=>keyr<="1110111111101111";

         when "0111"=>keyr<="1111000000011111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111100111111111";

         when "1010"=>keyr<="1111101011111111";

         when "1011"=>keyr<="1111101100111111";

         when "1100"=>keyr<="1111101111011111";

         when "1101"=>keyr<="1111101111101111";

         when "1110"=>keyr<="1100000000000111";

         when "1111"=>keyr<="1111101111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 5=>

         case cdount is

         when "0000"=>keyr<="1111111111111111"; --列显示05

         when "0001"=>keyr<="1111000000011111";

         when "0010"=>keyr<="1110111111101111";

         when "0011"=>keyr<="1101111111110111";

         when "0100"=>keyr<="1101111111110111";

         when "0101"=>keyr<="1101111111110111";

         when "0110"=>keyr<="1110111111101111";

         when "0111"=>keyr<="1111000000011111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1110011100000111";

         when "1010"=>keyr<="1101111110110111";

         when "1011"=>keyr<="1101111110110111";

         when "1100"=>keyr<="1101111110110111";

         when "1101"=>keyr<="1101111110110111";

         when "1110"=>keyr<="1110000001110111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 6=>

         case cdount is

         when "0000"=>keyr<="1111111111111111"; --列显示06

         when "0001"=>keyr<="1111000000011111";

         when "0010"=>keyr<="1110111111101111";

         when "0011"=>keyr<="1101111111110111";

         when "0100"=>keyr<="1101111111110111";

         when "0101"=>keyr<="1101111111110111";

         when "0110"=>keyr<="1110111111101111";

         when "0111"=>keyr<="1111000000011111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111000000011111";

         when "1010"=>keyr<="1110111011101111";

         when "1011"=>keyr<="1101111101110111";

         when "1100"=>keyr<="1101111101110111";

         when "1101"=>keyr<="1101111101110111";

         when "1110"=>keyr<="1110000011001111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 7=>

         case cdount is

         when "0000"=>keyr<="1111111111111111"; --列显示07

         when "0001"=>keyr<="1111000000011111";

         when "0010"=>keyr<="1110111111101111";

         when "0011"=>keyr<="1101111111110111";

         when "0100"=>keyr<="1101111111110111";

         when "0101"=>keyr<="1101111111110111";

         when "0110"=>keyr<="1110111111101111";

         when "0111"=>keyr<="1111000000011111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111111111110111";

         when "1010"=>keyr<="1111111111110111";

         when "1011"=>keyr<="1100111111110111";

         when "1100"=>keyr<="1111000111110111";

         when "1101"=>keyr<="1111111000110111";

         when "1110"=>keyr<="1111111111000111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 8=>

         case cdount is

         when "0000"=>keyr<="1111111111111111"; --列显示08

         when "0001"=>keyr<="1111000000011111";

         when "0010"=>keyr<="1110111111101111";

         when "0011"=>keyr<="1101111111110111";

         when "0100"=>keyr<="1101111111110111";

         when "0101"=>keyr<="1101111111110111";

         when "0110"=>keyr<="1110111111101111";

         when "0111"=>keyr<="1111000000011111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111001110011111";

         when "1010"=>keyr<="1110110101101111";

         when "1011"=>keyr<="1101111011110111";

         when "1100"=>keyr<="1101111011110111";

         when "1101"=>keyr<="1101111011110111";

         when "1110"=>keyr<="1110110101101111";

         when "1111"=>keyr<="1111001110011111";

         when others=>keyr<="1111111111111111";

       end case;

    when 9=>

         case cdount is

         when "0000"=>keyr<="1111111111111111"; --列显示09

         when "0001"=>keyr<="1111000000011111";

         when "0010"=>keyr<="1110111111101111";

         when "0011"=>keyr<="1101111111110111";

         when "0100"=>keyr<="1101111111110111";

         when "0101"=>keyr<="1101111111110111";

         when "0110"=>keyr<="1110111111101111";

         when "0111"=>keyr<="1111000000011111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1110011000001111";

         when "1010"=>keyr<="1101110111110111";

         when "1011"=>keyr<="1101110111110111";

         when "1100"=>keyr<="1101110111110111";

         when "1101"=>keyr<="1110111011101111";

         when "1110"=>keyr<="1111000000011111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 10=>

         case cdount is

         when "0000"=>keyr<="1111111111111111";--列显示10

         when "0001"=>keyr<="1111111111011111";

         when "0010"=>keyr<="1111111111001111";

         when "0011"=>keyr<="1100000000000111";

         when "0100"=>keyr<="1111111111111111";

         when "0101"=>keyr<="1111111111111111";

         when "0110"=>keyr<="1111111111111111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111000000011111";

         when "1010"=>keyr<="1110111111101111";

         when "1011"=>keyr<="1101111111110111";

         when "1100"=>keyr<="1101111111110111";

         when "1101"=>keyr<="1101111111110111";

         when "1110"=>keyr<="1110111111101111";

         when "1111"=>keyr<="1111000000011111";

         when others=>keyr<="1111111111111111";

       end case;

    when 11=>

         case cdount is

         when "0000"=>keyr<="1111111111111111";--列显示11

         when "0001"=>keyr<="1111111111011111";

         when "0010"=>keyr<="1111111111001111";

         when "0011"=>keyr<="1100000000000111";

         when "0100"=>keyr<="1111111111111111";

         when "0101"=>keyr<="1111111111111111";

         when "0110"=>keyr<="1111111111111111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111111111011111";

         when "1010"=>keyr<="1111111111001111";

         when "1011"=>keyr<="1100000000000111";

         when "1100"=>keyr<="1111111111111111";

         when "1101"=>keyr<="1111111111111111";

         when "1110"=>keyr<="1111111111111111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 12=>

         case cdount is

         when "0000"=>keyr<="1111111111111111";--列显示12

         when "0001"=>keyr<="1111111111011111";

         when "0010"=>keyr<="1111111111001111";

         when "0011"=>keyr<="1100000000000111";

         when "0100"=>keyr<="1111111111111111";

         when "0101"=>keyr<="1111111111111111";

         when "0110"=>keyr<="1111111111111111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1100111110011111";

         when "1010"=>keyr<="1101011111101111";

         when "1011"=>keyr<="1101101111110111";

         when "1100"=>keyr<="1101110111110111";

         when "1101"=>keyr<="1101111011101111";

         when "1110"=>keyr<="1101111100011111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

      when others=>null;

    end case;

    elsif  s="0100"  then 

       case cdount is

         when "0000"=>keyr<="1111111111111111"; --列显示月

         when "0001"=>keyr<="1011111111111111";

         when "0010"=>keyr<="1000111111111111";

         when "0011"=>keyr<="1100000000000001";

         when "0100"=>keyr<="1111000000000001";

         when "0101"=>keyr<="1111110011011001";

         when "0110"=>keyr<="1111110011011001";

         when "0111"=>keyr<="1111110011011001";

         when "1000"=>keyr<="1111110011011001";

         when "1001"=>keyr<="1101110011011001";

         when "1010"=>keyr<="1001110011011001";

         when "1011"=>keyr<="1000000000000001";

         when "1100"=>keyr<="1100000000000001";

         when "1101"=>keyr<="1111111111111111";

         when "1110"=>keyr<="1111111111111111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    elsif  s="0101"  then

    case d is

      when 1=>

         case cdount is

         when "0000"=>keyr<="1111111111111111"; --列显示01

         when "0001"=>keyr<="1111000000011111";

         when "0010"=>keyr<="1110111111101111";

         when "0011"=>keyr<="1101111111110111";

         when "0100"=>keyr<="1101111111110111";

         when "0101"=>keyr<="1101111111110111";

         when "0110"=>keyr<="1110111111101111";

         when "0111"=>keyr<="1111000000011111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111111111011111";

         when "1010"=>keyr<="1111111111001111";

         when "1011"=>keyr<="1100000000000111";

         when "1100"=>keyr<="1111111111111111";

         when "1101"=>keyr<="1111111111111111";

         when "1110"=>keyr<="1111111111111111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

     when 2=>

         case cdount is

         when "0000"=>keyr<="1111111111111111"; --列显示02

         when "0001"=>keyr<="1111000000011111";

         when "0010"=>keyr<="1110111111101111";

         when "0011"=>keyr<="1101111111110111";

         when "0100"=>keyr<="1101111111110111";

         when "0101"=>keyr<="1101111111110111";

         when "0110"=>keyr<="1110111111101111";

         when "0111"=>keyr<="1111000000011111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1100111110011111";

         when "1010"=>keyr<="1101011111101111";

         when "1011"=>keyr<="1101101111110111";

         when "1100"=>keyr<="1101110111110111";

         when "1101"=>keyr<="1101111011101111";

         when "1110"=>keyr<="1101111100011111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 3=>

         case cdount is

         when "0000"=>keyr<="1111111111111111"; --列显示03

         when "0001"=>keyr<="1111000000011111";

         when "0010"=>keyr<="1110111111101111";

         when "0011"=>keyr<="1101111111110111";

         when "0100"=>keyr<="1101111111110111";

         when "0101"=>keyr<="1101111111110111";

         when "0110"=>keyr<="1110111111101111";

         when "0111"=>keyr<="1111000000011111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1110011111001111";

         when "1010"=>keyr<="1101111111110111";

         when "1011"=>keyr<="1101111111110111";

         when "1100"=>keyr<="1101111011110111";

         when "1101"=>keyr<="1101111011110111";

         when "1110"=>keyr<="1110000100001111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 4=>

         case cdount is

         when "0000"=>keyr<="1111111111111111"; --列显示04

         when "0001"=>keyr<="1111000000011111";

         when "0010"=>keyr<="1110111111101111";

         when "0011"=>keyr<="1101111111110111";

         when "0100"=>keyr<="1101111111110111";

         when "0101"=>keyr<="1101111111110111";

         when "0110"=>keyr<="1110111111101111";

         when "0111"=>keyr<="1111000000011111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111100111111111";

         when "1010"=>keyr<="1111101011111111";

         when "1011"=>keyr<="1111101100111111";

         when "1100"=>keyr<="1111101111011111";

         when "1101"=>keyr<="1111101111101111";

         when "1110"=>keyr<="1100000000000111";

         when "1111"=>keyr<="1111101111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 5=>

         case cdount is

         when "0000"=>keyr<="1111111111111111"; --列显示05

         when "0001"=>keyr<="1111000000011111";

         when "0010"=>keyr<="1110111111101111";

         when "0011"=>keyr<="1101111111110111";

         when "0100"=>keyr<="1101111111110111";

         when "0101"=>keyr<="1101111111110111";

         when "0110"=>keyr<="1110111111101111";

         when "0111"=>keyr<="1111000000011111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1110011100000111";

         when "1010"=>keyr<="1101111110110111";

         when "1011"=>keyr<="1101111110110111";

         when "1100"=>keyr<="1101111110110111";

         when "1101"=>keyr<="1101111110110111";

         when "1110"=>keyr<="1110000001110111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 6=>

         case cdount is

         when "0000"=>keyr<="1111111111111111"; --列显示06

         when "0001"=>keyr<="1111000000011111";

         when "0010"=>keyr<="1110111111101111";

         when "0011"=>keyr<="1101111111110111";

         when "0100"=>keyr<="1101111111110111";

         when "0101"=>keyr<="1101111111110111";

         when "0110"=>keyr<="1110111111101111";

         when "0111"=>keyr<="1111000000011111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111000000011111";

         when "1010"=>keyr<="1110111011101111";

         when "1011"=>keyr<="1101111101110111";

         when "1100"=>keyr<="1101111101110111";

         when "1101"=>keyr<="1101111101110111";

         when "1110"=>keyr<="1110000011001111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 7=>

         case cdount is

         when "0000"=>keyr<="1111111111111111"; --列显示07

         when "0001"=>keyr<="1111000000011111";

         when "0010"=>keyr<="1110111111101111";

         when "0011"=>keyr<="1101111111110111";

         when "0100"=>keyr<="1101111111110111";

         when "0101"=>keyr<="1101111111110111";

         when "0110"=>keyr<="1110111111101111";

         when "0111"=>keyr<="1111000000011111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111111111110111";

         when "1010"=>keyr<="1111111111110111";

         when "1011"=>keyr<="1100111111110111";

         when "1100"=>keyr<="1111000111110111";

         when "1101"=>keyr<="1111111000110111";

         when "1110"=>keyr<="1111111111000111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 8=>

         case cdount is

         when "0000"=>keyr<="1111111111111111"; --列显示08

         when "0001"=>keyr<="1111000000011111";

         when "0010"=>keyr<="1110111111101111";

         when "0011"=>keyr<="1101111111110111";

         when "0100"=>keyr<="1101111111110111";

         when "0101"=>keyr<="1101111111110111";

         when "0110"=>keyr<="1110111111101111";

         when "0111"=>keyr<="1111000000011111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111001110011111";

         when "1010"=>keyr<="1110110101101111";

         when "1011"=>keyr<="1101111011110111";

         when "1100"=>keyr<="1101111011110111";

         when "1101"=>keyr<="1101111011110111";

         when "1110"=>keyr<="1110110101101111";

         when "1111"=>keyr<="1111001110011111";

         when others=>keyr<="1111111111111111";

       end case;

    when 9=>

         case cdount is

         when "0000"=>keyr<="1111111111111111"; --列显示09

         when "0001"=>keyr<="1111000000011111";

         when "0010"=>keyr<="1110111111101111";

         when "0011"=>keyr<="1101111111110111";

         when "0100"=>keyr<="1101111111110111";

         when "0101"=>keyr<="1101111111110111";

         when "0110"=>keyr<="1110111111101111";

         when "0111"=>keyr<="1111000000011111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1110011000001111";

         when "1010"=>keyr<="1101110111110111";

         when "1011"=>keyr<="1101110111110111";

         when "1100"=>keyr<="1101110111110111";

         when "1101"=>keyr<="1110111011101111";

         when "1110"=>keyr<="1111000000011111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 10=>

         case cdount is

         when "0000"=>keyr<="1111111111111111";--列显示10

         when "0001"=>keyr<="1111111111011111";

         when "0010"=>keyr<="1111111111001111";

         when "0011"=>keyr<="1100000000000111";

         when "0100"=>keyr<="1111111111111111";

         when "0101"=>keyr<="1111111111111111";

         when "0110"=>keyr<="1111111111111111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111000000011111";

         when "1010"=>keyr<="1110111111101111";

         when "1011"=>keyr<="1101111111110111";

         when "1100"=>keyr<="1101111111110111";

         when "1101"=>keyr<="1101111111110111";

         when "1110"=>keyr<="1110111111101111";

         when "1111"=>keyr<="1111000000011111";

         when others=>keyr<="1111111111111111";

       end case;

    when 11=>

         case cdount is

         when "0000"=>keyr<="1111111111111111";--列显示11

         when "0001"=>keyr<="1111111111011111";

         when "0010"=>keyr<="1111111111001111";

         when "0011"=>keyr<="1100000000000111";

         when "0100"=>keyr<="1111111111111111";

         when "0101"=>keyr<="1111111111111111";

         when "0110"=>keyr<="1111111111111111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111111111011111";

         when "1010"=>keyr<="1111111111001111";

         when "1011"=>keyr<="1100000000000111";

         when "1100"=>keyr<="1111111111111111";

         when "1101"=>keyr<="1111111111111111";

         when "1110"=>keyr<="1111111111111111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 12=>

         case cdount is

         when "0000"=>keyr<="1111111111111111";--列显示12

         when "0001"=>keyr<="1111111111011111";

         when "0010"=>keyr<="1111111111001111";

         when "0011"=>keyr<="1100000000000111";

         when "0100"=>keyr<="1111111111111111";

         when "0101"=>keyr<="1111111111111111";

         when "0110"=>keyr<="1111111111111111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1100111110011111";

         when "1010"=>keyr<="1101011111101111";

         when "1011"=>keyr<="1101101111110111";

         when "1100"=>keyr<="1101110111110111";

         when "1101"=>keyr<="1101111011101111";

         when "1110"=>keyr<="1101111100011111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 13=>

       case cdount is

         when "0000"=>keyr<="1111111111111111";--13

         when "0001"=>keyr<="1111111111011111";

         when "0010"=>keyr<="1111111111001111";

         when "0011"=>keyr<="1100000000000111";

         when "0100"=>keyr<="1111111111111111";

         when "0101"=>keyr<="1111111111111111";

         when "0110"=>keyr<="1111111111111111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1110011111001111";

         when "1010"=>keyr<="1101111111110111";

         when "1011"=>keyr<="1101111111110111";

         when "1100"=>keyr<="1101111011110111";

         when "1101"=>keyr<="1101111011110111";

         when "1110"=>keyr<="1110000100001111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 14=>

       case cdount is

         when "0000"=>keyr<="1111111111111111";--14

         when "0001"=>keyr<="1111111111011111";

         when "0010"=>keyr<="1111111111001111";

         when "0011"=>keyr<="1100000000000111";

         when "0100"=>keyr<="1111111111111111";

         when "0101"=>keyr<="1111111111111111";

         when "0110"=>keyr<="1111111111111111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111100111111111";

         when "1010"=>keyr<="1111101011111111";

         when "1011"=>keyr<="1111101100111111";

         when "1100"=>keyr<="1111101111011111";

         when "1101"=>keyr<="1111101111101111";

         when "1110"=>keyr<="1100000000000111";

         when "1111"=>keyr<="1111101111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 15=>

       case cdount is

         when "0000"=>keyr<="1111111111111111";--15

         when "0001"=>keyr<="1111111111011111";

         when "0010"=>keyr<="1111111111001111";

         when "0011"=>keyr<="1100000000000111";

         when "0100"=>keyr<="1111111111111111";

         when "0101"=>keyr<="1111111111111111";

         when "0110"=>keyr<="1111111111111111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1110011100000111";

         when "1010"=>keyr<="1101111110110111";

         when "1011"=>keyr<="1101111110110111";

         when "1100"=>keyr<="1101111110110111";

         when "1101"=>keyr<="1101111110110111";

         when "1110"=>keyr<="1110000001110111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 16=>

       case cdount is

         when "0000"=>keyr<="1111111111111111";--16

         when "0001"=>keyr<="1111111111011111";

         when "0010"=>keyr<="1111111111001111";

         when "0011"=>keyr<="1100000000000111";

         when "0100"=>keyr<="1111111111111111";

         when "0101"=>keyr<="1111111111111111";

         when "0110"=>keyr<="1111111111111111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111000000011111";

         when "1010"=>keyr<="1110111011101111";

         when "1011"=>keyr<="1101111101110111";

         when "1100"=>keyr<="1101111101110111";

         when "1101"=>keyr<="1101111101110111";

         when "1110"=>keyr<="1110000011001111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 17=>

       case cdount is

         when "0000"=>keyr<="1111111111111111";--17

         when "0001"=>keyr<="1111111111011111";

         when "0010"=>keyr<="1111111111001111";

         when "0011"=>keyr<="1100000000000111";

         when "0100"=>keyr<="1111111111111111";

         when "0101"=>keyr<="1111111111111111";

         when "0110"=>keyr<="1111111111111111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111111111110111";

         when "1010"=>keyr<="1111111111110111";

         when "1011"=>keyr<="1100111111110111";

         when "1100"=>keyr<="1111000111110111";

         when "1101"=>keyr<="1111111000110111";

         when "1110"=>keyr<="1111111111000111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 18=>

       case cdount is

         when "0000"=>keyr<="1111111111111111";--18

         when "0001"=>keyr<="1111111111011111";

         when "0010"=>keyr<="1111111111001111";

         when "0011"=>keyr<="1100000000000111";

         when "0100"=>keyr<="1111111111111111";

         when "0101"=>keyr<="1111111111111111";

         when "0110"=>keyr<="1111111111111111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111001110011111";

         when "1010"=>keyr<="1110110101101111";

         when "1011"=>keyr<="1101111011110111";

         when "1100"=>keyr<="1101111011110111";

         when "1101"=>keyr<="1101111011110111";

         when "1110"=>keyr<="1110110101101111";

         when "1111"=>keyr<="1111001110011111";

         when others=>keyr<="1111111111111111";

       end case;

    when 19=>

       case cdount is

         when "0000"=>keyr<="1111111111111111";--19

         when "0001"=>keyr<="1111111111011111";

         when "0010"=>keyr<="1111111111001111";

         when "0011"=>keyr<="1100000000000111";

         when "0100"=>keyr<="1111111111111111";

         when "0101"=>keyr<="1111111111111111";

         when "0110"=>keyr<="1111111111111111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1110011000001111";

         when "1010"=>keyr<="1101110111110111";

         when "1011"=>keyr<="1101110111110111";

         when "1100"=>keyr<="1101110111110111";

         when "1101"=>keyr<="1110111011101111";

         when "1110"=>keyr<="1111000000011111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 20=>

       case cdount is

         when "0000"=>keyr<="1111111111111111";--20

         when "0001"=>keyr<="1100111110011111";

         when "0010"=>keyr<="1101011111101111";

         when "0011"=>keyr<="1101101111110111";

         when "0100"=>keyr<="1101110111110111";

         when "0101"=>keyr<="1101111011101111";

         when "0110"=>keyr<="1101111100011111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111000000011111";

         when "1010"=>keyr<="1110111111101111";

         when "1011"=>keyr<="1101111111110111";

         when "1100"=>keyr<="1101111111110111";

         when "1101"=>keyr<="1101111111110111";

         when "1110"=>keyr<="1110111111101111";

         when "1111"=>keyr<="1111000000011111";

         when others=>keyr<="1111111111111111";

       end case;

    when 21=>

       case cdount is

         when "0000"=>keyr<="1111111111111111";--21

         when "0001"=>keyr<="1100111110011111";

         when "0010"=>keyr<="1101011111101111";

         when "0011"=>keyr<="1101101111110111";

         when "0100"=>keyr<="1101110111110111";

         when "0101"=>keyr<="1101111011101111";

         when "0110"=>keyr<="1101111100011111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111111111011111";

         when "1010"=>keyr<="1111111111001111";

         when "1011"=>keyr<="1100000000000111";

         when "1100"=>keyr<="1111111111111111";

         when "1101"=>keyr<="1111111111111111";

         when "1110"=>keyr<="1111111111111111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 22=>

       case cdount is

         when "0000"=>keyr<="1111111111111111";--22

         when "0001"=>keyr<="1100111110011111";

         when "0010"=>keyr<="1101011111101111";

         when "0011"=>keyr<="1101101111110111";

         when "0100"=>keyr<="1101110111110111";

         when "0101"=>keyr<="1101111011101111";

         when "0110"=>keyr<="1101111100011111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1100111110011111";

         when "1010"=>keyr<="1101011111101111";

         when "1011"=>keyr<="1101101111110111";

         when "1100"=>keyr<="1101110111110111";

         when "1101"=>keyr<="1101111011101111";

         when "1110"=>keyr<="1101111100011111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 23=>

       case cdount is

         when "0000"=>keyr<="1111111111111111";--23

         when "0001"=>keyr<="1100111110011111";

         when "0010"=>keyr<="1101011111101111";

         when "0011"=>keyr<="1101101111110111";

         when "0100"=>keyr<="1101110111110111";

         when "0101"=>keyr<="1101111011101111";

         when "0110"=>keyr<="1101111100011111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1110011111001111";

         when "1010"=>keyr<="1101111111110111";

         when "1011"=>keyr<="1101111111110111";

         when "1100"=>keyr<="1101111011110111";

         when "1101"=>keyr<="1101111011110111";

         when "1110"=>keyr<="1110000100001111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 24=>

       case cdount is

         when "0000"=>keyr<="1111111111111111";--24

         when "0001"=>keyr<="1100111110011111";

         when "0010"=>keyr<="1101011111101111";

         when "0011"=>keyr<="1101101111110111";

         when "0100"=>keyr<="1101110111110111";

         when "0101"=>keyr<="1101111011101111";

         when "0110"=>keyr<="1101111100011111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111100111111111";

         when "1010"=>keyr<="1111101011111111";

         when "1011"=>keyr<="1111101100111111";

         when "1100"=>keyr<="1111101111011111";

         when "1101"=>keyr<="1111101111101111";

         when "1110"=>keyr<="1100000000000111";

         when "1111"=>keyr<="1111101111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 25=>

       case cdount is

         when "0000"=>keyr<="1111111111111111";--25

         when "0001"=>keyr<="1100111110011111";

         when "0010"=>keyr<="1101011111101111";

         when "0011"=>keyr<="1101101111110111";

         when "0100"=>keyr<="1101110111110111";

         when "0101"=>keyr<="1101111011101111";

         when "0110"=>keyr<="1101111100011111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1110011100000111";

         when "1010"=>keyr<="1101111110110111";

         when "1011"=>keyr<="1101111110110111";

         when "1100"=>keyr<="1101111110110111";

         when "1101"=>keyr<="1101111110110111";

         when "1110"=>keyr<="1110000001110111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 26=>

       case cdount is

         when "0000"=>keyr<="1111111111111111";--26

         when "0001"=>keyr<="1100111110011111";

         when "0010"=>keyr<="1101011111101111";

         when "0011"=>keyr<="1101101111110111";

         when "0100"=>keyr<="1101110111110111";

         when "0101"=>keyr<="1101111011101111";

         when "0110"=>keyr<="1101111100011111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111000000011111";

         when "1010"=>keyr<="1110111011101111";

         when "1011"=>keyr<="1101111101110111";

         when "1100"=>keyr<="1101111101110111";

         when "1101"=>keyr<="1101111101110111";

         when "1110"=>keyr<="1110000011001111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 27=>

       case cdount is

         when "0000"=>keyr<="1111111111111111";--27

         when "0001"=>keyr<="1100111110011111";

         when "0010"=>keyr<="1101011111101111";

         when "0011"=>keyr<="1101101111110111";

         when "0100"=>keyr<="1101110111110111";

         when "0101"=>keyr<="1101111011101111";

         when "0110"=>keyr<="1101111100011111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111111111110111";

         when "1010"=>keyr<="1111111111110111";

         when "1011"=>keyr<="1100111111110111";

         when "1100"=>keyr<="1111000111110111";

         when "1101"=>keyr<="1111111000110111";

         when "1110"=>keyr<="1111111111000111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 28=>

       case cdount is

         when "0000"=>keyr<="1111111111111111";--28

         when "0001"=>keyr<="1100111110011111";

         when "0010"=>keyr<="1101011111101111";

         when "0011"=>keyr<="1101101111110111";

         when "0100"=>keyr<="1101110111110111";

         when "0101"=>keyr<="1101111011101111";

         when "0110"=>keyr<="1101111100011111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111001110011111";

         when "1010"=>keyr<="1110110101101111";

         when "1011"=>keyr<="1101111011110111";

         when "1100"=>keyr<="1101111011110111";

         when "1101"=>keyr<="1101111011110111";

         when "1110"=>keyr<="1110110101101111";

         when "1111"=>keyr<="1111001110011111";

         when others=>keyr<="1111111111111111";

       end case;

    when 29=>

       case cdount is

          when "0000"=>keyr<="1111111111111111";--29

         when "0001"=>keyr<="1100111110011111";

         when "0010"=>keyr<="1101011111101111";

         when "0011"=>keyr<="1101101111110111";

         when "0100"=>keyr<="1101110111110111";

         when "0101"=>keyr<="1101111011101111";

         when "0110"=>keyr<="1101111100011111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1110011000001111";

         when "1010"=>keyr<="1101110111110111";

         when "1011"=>keyr<="1101110111110111";

         when "1100"=>keyr<="1101110111110111";

         when "1101"=>keyr<="1110111011101111";

         when "1110"=>keyr<="1111000000011111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

    when 30=>

       case cdount is

         when "0000"=>keyr<="1111111111111111";--30

         when "0001"=>keyr<="1110011111001111";

         when "0010"=>keyr<="1101111111110111";

         when "0011"=>keyr<="1101111111110111";

         when "0100"=>keyr<="1101111011110111";

         when "0101"=>keyr<="1101111011110111";

         when "0110"=>keyr<="1110000100001111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111000000011111";

         when "1010"=>keyr<="1110111111101111";

         when "1011"=>keyr<="1101111111110111";

         when "1100"=>keyr<="1101111111110111";

         when "1101"=>keyr<="1101111111110111";

         when "1110"=>keyr<="1110111111101111";

         when "1111"=>keyr<="1111000000011111";

         when others=>keyr<="1111111111111111";

       end case;

    when 31=>

       case cdount is

         when "0000"=>keyr<="1111111111111111";--31

         when "0001"=>keyr<="1110011111001111";

         when "0010"=>keyr<="1101111111110111";

         when "0011"=>keyr<="1101111111110111";

         when "0100"=>keyr<="1101111011110111";

         when "0101"=>keyr<="1101111011110111";

         when "0110"=>keyr<="1110000100001111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111111111011111";

         when "1010"=>keyr<="1111111111001111";

         when "1011"=>keyr<="1100000000000111";

         when "1100"=>keyr<="1111111111111111";

         when "1101"=>keyr<="1111111111111111";

         when "1110"=>keyr<="1111111111111111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

       when others=>null;

    end case;

elsif   s="0110"  then

       case cdount is

         when "0000"=>keyr<="1111111111111111"; --列显示显示日

         when "0001"=>keyr<="1111111111111111";

         when "0010"=>keyr<="1111111111111111";

         when "0011"=>keyr<="1000000000000000";

         when "0100"=>keyr<="1000000000000000";

         when "0101"=>keyr<="1100111100111100";

         when "0110"=>keyr<="1100111100111100";

         when "0111"=>keyr<="1100111100111100";

         when "1000"=>keyr<="1100111100111100";

         when "1001"=>keyr<="1100111100111100";

         when "1010"=>keyr<="1100111100111100";

         when "1011"=>keyr<="1000000000000000";

         when "1100"=>keyr<="1000000000000000";

         when "1101"=>keyr<="1111111111111111";

         when "1110"=>keyr<="1111111111111111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

elsif  s="0111"  then

       case cdount is

         when "0000"=>keyr<="1111111111111111";--kongbai

         when "0001"=>keyr<="1111111111111111";

         when "0010"=>keyr<="1111111111111111";

         when "0011"=>keyr<="1111111111111111";

         when "0100"=>keyr<="1111111111111111";

         when "0101"=>keyr<="1111111111111111";

         when "0110"=>keyr<="1111111111111111";

         when "0111"=>keyr<="1111111111111111";

         when "1000"=>keyr<="1111111111111111";

         when "1001"=>keyr<="1111111111111111";

         when "1010"=>keyr<="1111111111111111";

         when "1011"=>keyr<="1111111111111111";

         when "1100"=>keyr<="1111111111111111";

         when "1101"=>keyr<="1111111111111111";

         when "1110"=>keyr<="1111111111111111";

         when "1111"=>keyr<="1111111111111111";

         when others=>keyr<="1111111111111111";

       end case;

      end if;

 end process;

end behave;

附录二 总体设计原理图

附录三 仿真结果图

      

      

更多相关推荐:
数字电路课程设计-多功能数字时钟设计报告(免费下载)

多功能数字时钟设计报告目录一设计任务和要求2二设计的方案的选择与论证21总体电路分析22仿真分析33仿真说明3三电路设计计算与分析41小时计时电路42分钟计时电路53秒钟计时电路74校时选择电路85整点译码电路...

多功能数字钟课程设计报告

数字电路课程设计报告课题多功能数字时钟姓名学号班级专业电子信息工程指导老师20xx年6月15日目录一设计课题1二设计任务1三设计要求1四分析及设计过程1五组装及调试过程7六设计心得及总结7一设计课题多功能数字钟...

多功能数字钟课程设计报告

多功能数字钟课程设计报告班级:计算机1002姓名:***学号:***指导老师:**完成日期:20**年1月10日1、设计任务及要求(1)拥有正常的是、分、秒计时功能;(2)能利用实验板上的案件实现校时、较分及秒…

多功能数字钟课程设计报告

多功能数字钟课程设计要求多功能数字钟课程设计报告注此表可加附页

多功能数字钟—数电课程设计报告

《多功能数字钟电路设计与制作》课程设计报告班级:建筑设施智能技术二班姓名:**学号:**指导教师:20XX年11月19日一、内容摘要3二、设计内容及要求3三、总设计原理3四、单元电路的设计61、基于NE555的…

数字系统设计课程设计报告——多功能数字钟

电子信息学院课程设计报告课程名称:《数字系统设计课程设计》题目:多功能数字钟设计年级/专业/班:20##级电科X班学生姓名1:xxx学号:学生姓名2:xxx学号:2014年7月1日目录1课程设计目标和流程分析.…

多功能数字钟课程设计报告

电子时钟课程设计电子时钟课程设计报告班级文通0741姓名学号20xx905121共页第页电子时钟课程设计多功能数字钟课程设计报告一课程设计题目多功能数字钟二实验目的了解多功能数字电子钟的工作原理学习数字系统设计...

EDA课程设计——多功能数字钟课程设计报告

多功能数字电子钟一设计要求1具有以二十四小时计时显示整点报时时间设置和闹钟的功能2设计精度要求为1S二系统功能描述1系统输入系统状态及校时定时转换的控制信号为kmodeset时钟信号clk采用1024Hz系统复...

多功能数字钟课程设计

沈阳航空工业学院课程设计论文题目多功能数字钟的设计班级学号学生姓名指导教师1目录0前言41总体方案设计错误未定义书签2硬件电路的设计721单片机主机系统电路的设计22汽车信号灯模拟系统电路的设计221输入口电路...

大学生课设多功能数字钟课程设计报告

石家庄经济学院信息工程学院电子信息工程与通信工程专业电子技术课程设计报告题目多功能数字钟姓名赵竞竞学号班级指导教师王清20xx年6月30日要求1指导教师按照课程设计大纲要求完成学生课程设计指导工作2课程设计任务...

数字钟课程设计报告书

目录摘要I第一章课题背景111电子技术课程设计概要111电子技术课程设计的目的与意义1112电子技术课程设计的方法和步骤112设计任务与要求3121数字钟的设计目的3121数字钟的设计要求3第二章设计简介及设计...

数字钟课程设计报告

黄石理工学院电气与电子信息学院电子设计与实训课程设计任务书专业班级实训时间二周班分组情况每组12人指导老师一实训题目直流稳压电源和多功能数字钟二实训目的1巩固和加深学生对模拟电子技术数字逻辑电路等课程基本知识的...

多功能数字钟课程设计报告(22篇)