基于EDA的数字时钟设计.EDA课程设计_第1页
基于EDA的数字时钟设计.EDA课程设计_第2页
基于EDA的数字时钟设计.EDA课程设计_第3页
基于EDA的数字时钟设计.EDA课程设计_第4页
基于EDA的数字时钟设计.EDA课程设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 EDA 课程设计报告书课题名称 基于EDA 的数字时钟设计姓名 熊静平 学号 0812201-41 院系 物理与电信工程系 专业电子信息工程 指导教师周来秀 讲师2011年 6月8日 2008级学生EDA 课程设计一、设计任务及要求:主要设计任务及要求如下:1.数字显示当前的小时、分钟及秒钟;2.可以预置为12小时计时显示或24小时计时显示;3.时间修改功能:能进行小时、分钟以及秒钟的修改;4.闹铃功能:能预置时间,并在相应时刻闹铃。指导教师签名:年月日二、指导教师评语:指导教师签名:年月日三、成绩验收盖章年月日基于EDA的数字时钟设计熊静平(湖南城市学院物理与电信工程系电子信息工程专业,湖

2、南益阳,413001设计目的1、学习复杂数字电路系统的设计。2、运用VHDL设计一个多功能数字时钟。2设计的主要内容和要求1.数字显示当前的小时、分钟以及秒钟;2.可以预置为12小时计时显示或24小时计时显示;3.时间修改功能:能进行小时、分钟以及秒钟的修改;4.闹铃功能:能预置时间,并在相应时刻闹铃。3 整体设计方案该设计的基本设计方案:电路由控制电路、两个60进制加法计数器、一个24进制加法计数器、译码器、显示器、闹铃电路组成。计数器对秒、分、小时进行计时,当计时到23时59分59秒(选择24小时计时方式或11时59分59秒(选择12小时计时方式时,来一个计数脉冲,则计数器清零,重新开始计

3、时。译码器将计数器输出的BCD码计时结果转换成十进制送到显示器,显示器显示时、分、秒计时结果。当时间达到预置的闹铃时间时,输出高电平实现闹铃。总体设计框图如图3.1所示。控制电路时钟输入秒钟计数器分钟计数器时钟计数器译码电路数码显示闹铃电路图 3.1 总体方案设计框图4 软件电路的设计4.1秒计时电路设计本设计是采用VHDL语言来设计硬件电路,首先完成秒钟的计时程序,亦即完成一个60进制计时器的设计,源程序代码如下:-秒钟的计时程序LIBRARY ieee;ENTITY second IS -实体,定义输入和输出端口PORT(clk1,rst1:in std_logic;cout1:out s

4、td_logic;cq0:out std_logic_vector(3 downto 0;cq1:out std_logic_vector(3 downto 0;END second;ARCHITECTURE behave of second is -结构体SIGNAL d: std_logic_vector(3 downto 0;-定义信号d、g,作为中转量供进程使用SIGNAL g: std_logic_vector(3 downto 0;BEGINprocess(clk1,rst1,d,g -进程开始BEGINif (rst1 ='1' then -当复位rst1=1时,

5、秒计时复位d <="0000"g <="0000"elsif(clk1'EVENT and clk1='1'then -时钟的上升沿有效if(d=9 and g=5then -当d=9 且g=5 时产生进位cout1<='1'elsecout1<='0'end if;if(d=9then -d=9 则把d清零d<="0000"if(g=5theng<="0000"-在d=9的情况下,若g=5,将g清零,否则加1elseg&l

6、t;=g+1;end if;elsed<=d+1; -d小于9时,d+1end if;end if;end process;cq0<=d;cq1<=g; -将信号d和g分别赋给输出的cq0和cq1 end behave;clk1是时钟输入信号,rst1是秒钟复位信号, cout1作为下一模块分钟计时的时钟信号,cq0,cq1为输出信号最后,接在动态译码管芯片上,编译完成后生成秒计时器的硬件电路,如图4.1中second部分所示。此外在时钟输入端加入一个调秒(tiaomiao信号,与clk1一起采用或门输入,用以实现调秒功能。完整的秒计时电路如图4.1所示。clk1rst1co

7、ut1cq03.0cq13.0secondinst4OR2inst8VCC clk1INPUT VCC tiaomiao INPUT VCCrst1INPUT图4.1 秒计时电路4.2 分计时电路设计和秒计时电路相比较,分秒计时器都是60进制的计数器,所以只需在秒计时电路下级串联一个秒计时器即可完成分计时电路的设计。设计电路如图4.2所示。clk1rst1cout1cq03.0cq13.0secondinst2clk1rst1cout1cq03.0cq13.0secondinst10OR2inst8VCCtiaof enINPUT图4.2 分计时电路上一级秒计时电路产生的cout1与调分(ti

8、aofen 输入信号采用或门输入作为此分时钟设计电路的clk1时钟信号,rst1是复位信号, 输出的cout1作为下一模块小时计时的时钟信号,cq0,cq1输出信号最后接在动态译码管芯片上。 得出实验要求的分计时器,如图4.2 所示:4.3 小时计时电路设计系统要求实现12小时,24小时切换计时,即12进制计数和24进制计数之间的切换,采用一个按键输入信号可控制计数进制的选择,源程序代码如下: -小时计时程序 library ieee;entity hour IS -实体,定义输入和输出port(clk3,rst3,m:in std_logic;cq4:out std_logic_vector

9、(3 downto 0;cq5:out std_logic_vector(3 downto 0;END hour;ARCHITECTURE behave of hour isSIGNAL d: std_logic_vector(3 downto 0; -定义信号d、g,作为中转量SIGNAL g: std_logic_vector(3 downto 0;BEGINprocess(clk3,rst3,m,d,gBEGINif (rst3 ='1' then -时钟的复位,rst3=1,则复位d <="0000"g <="0000"

10、;elsif(clk3'EVENT and clk3='1'then -时钟clk3的上升沿有效if(m='0' then -m=0,采取12进制计时if(d=9 or (d=1 and g=1thend<="0000"if(g=1theng<="0000"elseg<=g+1;end if;elsed<=d+1;end if;else -若m不等于0,则采用24进制计时if(d=9 or (d=3 and g=2thend<="0000"if(g=2then g&

11、lt;="0000" elseg<=g+1; end if; elsed<=d+1;end if;end if; end if;end process;cq4<=d;cq5<=g;-将信号d 和g 分别赋给输出的cq4和cq5end behave;当输入信号m=0时,进行12进制计数;当m=1时,进行24进制计数。从分钟计时输出的进位(cout 信号,与调时(tiaoshi 信号采用或门一起输入作为此小时计时电路的clk3时钟信号,rst3是复位信号, cq4,cq5输出信号最后接在动态译码管芯片上。得出实验要求的小时计时器,如图4-3 所示。clk

12、3rst3m cq43.0cq53.0hourinst4OR2inst8VCCmINPUT VCC rst3INPUT VCC tiaoshi INPUT clk1rst1cout1cq03.0cq13.0secondinst10图4.3 小时计时电路4.4 译码显示以及闹铃电路设计从各计时电路输出的时钟信号需要进行译码后才能在数码管上动态显示,且当时输入的时钟信号达到某一设定值时要能进行闹铃,设计程序如下:-译码以及闹铃程序LIBRARY IEEE;ENTITY yima IS-实体,定义输入和输出PORT ( CLK : IN STD_LOGIC;RESET : IN STD_LOGIC;

13、SEC1 : IN STD_LOGIC_VECTOR(3 DOWNTO 0;-秒输入SEC2 : IN STD_LOGIC_VECTOR(3 DOWNTO 0;MIN1 : IN STD_LOGIC_VECTOR(3 DOWNTO 0;-分输入MIN2 : IN STD_LOGIC_VECTOR(3 DOWNTO 0;HOUR1 : IN STD_LOGIC_VECTOR(3 DOWNTO 0;-时输入HOUR2 : IN STD_LOGIC_VECTOR(3 DOWNTO 0;set_hour1 : IN STD_LOGIC_VECTOR(3 DOWNTO 0;-闹铃时间输入set_hour

14、2 : IN STD_LOGIC_VECTOR(1 DOWNTO 0;set_min1 : IN STD_LOGIC_VECTOR(3 DOWNTO 0;set_min2 : IN STD_LOGIC_VECTOR(2 DOWNTO 0;CLOCK : OUT STD_LOGIC;miao1 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0;-时钟信号输出显示miao2 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0;fen1 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0;fen2 : OUT STD_LOGIC_VECTOR(3 D

15、OWNTO 0;shi1 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0;shi2 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0;END yima;ARCHITECTURE ART OF yima IS -结构体BEGINPROCESS(set_hour1,set_hour2,set_min1,set_min2,CLK,RESETBEGIN -进程开始IF(RESET='1'THEN -复位显示0miao1 <= "0000"miao2 <= "0000"fen1 <= &quo

16、t;0000"fen2 <= "0000"shi1 <= "0000"shi2 <= "0000"ELSIF(CLK'EVENT AND CLK='1'THENIF (set_hour2(1 DOWNTO 0 = HOUR2(3 DOWNTO 0 and (set_hour1(3 DOWNTO 0 = HOUR1(3 DOWNTO 0 and (set_min1(3 DOWNTO 0 = MIN1(3 downto 0 and (set_min2(2 DOWNTO 0 = MIN2(

17、3 DOWNTO 0 then CLOCK <= '1' -到闹铃时间则拉高CLOCK进行闹铃ELSE CLOCK <= '0'END IF;miao1 <= SEC1(3 DOWNTO 0; -译码显示miao2 <= SEC2(3 DOWNTO 0;fen1 <= MIN1(3 DOWNTO 0;fen2 <= MIN2(3 DOWNTO 0;shi1 <= HOUR1(3 DOWNTO 0;shi2 <= HOUR2(3 DOWNTO 0;END IF;END PROCESS;END ART;CLK为译码器时

18、钟输入信号,RESET为复位信号,SEC1、SEC2、MIN1、MIN2、HOUR1、HOUR2为时钟输入信号, set_hour1、set_hour2、set_min1、setmin2为闹铃时间的预置输入,CLOCK 为闹铃输出信号,miao1、miao2、fen1、fen2、 shi1、shi2 为译码时钟输出信号。其电路图如图 4.4 所示。 y ima CLK RESET SEC13.0 SEC23.0 MIN13.0 MIN23.0 HOUR13.0 HOUR23.0 set_hour13.0 set_hour21.0 set_min13.0 set_min22.0 CLOCK mi

19、ao13.0 miao23.0 f en13.0 f en23.0 shi13.0 shi23.0 inst1 图 4.4 译码显示以及闹铃电路 5 总体电路设计 5.1 电路设计 多功能数字时钟的总体电路如图 5.1 所示,主要由两个 60 进制的计数器, 一个 24 进制的计数器,数码管译码器以及闹铃电路构成, 。 CLK INPUT VCC RESET INPUT VCC clk1 INPUT VCC OR2 second clk1 cout1 cq03.0 cq13.0 tiaomiao INPUT VCC INPUT VCC inst5 rst1 rst1 inst y ima CL

20、K OR2 CLOCK miao13.0 miao23.0 f en13.0 f en23.0 shi13.0 shi23.0 OUTPUT OUTPUT OUTPUT OUTPUT OUTPUT OUTPUT OUTPUT CLOCK miao13.0 miao23.0 f en13.0 f en23.0 shi13.0 shi23.0 second clk1 cout1 cq03.0 cq13.0 inst9 RESET SEC13.0 SEC23.0 MIN13.0 MIN23.0 HOUR13.0 HOUR23.0 set_hour13.0 set_hour21.0 tiaof en

21、INPUT VCC INPUT VCC inst6 rst1 rst2 OR2 hour clk3 cq43.0 cq53.0 set_min13.0 set_min22.0 tiaoshi INPUT VCC INPUT VCC inst7 rst3 m inst3 rst3 m set_hour13.0 inst1 INPUT VCC INPUT VCC set_hour21.0 set_min13.0 set_min22.0 INPUT VCC INPUT VCC INPUT VCC 图 5.1 数字时钟的总体电路 10 5.2 功能及使用说明 (1) 计时功能:首先通过时钟脉冲 clk

22、1 产生一个信号来实现秒钟的计时功 能,当秒钟计数到 59 后,下一个时钟秒钟清零,并产生一个分钟进位信号送到 分钟计数器;同理,当分钟计数到 59 后,下一个计数时钟信号会让分钟清零, 同时产生一个小时进位信号, 送到小时计数器。 当小时计数器计数到 24 或 12 (由 输入信号 m 控制)时,完成一个周期,全部跳转到零并重新开始计数。译码输出 后由 6 个数码管来显示时钟信号。 (2)使用控制说明: 时间周期选择功能,通过 m 来控制 12 进制或 24 进制时钟显示; 秒钟、分钟以及小时都有复位键,相应为 rst1,rst2,rst3; 秒钟、 分钟以及小时都有调节功能, 相应为 tiaomiao、 tiaofen、 tiaoshi; 具有闹铃功能,通过 set_hour1、set_hour2、se

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论