数电设计数字钟基于QUARTUS

合集下载

数字逻辑电路设计多功能数字钟

数字逻辑电路设计多功能数字钟

数字逻辑电路设计-多功能数字钟多功能数字钟摘要:实验作品名为多功能数字钟,具有校时、清零、保持、整点报时、闹钟五大功能。

整个实验以QuartusII 7.0为软件设计基础,结合Altera公司研发的Cyclone系列可编程逻辑器件工具箱进行实际测试。

整个数字钟的开发完全遵照自顶向下的设计方法,这个设计因为该方法可移植性强、逻辑符合一般规律、可多人共做等优点而得以为设计人员省去大量时间和精力。

本作品在防抖动电路和蜂鸣器鸣响时长控制上拥有一定的自主创新性和理论证明,同时由于整个设计过程当中适当地对每个器件进行了有机的封装,所以电路图的逻辑关系较为清晰。

现在数字钟因其在日常生活生产中的作用而成为可盈利的商品,在金钱的驱动下数字钟的设计方法及本实验作品相比功能和效率上都有非常大的提升,故本实验的目的在于让设计者充分了解数字逻辑电路设计的流程和具体软件的使用方法。

关键词:数字钟,可编程逻辑器件,防抖动电路,学习型设计The design of Multifunctional digital clock Abstract: This experimental product is called Multifunctional digital clock. It has five majorfunctions such as time setting, resetting, holding,alarming, and beeping when it comes to an additionto the hour. The whole experiment is based on the software of design called Quartus II 7.0 and is tested by combining the Cyclone series of programmable logical device provided by Altera. The clock is designed under the process of ‘from the top to the end’. The method spares designers lots of time and energy for its flexibility to be transplanted, easiness for ordinary logic reasoning and availability for cooperative designing. The product is self-creative and provable in terms of turbulence muting and manipulation of the period of beeping. At the same time, the diagrams of the circuits are apparently logical thanks to well-organized sealing of each part of device during the design. In this era of common concept of inexpensiveness of digital clocks, methods and effectiveness of designing a clock are improved due to its profitability. Hence, this experimental designis aimed at letting the participants to understand the process of digital logic circuits designing and to get to familiar with the usage of particular software.Keyword: Digital Clock, programmable logic device, mute circuit, design for learning目录一.设计要求及说明 (4)二.方案论证……………………………………………………………… (4)1.设计整体思路2.设计大体流程三.各子模块设计原理及调试仿真 (5)1.时钟发生器 (5)2.计时电路 (7)3.显示电路 (9)4.校分电路和清零电路 (12)5.报时电路 (13)6.储时电路 (15)7.选择电路 (16)8.闹钟比较电路 (16)9.其他 (1)7四.编程下载1.整体电路图 (18)2.管脚配置 (19)3.编译调试 (19)五.实验感想一.设计要求及说明1、能进行正常的时、分、秒计时功能2、分别由六个数码管显示时分秒的计时3、使能开关4、清零开关5、校分开关6、校时开关7、使时钟具有整点报时功能(当时钟计到59’53”时开始报时,在59’53”, 59’55”,59’57”时报时频率为512Hz,59’59”时报时频率为1KHz, )8、闹表设定功能9、自己添加其他功能二.方案论证1.设计整体思路图1数字钟的功能设计思路大致如图1时钟发生电路:位计时电路提供频率为1HZ的稳定脉冲,该电路是整个时钟是否精准的关键计时电路:由时钟发生器驱动,存储并演绎时间的流逝储时电路(闹钟):储存一个固定的时间选择电路:由输入端控制调校或显示储时电路和计时电路中的一个显示电路:将两个时间电路的输出信号调制成可输出的信号报时电路:根据时间信号以一定的模式输出符合要求的蜂鸣器驱动信号校分电路:使时间电路脱离时钟驱动并以累加的方式分别调校时及分清零电路:使时钟电路的所有信号归零2设计大体流程1)设计时钟发生电路及计时电路2)连接两个模块并调试电路,分别用LED灯检测时分秒的运行状况3)设计显示电路并单独调试4)连接时钟电路和显示电路并调试,整体调试时钟电路5)设计校分电路和清零电路并连接调试6)设计报时电路并单独调试7)连接报时及时钟电路,利用已调校好的调分清零电路调校报时电路的功能8)设计储时电路(在计时电路上适当修改)9)设计选择电路将计时电路和储时电路连接,调校选择电路以保证时间及调校显示的接口功能正常10)整体调试并增加诸如防抖动等优化电路三.各子模块的设计原理及调试1.时钟发生器图2时钟发生器设计思路大致如图21)十六分频电路由四个T触发器异步连接而成2)图3实时(timing)仿真如图4图4有仿真图波形可初步断定用4*T触发器一步连接对高频信号进行16分频是不会产生明显延迟和错位现象3)一千分频电路由三个十进制加法计数器连接而成,连接方式是:低位计数器的QD端及高位计数器的CLK端相连图5为方便今后对十分频器的使用在此对其进行了封装,仿真波形图如下图6输入波周期为10ns,由图6所示仿真图中的时间条可看出,在Timing模式下1000分频电路对高频信号几乎无延迟及错位,同时可看出该分频器的占空比为1:10。

根据QuartusII软件的数字时钟设计

根据QuartusII软件的数字时钟设计
ten :buffer std_logic_vector(3 downto 0);
full:out std_logic);
end component;
component scan6----------------------------------------------------------------元器件4
Port(clr,clk:in std_logic;
one :buffer std_logic_vector(3 downto 0);
ten :buffer std_logic_vector(3 downto 0);
full:out std_logic;
dout:buffer std_logic_vector(7 downto 0));
3.2.2 count60组件
由此提供分(秒)计数值,当分计数器计数到59再来一个脉冲信号秒计数器清零从新开始计数,而进位则作为小时计数器的计数脉冲,使小时计数器计数加1,同时分计数器在分设置时钟信号的响应下设置分计数器的数值。在count60组件中,个位(one)和十位(ten)分别计数,都设为二进制四位矢量形式,当个位从0计到9时,在下一个clk上升沿来临后,十位进1,个位变0,十位从0到5计数,在十位为5,个位9的时候,下一个上升沿来临后,十位个位都变0,进位full加1。因此在程序设计中需要两个进程process来分别完成计数,秒计数以1Hz的输入为触发信号,分计数以秒的full信号为触发信号。具体的count60的组件代码如下:
component div40M------------------------------------------------------------------元器件1

基于QuartusII的多功能数字钟设计

基于QuartusII的多功能数字钟设计

EDA技术与VHDL课程大作业学号:姓名:多用途数字时钟设计摘要:应用QuartusII9。

0软件采用模块化设计方法设计一数字时钟,用原理图输入进行设计,使之具有清零、整点报时、闹钟设置、彩铃和星期显示调节等功能.软件仿真调试成功后编译下载至可编程实验系统SmartSOPC中进行硬件测试。

关键词:译码器脉振 QuartusII 清零计数器蜂鸣器锁存目录一设计内容简介 (1)二设计要求 (1)三方案论证(整体电路设计原理) (1)四子模块设计原理4.0 脉冲产生电路 (4)4.1 计时电路 (7)4.2 显示电路 (11)4.3 保持电路 (13)4.4 清零电路 (13)4.5 校分电路 (14)4。

6 校时电路 (14)4.7 整点报时电路 (14)4.8 闹钟设定电路 (16)4。

9 音乐产生电路 (17)4。

10 闹钟报时电路 (22)4.11 闹铃关闭电路 (23)4.12 星期调整电路 (24)4.13 电路总图 (26)五实验中遇到问题及解决法 (27)六结论 (28)七参考文献 (28)一、设计内容简介设计一数字时钟,可以完成00:00:00到23:59:59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、整点报时等功能。

我们设计的电路在具有基本功能的基础上,增加了下列功能:整点报时、闹钟设置、彩铃和星期显示调节功能。

二、设计要求2。

0 基本要求1、能进行正常的时、分、秒计时功能;2、分别由六个数码管显示时分秒的计时;3、K1是系统的使能开关(K1=0正常工作,K1=1时钟保持不变);4、K2是系统的清零开关(K2=0正常工作,K2=1时钟的分、秒全清零);5、K3是系统的校分开关(K3=0正常工作,K3=1时可以快速校分);6、K4是系统的校时开关(K4=0正常工作,K4=1时可以快速校时);2。

1 提高部分要求1、使时钟具有整点报时功能(当时钟计到59’53”时开始报时,在59’53”, 59’55",59’57”时报时频率为512Hz,59’59”时报时频率为1KHz);2、闹表设定功能;三、方案论证本实验在实现实验基本功能的基础上,加入了整点报时、闹钟设置、彩铃和星期显示调节功能。

基于quartus的电子钟

基于quartus的电子钟

电子线路设计Ⅱ——基于QuartusII软件的数字钟姓名:范征东5指导老师:黄建宇郝磊多功能数字钟设计一、设计内容简介电子数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,因此得到了广泛的使用。

电子数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。

因此,此次设计与制做电子数字钟就是可以了解电子数字钟的原理,学会制作电子数字钟。

通过电子数字钟的制作能进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法,通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法。

这次电子数字钟的设计主要是利用74LS90的计数功能来实现电子钟时、分、秒的跳变,整个设计主要分为六个模块:时模块、分模块、秒模块、分频模块、校时校分模块、整点报时模块。

时、分、秒模块分别用两块74LS90实现,并且分别将它们设置为60进制,60进制,24进制。

秒信号的产生用石英晶体振荡器加分频器来实现,将秒信号送入秒模块,每累计60秒发出一个分脉冲信号,分模块每累计60分钟,发出一个时脉冲信号,时模块实现对24小时的累计,通过六个七段数码管显示出来。

整点报时电路根据计时系统的输出状态产生一脉冲信号,然后加上一个高频或低频信号送到蜂鸣器实现报时。

校时电路是直接加一个脉冲信号到时计数器或者分计数器或者秒计数器来对“时”、“分”、“秒”显示数字进行校对调整。

本数字钟以计时为基本功能,可以完成00:00:00到23:59:59,以及星期一至星期日的计时功能,并在控制电路的作用下具有保持、快速校时、快速校分的功能。

在具有基本功能的基础上,增加了下列扩展功能:闹钟、整点报时功能。

数字计时器是由分频电路、计时电路、控制电路、译码显示电路等几部分组成的。

其中,分频电路将试验箱提供的48Mhz 的频率分成各模块电路所需要的频率;计时电路完成计时功能,并与动态显示电路相连,将时间、日期、星期等信息显示在七段数码管上;秒表电路启动后可完成最小单位为0.01秒的计时;以上各部分电路均与译码显示电路连接,将以上数据分别显示,通过按钮切换。

基于QuartusII以及74ls192为核心的简易数字时钟设计

基于QuartusII以及74ls192为核心的简易数字时钟设计

基于QuartusII以及74ls192为核心的简易数字时钟设计版权信息:重庆文理学院电子电气工程学院作者:电子信息科学与技术学生廖智星该项目是利用QuartusII软件设计一个数字钟,进行试验设计和仿真调试,实现了计时,校时,校分,保持和整点报时功能,并下载到FPGA实验系统中进行调试和验证。

此外还添加了显示星期,使得设计的数字钟的功能更加完善。

关键字:QuartusII EDA FPGA 数字钟 74ls192This experiment is to design a digital clock using QuartusII software, debugging test design and simulation, to achieve timing, timing, school hours, maintain and the whole point timekeeping function, and download the debugging and verification of FPGA experimental system. In addition also added that week, making digital clock design features more perfect.Keywords: QuartusII EDA FPGA 74LS192 digital clock目录1.设计要求 (1)2.工作原理 (1)3.各模块设计的说明 (2)4.实物效果 (7)5、总结 (11)一、设计要求1.设计一个数字计时器,可以完成00:00:00到23:59:59的计时功能,并在控制电路的作用下具有保持、调时的基本功能。

2.具体要求如下:1)能进行正常的时、分、秒计时功能,最大计时显示23小时59分59秒。

2)分别由7个数码管显示,前面6个进行时分秒的计时显示,最后一个。

根据QuartusII的数字时钟的设计

根据QuartusII的数字时钟的设计

根据QuartusII的数字时钟的设计基于QuartusII的数字时钟的设计摘要QuartusII是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD 设计流程。

QuartusII使用户可以充分利用成熟的模块,简化了设计的复杂性,加快了设计速度。

对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。

数字钟是一种用数字电路实现时、分、秒计时的装置,与机械实施中相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,已得到了广泛的使用。

在对EDA的课程有了初步的了解并掌握Quartus II软件的初步应用之后,我们决定将课题设置为应用Quartus II软件,设计出一个时间可调,并可以通过LED七段共阴极数码管来显示时、分、秒的简易数字钟。

关键词:QuartusII;VHDL;EDA;数字钟SummaryQuartusII is Altera company comprehensive PLD/FPGA development software, support principle diagram, VHDL, VerilogHDL and AHDL design input in the form of embedded own comprehensive device simulators, and can be done from the design input to the hardware configuration of the complete PLD design process.QuartusII allow users to take full advantage of mature modules, simplifies the design complexity, speed up the design.Good support for third-party EDA tools also allow users to use in the different stages of the design process is familiar withthird-party EDA tools.Digital clock is a kind of when using a digital circuit implementation, minutes and seconds timing device, a higher accuracy compared with the implementation of the mechanical and intuitive, and no mechanical device, has a longer service life, has been widely used.In the course of EDA have a preliminary understanding and mastering the Quartus II software after the initial application, we decided to set the topic for the application of the Quartus II software, design a time is adjustable, and can be through the 7 common cathode LED digital tube display hours, minutes and seconds of simple digital clock.Keywords:QuartusII;VHDL;EDA;digital clock目录摘要 (1)绪论 (5)1.课程设计的目的与作用 (7)2.设计任务 (7)3.QuartusII软件介绍 (7)4.相关理论 (8)4.1 理论 (8)4.2 器件 (8)5. 系统设计 (8)5.1 总体 (8)5.2 各模块 (9)5.2.1 顶层模块 (9)5.2.2 十进制计数器模块 (9)5.2.3 六进制计数器模块 (10)5.2.4 二十四进制计数器模块 (10)5.2.5 7段LED显示驱动模块 (11)6. 硬件设计 (11)6.1 顶层实体图 (11)6.2 各模块实体图 (12)6.2.1 十进制计数器模块 (12)6.2.2 六进制计数器模块 (12)6.2.3 二十四进制计数器模块 (13)6.2.4 7段LED显示驱动模块 (13)6.3 总体实体图 (14)7. 流程图设计 (15)8.模块设计实现 (16)8.1建立顶层模块 (16)8.1.1新建dianzizhong.工程 (16)8.1.2建立VHDL源程序 (16)8.2建立十进制计数器模块 (18)8.2.1新建CNT10.工程 (18)8.2.2建立VHDL源程序 (18)8.3建立六进制计数器模块 (19)8.3.1新建CNT6.工程 (19)8.3.2建立VHDL源程序 (19)8.4建立二十四进制计数器模块 (20)8.4.1新建CNT24.工程 (20)8.4.2建立VHDL源程序 (20)8.5建立7段LED显示驱动模块 (21)8.5.1新建LED_DRIV.工程 (21)8.5.2建立VHDL源程序 (22)9.仿真调试结果分析 (22)9.1顶层模块的编译与波形仿真 (22)9.2十进制计数器模块的编译与波形仿真 (23) 9.3六进制计数器模块的编译与波形仿真 (24) 9.4二十四进制计数器模块的编译与波形仿真 (25)9.5 7段LED显示驱动模块的编译与波形仿真 (26)10. 结论 (27)11.设计总结和体会 (27)12. 致谢 (28)13. 参考文献 (29)绪论1.研究的意义在快速发展的年代,时间对于人们来说越来越宝贵,在快节奏的生活中,人们往往会忘记了时间,一旦在一些重要的场合忘记了时间,将会带来重大的损失。

基于QuartusⅡ可校时电子钟的设计

基于QuartusⅡ可校时电子钟的设计

工 业 技 术114科技资讯 SCIENCE & TECHNOLOGY INFORMATIONDOI:10.16661/ki.1672-3791.2018.09.114基于QuartusⅡ可校时电子钟的设计孙浩程(衡水市第十三中学 河北衡水 053000)摘 要:本文介绍了基于Altera公司开发的QuartusⅡEDA软件,该软件功能强大且界面友好,在此基础上利用原理图和VHDL语言设计可校时的电子钟 。

QuartusⅡ软件具有极其丰富的功能单元,可搭接的灵活性能够满足具有复杂性和创造性的理想开发平台, 本文利用QuartusⅡEDA软件设计可校时的电子钟,达到了预期的开发设计效果。

该电子钟具有计时、清零、校时、报时等基本功能。

关键词:QuartusⅡ EDA 可校时 电子钟 中图分类号:TN70 文献标识码:A 文章编号:1672-3791(2018)03(c)-0114-02QuartusⅡ是Altera公司的综合性PLD /FPGA开发软件,界面友好,使用便捷,功能强大,是一个完全集成化的可编程逻辑设计环境,是先进的EDA工具软件。

支持原理图、VHDL、Verilog HDL以及AHDL(A1tera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

对于CPLD、FPGA、SOC和HardCopy ASIC设计,Altera Quartus Ⅱ软件在性能和效能上是业界首屈一指的软件[1-2]。

本文采用Quartus Ⅱ来设计可校时的电子钟。

1 设计原理本多功能数字钟具有的功能有:显示时—分—秒、整点报时,可校准。

根据钟表的工作机理,整个钟表的工作应该是在1Hz信号的作用下进行,这样每来一个时钟信号,秒增加1s,当秒从59s跳转到00s时,分钟增加1分,分钟在59分跳转到00分时,小时增加1小时,小时的范围是从0~23时。

基于-Quartus多功能数字钟设计

基于-Quartus多功能数字钟设计

基于Quartus的多功能数字钟设计该实验是利用QuartusII软件设计一个数字钟,进展试验设计和仿真调试,实现了计时,校时,校分,清零,保持和整点报时等多种根本功能,并下载到SmartSOPC实验系统中进展调试和验证。

此外还添加了显示星期,闹钟设定,秒表和彩铃等附加功能,使得设计的数字钟的功能更加完善。

一、设计要求1.设计一个数字计时器,可以完成00:00:00到23:59:59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、整点报时等根本功能。

2.具体要求如下:1)能进展正常的时、分、秒计时功能,最大计时显示23小时59分59秒。

2)分别由六个数码管显示时分秒的计时。

3)K1是系统的使能开关,K1=0正常工作,K1=1时钟保持不变。

4)K2是系统的清零开关,K2=0正常工作,K2=1时钟的分、秒全清零。

5)在数字钟正常工作时可以对数字钟进展快速校时和校分。

K3是系统的校分开关,K3=0正常工作K3=1时可以快速校分;K4是系统的校时开关,K4=0正常工作,K4=1时可以快速校时。

3.设计提高局部要求1)时钟具有整点报时功能,当时钟计到59’51〞时开场报时,在59’51〞,59’53〞, 59’55〞,59’57〞时报时频率为512Hz,59’59〞时报时频率为1KHz。

2)星期显示:星期显示功能是在数字钟界面显示星期,到计时到24小时时,星期上显示的数据进一位。

3)闹表设定:通过开关切换显示至闹钟界面,利用闹钟校时和校分开关对闹钟时间进展设定,且不影响数字钟计时。

当计时到闹钟设定时间蜂鸣器鸣叫,并响起彩铃。

4)秒表计时:通过开关切换显示至秒表界面,分秒局部是100进制的,即当值为99时向秒位进位。

4.仿真与验证用Quartus软件对设计电路进展功能仿真,并下载到实验板上对其功能进展验证。

二、工作原理数字计时器是由计时电路、译码显示电路、脉冲发生电路和控制电路等几局部组成的,控制电路按要求可由校分校时电路、清零电路和保持电路组成。

中石油大学数电实验3基于QUARTUSII图形输入电路的设计

中石油大学数电实验3基于QUARTUSII图形输入电路的设计

数字电子技术实验报告学院名称新能源学院专业班级学号姓名项目名称基于QUARTUSII图形输入电路的设计实验日期 2020年11月11日实验三基于QUARTUSII图形输入电路的设计一、实验目的1、通过一个简单的 3—8 译码器的设计,掌握组合逻辑电路的设计方法。

2、初步了解 QUARTUSII 原理图输入设计的全过程。

3、掌握组合逻辑电路的静态测试方法。

二、实验内容本次实验通过使用QUARTUSII软件模拟3-8译码器的工作,实验项目包括建立工程文件、建立图形设计文件、编译、管脚分配以及时序仿真。

1、列写真值表3-8 译码器三输入,八输出。

当输入信号按二进制方式的表示值为N 时,输出端标号为N 的输出端输出高电平表示有信号产生,而其它则为低电平表示无信号产生。

因为三个输入端能产生的组合状态有八种,所以输出端在每种组合中仅有一位为高电平的情况下,能表示所有的输入组合。

其真值表如表二-1所示2、建立工程文件(1)双击运行程序(2)选择软件中的菜单 File>New Project Wizard,新建一个工程(3)点击NEXT 进入工作目录,设定工程名。

第一个输入框为工程目录输入框,用户可以输入如 f:/eda 等工作路径来设定工程的目录(4)点击 NEXT,进入下一个设定对话框,按默认选项直接点击 NEXT 进行器件选择对话框。

这里我们以选用 CycloneⅡ系列芯片 EP2C35F484C8。

(5)按默认选项,点击 NEXT 出现新建工程以前所有的设定信息,点击 FINISH 完成新建工程的建立。

3、建立图形设计文件(1)在创建好设计工程后,选择File>NEW…菜单,出现下图所示的新建设计文件类型选择窗口。

(2)New对话框中选择Device Design Files 页下的Block Diagram/Schematic File,点击OK 按钮。

(3)设计3-8译码器,将要选择的器件符号放置在图形编辑器的工件区域,用正交节点工具将原件边接起来,定义三个输入为 A、B、C,定义八个输出为D0、D1、D2、D3、D4、D5、D6、D7。

基于Quartus II的数字钟实现.

基于Quartus II的数字钟实现.

学校代码学号00918128分类号密级本科学年论文基于Quartus II的数字钟设计院(系)名称:电子信息工程学院专业名称:通信工程年级:2010级学生姓名:包胡斯楞指导教师:白凤山2012年9月28日基于Quartus II的数字钟设计摘要数字钟是一种用数字电路技术实现时、分、秒计时的钟表。

与机械钟相比具有更高的准确性和直观性,具有更长的使用,已得到广泛的使用。

数字钟的设计方法有许多种,例如可用中小规模集成电路组成电子钟,也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟,还可以用Quartus II 软件结合VHDL语言编程实现数字钟的设计。

这些方法都各有其特点,我的设计采用Quartus II软件结合VHDL语言编程实现数字钟。

Quartus II是Altera公司推出的CPLD/FPGA开发工具,Quartus II提供了与结构五官的设计环境,设计者无需精通器件内部的复杂结构。

本设计由分频模块,时钟产生模块,数码管驱动模块等三个部分组成。

在Quartus II中以文本输入的方式将每个模块的源代码输入进行波形仿真,以验证设计的正确性。

关键词:数字钟 Quartus II VHDL语言波形仿真绪论 (1)1数字钟设计概述 (2)2分频模块 (3)2.1分频模块原理图 (3)2.2分频模块实现原理及程序 (3)2.3仿真波形及分析验证 (3)3时钟产生模块 (5)3.1时钟产生模块原理图 (5)3.2时钟产生模块实现原理及程序 (5)3.3仿真波形及分析验证 (5)4数码管驱动模块 (7)4.1数码管驱动模块原理图 (7)4.2数码管驱动模块实现原理及程序 (7)4.3仿真波形及仿真验证 (7)5总系统 (8)5.1总系统电路图 (8)5.2仿真波形及分析验证 (8)结论 (10)致谢 (11)参考文献 (12)附录A (13)附录B (14)附录C (16)在人们日常生活中,钟表是一个随处可见的小东西。

基于QuartusII 的多功能数字钟设计

基于QuartusII 的多功能数字钟设计

多功能数字钟设计院系:专业:指导教师:班级:学号:姓名时间:2015.3.9-3.18摘要多功能数字钟在我们的日常生活中有着非常广泛的应用。

本实验利用QuartusII软件设计一个多功能数字计时器,并下载到SmartSOPC实验系统中。

这个数字计时器,可以完成00:00:00到23:59:59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、整点报时等功能,这些功能相互独立,却又互相协调配合。

在此类基础功能之上还添加了秒表功能。

关键词QuartusII软件 SmartSOPC实验系统多功能数字钟外文摘要Title Multi-function digital clock design dissertationAbstractMulti-function digital clock in our daily life has a very wide application. This experiment using software QuartusII design a multi-function digital timer, and download to SmartSOPC experiment system. The digital timer, can complete 00:00:00 to 23:59:59 timing functions, and under the action of control circuit has to keep fast, reset, when the school, the school points, hour, and other functions, and these features are independent of each other, and coordinate with each other. On such a basis function also added stopwatch function.Keywords QuartusII、SmartSOPC experimental system、Multi-function digital timer。

数电设计_数字钟(基于QUARTUS).

数电设计_数字钟(基于QUARTUS).

大连理工大学本科实验报告题目:数电课设——多功能数字钟课程名称:数字电路课程设计学院(系):专业:电子与通信工程班级:学生姓名: *************** 学号:完成日期:成绩:2010 年 12 月 17 日题目:多功能数字时钟一.设计要求1 具有‘时’、‘分’、‘秒’的十进制数字显示(小时从00~23)2 具有手动校时校分功能3 具有整点报时功能,从59分50秒起,每隔2秒钟提示一次4 具有秒表显示、计时功能(精确至百分之一秒),可一键清零5 具有手动定时,及闹钟功能,LED 灯持续提醒一分钟6 具有倒计时功能,可手动设定倒计时范围,倒计时停止时有灯光提示,可一键清零二.设计分析及系统方案设计1. 数字钟的基本功能部分,包括时、分、秒的显示,手动调时,以及整点报时部分。

基本模块是由振荡器、分频器、计数器、译码器、显示器等几部分组成。

利用DE2硬件中提供的50MHZ 晶振,经过分频得到周期为1s 的时钟脉冲。

将该信号送入计数器进行计算,并把累加结果以“时”“分”“秒”的形式通过译码器由数码管显示出来。

进入手动调时功能时,通过按键改变控制计数器的时钟周期,使用0.5s 的时钟脉冲进行调时计数(KEY1调秒,LOAD2调分,LOAD3调时),并通过译码器由七位数码管显示。

从59分50秒开始,数字钟进入整点报时功能。

每隔两秒提示一次。

(本设计中以两个LED 灯代替蜂鸣器,进行报时)2. 多功能数字钟的秒表功能部分,计时范围从00分00.00秒至59分59.99秒。

可由输入信号(RST1)异步清零,并由按键(EN1)控制计时开始与停止。

将DE2硬件中的50MHZ 晶振经过分频获得周期为0.01秒的时钟脉冲,将信号送入计数器进行计算,并把累计结果通过译码器由七位数码管显示。

3. 多功能数字钟的闹钟功能部分,通过按键(KEY1,KEY2,KEY3)设定闹钟时间,当时钟进入闹钟设定的时间(判断时钟的时信号qq6,qq5与分信号qq4,qq3分别与闹钟设定的时信号r6,r5与分信号r4,43是否相等),则以LED 灯连续提示一分钟。

基于QuartusII软件的数字时钟设计

基于QuartusII软件的数字时钟设计

实验名称:数字时钟设计姓名:杨龙成班级:电子与通信工程学号: 3120302012 成绩:一、实验目的1.掌握各类计数器及它们相连的设计方法;2.掌握多个数码管显示的原理与方法;3.掌握模块化设计方式;4.掌握用VHDL语言的设计思想以及整个数字系统的设计。

二、实验内容1. 设计要求1)具有时、分、秒计数显示功能,在数码管显示00:00:00~23:59:59,以24小时循环计时。

2)完成可以计时的数字时钟时钟计数显示时有LED灯的花样显示。

3)具有调节小时、分钟及清零的功能。

4)具有整点报时功能。

2. 性能指标及功能设计1)时钟计数:完成时、分、秒的正确计时并且显示所计的数字;对秒、分60进制计数,时钟—24进制计数,并且在数码管上显示数值。

2)时间设置:手动调节分钟、小时,可以对所设计的时钟任意调时间。

可以通过实验板上的键7和键4进行任意的调整,因为时钟信号均是1HZ的,所以LED灯每变化一次就来一个脉冲,即计数一次。

3)清零功能:reset为复位键,低电平时实现清零功能,高电平时正常计数。

4)蜂鸣器在整点时有报时信号产生,产生“滴答.滴答”的报警声音。

5)根据进位情况,LED灯在时钟显示时有花样显示信号产生。

3. 系统方框图三、设计原理和过程3.1 硬件设计本设计使用VHDL硬件开发板,可编程逻辑器件EMP1270T144C5系列。

设计过程中用到的外围电路的设计有电源部分,可编程器件EMP1270T144C5,CPLD –JTAG接口,晶振和蜂鸣器,LED数码管显示,DIP开关与按键输入(具体电路见附录)3.2 软件设计3.2..1 程序包my_pkg的设计说明为了简化程序设计增加可读性,系统采用模块化的设计方法,重复使用的组件以元件(component)的形式存在,以便相关块的调用。

下面列出my_pkg组件包的代码。

library ieee;use ieee.std_logic_1164.all;package my_pkg iscomponent div40M------------------------------------------------------------------元器件1 Port( clk: in std_logic;f1hz : out std_logic);end component;component count60-----------------------------------------------------------------元器件2 Port(clr,clk:in std_logic;one :buffer std_logic_vector(3 downto 0);ten :buffer std_logic_vector(3 downto 0);full:out std_logic;dout:buffer std_logic_vector(7 downto 0));end component;component count24-----------------------------------------------------------------元器件3 Port(clr,clk:in std_logic;one :buffer std_logic_vector(3 downto 0);ten :buffer std_logic_vector(3 downto 0);full:out std_logic);end component;component scan6----------------------------------------------------------------元器件4 port (clr,clk : in STD_LOGIC;h_ten,h_one,m_ten,m_one,s_ten,s_one: in STD_LOGIC_vector(3 downto 0);cs: out STD_LOGIC_vector(5 downto 0);mux_out: out STD_LOGIC_vector(3 downto 0));end component;component bin2led---------------------------------------------------------------元器件5 port (bin : in std_logic_vector (3 downto 0);led : out std_logic_vector (7 downto 0) );end component;component sh1k ----------------------------------------------------------------------元器件6 Port( clk: in std_logic;--from system clock(40MHz)f1hz : out std_logic);-- 1Hz output signalend component;component alarm_set------------------------------------------------------------------元器件7 Port(rst,hz1: in std_logic;--system clock 1Hzalarm,ok: in std_logic;--keep pushing to declare alarm setsec_tune: in std_logic;sec_one,sec_ten:out std_logic_vector(3 downto 0));end component;end my_pkg;3.2.2 count60组件由此提供分(秒)计数值,当分计数器计数到59再来一个脉冲信号秒计数器清零从新开始计数,而进位则作为小时计数器的计数脉冲,使小时计数器计数加1,同时分计数器在分设置时钟信号的响应下设置分计数器的数值。

使用Quartus进行多功能数字钟设计

使用Quartus进行多功能数字钟设计

.EDA设计使用Quartus II进行多功能数字钟设计院系:机械工程专业:车辆工程姓名:张小辉学号:115101000151指导老师:蒋立平、花汉兵时间:2016年5月25日摘要本实验是电类综合实验课程作业,需要使用到QuartusⅡ软件,(Quartus II 是Altera公司的综合性PLD/FPGA开发软件,原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware 支持Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程)。

本实验需要完成一个数字钟的设计,进行试验设计和仿真调试,实验目标是实现计时、校时、校分、清零、保持和整点报时等多种基本功能,并下载到SmartSOPC实验系统中进行调试和验证。

关键字:电类综合实验QuartusⅡ数字钟设计仿真AbstractThis experiment is electric comprehensive experimental course work and need to use the Quartus II software, Quartus II is Altera integrated PLD / FPGA development software, schematic and VHDL, Verilog HDL and AHDL (Altera hardware description language support) etc. a variety of design input form, embedded in its own synthesizer and simulator can complete hardware configuration complete PLD design process from design entry to). The need to complete the design of a digital clock, and debug the design of experiment and simulation, the experimental goal is to achieve timing, school, reset, keep and the whole point timekeeping and other basic functions, and then download to the smartsopc experimental system debugging and validation.Key words: Electric power integrated experiment Quartus II Digital clock design Simulation目录EDA设计 (1)摘要 (2)目录 (4)一、设计要求[1] (5)二、工作原理[2] (6)三、各模块说明[3] (7)1、分频模块 (7)2、计时模块 (9)3、动态显示模块[3] (11)4、校分与校时模块 (11)5、清零模块 (13)6、保持模块 (13)7、报时模块 (13)四、总电路的形成 (15)五、调试、编程下载 (16)六、试验中出现的问题及解决办法 (17)七、实验收获与感受 (18)八、参考文献 (19)一、设计要求[1]1.设计一个数字计时器,可以完成00:00:00到23:59:59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、整点报时等基本功能。

基于QuartusII的数字时钟的设计

基于QuartusII的数字时钟的设计

基于QuartusII的数字时钟的设计摘要QuartusII是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

QuartusII使用户可以充分利用成熟的模块,简化了设计的复杂性,加快了设计速度。

对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。

数字钟是一种用数字电路实现时、分、秒计时的装置,与机械实施中相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,已得到了广泛的使用。

在对EDA的课程有了初步的了解并掌握Quartus II软件的初步应用之后,我们决定将课题设置为应用Quartus II软件,设计出一个时间可调,并可以通过LED七段共阴极数码管来显示时、分、秒的简易数字钟。

关键词:QuartusII;VHDL;EDA;数字钟SummaryQuartusII is Altera company comprehensive PLD/FPGA development software, support principle diagram, VHDL, VerilogHDL and AHDL design input in the form of embedded own comprehensive device simulators, and can be done from the design input to the hardware configuration of the complete PLD design process.QuartusII allow users to take full advantage of mature modules, simplifies the design complexity, speed up the design.Good support for third-party EDA tools also allow users to use in the different stages of the design process is familiar withthird-party EDA tools.Digital clock is a kind of when using a digital circuit implementation, minutes and seconds timing device, a higher accuracy compared with the implementation of the mechanical and intuitive, and no mechanical device, has a longer service life, has been widely used.In the course of EDA have a preliminary understanding and mastering the Quartus II software after the initial application, we decided to set the topic for the application of the Quartus II software, design a time is adjustable, and can be through the 7 common cathode LED digital tube display hours, minutes and seconds of simple digital clock.Keywords:QuartusII;VHDL;EDA;digital clock目录摘要 (1)绪论 (5)1.课程设计的目的与作用 (7)2.设计任务 (7)3.QuartusII软件介绍 (7)4.相关理论 (8)4.1 理论 (8)4.2 器件 (8)5. 系统设计 (8)5.1 总体 (8)5.2 各模块 (9)5.2.1 顶层模块 (9)5.2.2 十进制计数器模块 (9)5.2.3 六进制计数器模块 (10)5.2.4 二十四进制计数器模块 (10)5.2.5 7段LED显示驱动模块 (11)6. 硬件设计 (11)6.1 顶层实体图 (11)6.2 各模块实体图 (12)6.2.1 十进制计数器模块 (12)6.2.2 六进制计数器模块 (12)6.2.3 二十四进制计数器模块 (13)6.2.4 7段LED显示驱动模块 (13)6.3 总体实体图 (14)7. 流程图设计 (15)8.模块设计实现 (16)8.1建立顶层模块 (16)8.1.1新建dianzizhong.工程 (16)8.1.2建立VHDL源程序 (16)8.2建立十进制计数器模块 (18)8.2.1新建CNT10.工程 (18)8.2.2建立VHDL源程序 (18)8.3建立六进制计数器模块 (19)8.3.1新建CNT6.工程 (19)8.3.2建立VHDL源程序 (19)8.4建立二十四进制计数器模块 (20)8.4.1新建CNT24.工程 (20)8.4.2建立VHDL源程序 (20)8.5建立7段LED显示驱动模块 (21)8.5.1新建LED_DRIV.工程 (21)8.5.2建立VHDL源程序 (22)9.仿真调试结果分析 (22)9.1顶层模块的编译与波形仿真 (22)9.2十进制计数器模块的编译与波形仿真 (23)9.3六进制计数器模块的编译与波形仿真 (24)9.4二十四进制计数器模块的编译与波形仿真 (25)9.5 7段LED显示驱动模块的编译与波形仿真 (26)10. 结论 (27)11.设计总结和体会 (27)12. 致谢 (28)13. 参考文献 (29)绪论1.研究的意义在快速发展的年代,时间对于人们来说越来越宝贵,在快节奏的生活中,人们往往会忘记了时间,一旦在一些重要的场合忘记了时间,将会带来重大的损失。

基于FPGA和Quartus II的多功能数字钟设计与实现

基于FPGA和Quartus II的多功能数字钟设计与实现

基于FPGA和Quartus II的多功能数字钟设计与实

现场可编程门阵列(Field Programmable Gate Arrays,FPGA)是一种可编程使用的信号处理器件。

通过改变配置信息,用户可对其功能进行定义,以满足设计需求。

通过开发,FPGA能够实现任何数字器件的功能。

与传统
数字电路相比,FPGA具有可编程、高集成度、高可靠性和高速等优点。

1 数字钟总体设计
本文以FPGA平台为基础,在QuartusⅡ开发环境下设计开发多功能数字钟。

数字钟实现的功能如下:
1)计时功能:进行正常的时、分、秒计时,并由6只8段数码管分别显示时、分、秒时间。

2)校时功能:当时校时按键按下时,计时器时位迅速增加,并按24小时循环;当分校时按键按下时,计时器分位迅速增加,并按60分循环。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

大连理工大学本科实验报告题目:数电课设——多功能数字钟课程名称:数字电路课程设计学院(系):电信学部专业:电子与通信工程班级:学生姓名: ***************学号:***************完成日期:成绩:2010 年 12 月 17 日题目:多功能数字时钟一.设计要求1)具有‘时’、‘分’、‘秒’的十进制数字显示(小时从00~23)2)具有手动校时校分功能3)具有整点报时功能,从59分50秒起,每隔2秒钟提示一次4)具有秒表显示、计时功能(精确至百分之一秒),可一键清零5)具有手动定时,及闹钟功能,LED灯持续提醒一分钟6)具有倒计时功能,可手动设定倒计时范围,倒计时停止时有灯光提示,可一键清零二.设计分析及系统方案设计1. 数字钟的基本功能部分,包括时、分、秒的显示,手动调时,以及整点报时部分。

基本模块是由振荡器、分频器、计数器、译码器、显示器等几部分组成。

利用DE2硬件中提供的50MHZ晶振,经过分频得到周期为1s的时钟脉冲。

将该信号送入计数器进行计算,并把累加结果以“时”“分”“秒”的形式通过译码器由数码管显示出来。

进入手动调时功能时,通过按键改变控制计数器的时钟周期,使用0.5s的时钟脉冲进行调时计数(KEY1调秒,LOAD2调分,LOAD3调时),并通过译码器由七位数码管显示。

从59分50秒开始,数字钟进入整点报时功能。

每隔两秒提示一次。

(本设计中以两个LED灯代替蜂鸣器,进行报时)2. 多功能数字钟的秒表功能部分,计时范围从00分00.00秒至59分59.99秒。

可由输入信号(RST1)异步清零,并由按键(EN1)控制计时开始与停止。

将DE2硬件中的50MHZ晶振经过分频获得周期为0.01秒的时钟脉冲,将信号送入计数器进行计算,并把累计结果通过译码器由七位数码管显示。

7)多功能数字钟的闹钟功能部分,通过按键(KEY1,KEY2,KEY3)设定闹钟时间,当时钟进入闹钟设定的时间(判断时钟的时信号qq6,qq5与分信号qq4,qq3分别与闹钟设定的时信号r6,r5与分信号r4,43是否相等),则以LED灯连续提示一分钟。

4. 多功能数字钟的倒计时功能部分,可通过按键(LOAD7调秒,LOAD8调分,LOAD9调时)设定倒计时开始时刻。

倒计时的时钟与数字钟的时钟相同,每迎到一个时钟上升沿,则计数器减一。

计数器减至00时,分钟位、秒钟位恢复至59,时钟位恢复至23。

倒计时结束时(即00时00分00秒),控制LED灯亮,表示倒计时结束。

本设计通过数据选择器控制译码器,使数码管独立显示,各功能之间互不影响。

当LOAD4为高电平,则对秒表信号进行译码,数码管显示秒表数据;当LOAD4为低电平,LOAD5为高电平,则对闹钟信号进行译码,数码管显示闹钟数据;当LOAD4,LOAD5为低电平,LOAD6为高电平,则对倒计时信号进行译码,数码管显示倒计时信号数据;当LOAD4,LOAD5,LOAD6全为低电平,则对正常时钟信号进行译码,数码管显示时钟信号数据。

附图1:系统总体结构框图三.系统以及模块硬件电路设计硬件模块包含与,或,非多个基本逻辑单元,由硬件芯片内部提供,软件编程是为了目的性的操作硬件。

50MHZ 的晶振进行分频操作:根据上式得到周期分别为1s,0.01s,0.5s 的时钟。

下载时选择的开发系统模式以及管脚定义表1 GW48-CK开发系统工作模式:四系统的VHDL设计源程序:--代码共372行library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity clock isport( load9,load8,load7,load6,load5,load4,load3,load2,load1:in std_logic;clk,rst1,rst2,en1,en2,key1,key2,key3:in std_logic;q1,q2,q3,q4,q5,q6:out std_logic_vector(6 downto 0);led1,led2,led3,led4,led5:out std_logic);end;architecture a of clock issignal qq1,qq2,qq3,qq4,qq5,qq6:std_logic_vector(3 downto 0);--数字钟计数器信号signal vis1,vis2,vis3,vis4,vis5,vis6:std_logic_vector(3 downto 0); signal cp1,cp2,cp3,cp4,cp5:std_logic;signal p1:integer range 0 to 49;signal p2:integer range 0 to 999;signal p3:integer range 0 to 999;signal clfsa:integer range 0 to 499;signal en,a1,e1,c1,hlfs,l:std_logic;signal clkx,clkx1,clkx2,clkx3,clkx4 : std_logic;signal a,b,c,d,e,f,g: std_logic_vector(3 downto 0);--秒表计数器信号signal r1,r2,r3,r4,r5,r6:std_logic_vector(3 downto 0);--闹钟信号signal z1,z2,z3,z4,z5,z6:std_logic_vector(3 downto 0);--倒计时计数器信号signal alz1,alz2,alz3,alz4,alz5:std_logic;Begin-----------------------------------------------------------------------分频模块-------------------------------------------------------------------------------------process(clk) --分频1beginif rising_edge(clk) thenif p1=49 thenp1<=0;cp1<='1';elsep1<=p1+1;cp1<='0';end if;end if;end process;process(cp1) --分频2beginif rising_edge(cp1) thenif p2=999 thenp2<=0;cp2<='1';elsep2<=p2+1;cp2<='0';end if;end if;end process;process(cp2) --得到周期为1秒的信号beginif rising_edge(cp2) thenif p3=999 thenp3<=0;cp3<='1';elsep3<=p3+1;cp3<='0';end if;end if;end process;process(cp2) --得到周期为百分之一秒的信号beginif rising_edge(cp2) thenif a="1001" then a<="0000";a1<='1';else a<=a+1;a1<='0';end if;end if;end process;process(cp2) --得到周期为0.5秒的信号beginif rising_edge(cp2) thenif clfsa=499 thenclfsa<=0;hlfs<='1';elseclfsa<=clfsa+1;hlfs<='0';end if;end if;end process;-----------------------------------------------------------------------数字钟模块----------------------------------------------------------------------------------process(cp3,load1,key1) --数字钟秒钟计数器beginif rising_edge(cp3) thenif load1='1' thenif key1='0' then --秒钟手动调节if qq2="0101" and qq1="1001"then qq1<="0000"; qq2<="0000";elsif qq1="1001" thenqq1<="0000";qq2<=qq2+1;else qq1<=qq1+1;end if;end if;else if load1='0' thenif qq2="0101" and qq1="1001"then qq1<="0000"; qq2<="0000";cp4<='1'; elsif qq1="1001" thenqq1<="0000";qq2<=qq2+1;cp4<='0';else qq1<=qq1+1;cp4<='0';end if;if qq2="0101" and en='1' then --整点报时case qq1 iswhen "0001"=>led2<='1';when "0011"=>led2<='1';when "0101"=>led2<='1';when "0111"=>led2<='1';when "1001"=>led3<='1';when others =>led2<='0';led3<='0';end case;else led2<='0';led3<='0';end if;end if;end if;end if;end process;process(hlfs,cp4,load2) --数字钟分钟计数器beginif load2='1' then clkx<=hlfs;else clkx<=cp4;end if; --当load2为高电平时,进行分调节if rising_edge(clkx)thenif qq4="0101" and qq3="1001"then qq3<="0000"; qq4<="0000";cp5<='1';elsif qq3="1001" thenqq3<="0000";qq4<=qq4+1;cp5<='0';else qq3<=qq3+1;cp5<='0';end if;end if;if qq3="1001" and qq4="0101" then en<='1';else en<='0';end if; end process;process(hlfs,cp5,load1) --数字钟时钟计数器beginif load3='1' then clkx1<=hlfs;else clkx1<=cp5;end if; --当load3为高电平时,进行小时调节if rising_edge(clkx1) thenif qq5="0011" and qq6="0010" thenqq5<="0000"; qq6<="0000";elsif qq5="1001" thenqq5<="0000";qq6<=qq6+1;else qq5<=qq5+1;end if;end if;end process;-----------------------------------------------------------------------闹钟模块-------------------------------------------------------------------------------------process(hlfs,load5,key1) --闹钟秒计数器beginif rising_edge(hlfs) thenif load5='1' thenif key1='0' then --手动进行闹钟秒设定 if r2="0101" and r1="1001"then r1<="0000"; r2<="0000";elsif r1="1001" thenr1<="0000";r2<=r2+1;else r1<=r1+1;end if;end if;end if;end if;end process;process(hlfs,load5,key2) --闹钟分计数器beginif rising_edge(hlfs) thenif load5='1' thenif key2='0' then --手动进行闹钟分设定 if r4="0101" and r3="1001"then r3<="0000"; r4<="0000";elsif r3="1001" thenr3<="0000";r4<=r4+1;else r3<=r3+1;end if;end if;end if;end if;end process;process(hlfs,load5,key3) --闹钟小时计数器beginif rising_edge(hlfs) thenif load5='1' thenif key3='0' then --手动进行闹钟小时设定if r6="0010" and r5="0011"then r5<="0000"; r6<="0000";elsif r5="1001" thenr5<="0000";r6<=r6+1;else r5<=r5+1;end if;end if;end if;end if;end process;process(cp3,qq1,qq2,qq3,qq4,qq5,qq6,r1,r2,r3,r4,r5,r6) --数字钟与闹钟相符,以LED灯进行提示beginif rising_edge(cp3) thenif qq3=r3 and qq4=r4 and qq5=r5 and qq6=r6then led1<='1';else led1<='0';end if;end if;end process;-----------------------------------------------------------------------秒表模块-------------------------------------------------------------------------------------process(a1,rst1,en1) --秒表计数器beginif rst1='1' then b<="0000";c<="0000"; --秒表异步清零 elsif rising_edge(a1) thenif en1='1' thenif b="1001" and c="1001"then b<="0000";c<="0000";c1<='1';elsif b="1001" thenb<="0000";c<=c+1;c1<='0';else b<=b+1;c1<='0';end if;end if;end if;end process;process(c1,rst1,en1)beginif rst1='1' then d<="0000";e<="0000";elsif rising_edge(c1) thenif en1='1' thenif d="1001" and e="0101"then d<="0000";e<="0000";e1<='1';elsif d="1001" thend<="0000";e<=e+1;e1<='0';else d<=d+1;e1<='0';end if;end if;end if;end process;process(e1,rst1,en1)beginif rst1='1' then f<="0000";g<="0000";elsif rising_edge(e1) thenif en1='1' thenif f="1001" and g="0101"then f<="0000";g<="0000";elsif f="1001" thenf<="0000";g<=g+1;else f<=f+1;end if;end if;end if;end process;-----------------------------------------------------------------------倒计时模块----------------------------------------------------------------------------------process(cp3,rst2,en2,clkx2,load7,hlfs) --倒计时计数器beginif load7='1' then clkx2<=hlfs; else clkx2<=cp3;end if;if rst2='1' then z2<="0000";z1<="0000";alz1<='1'; --倒计时异步清零elsif rising_edge(clkx2) thenif en2='1' thenif z2="0000" and z1="0000"then z2<="0101";z1<="1001";alz1<='1';elsif z1="0000" thenz1<="1001";z2<=z2-1;alz1<='0';else z1<=z1-1;alz1<='0';end if;if alz5='1' thenif z1="0001" and z2="0000"then led4<='1';else led4<='0';end if;end if;end if;end if;end process;process(alz1,rst2,en2,load8,clkx3,hlfs)beginif load8='1' then clkx3<=hlfs;else clkx3<=alz1;end if; if rst2='1' then z4<="0000";z3<="0000";alz2<='1';elsif rising_edge(clkx3) thenif z4="0000" and z3="0000"then z4<="0101";z3<="1001";alz2<='1';elsif z3="0000" thenz3<="1001";z4<=z4-1;alz2<='0';else z3<=z3-1;alz2<='0';end if;if alz4='1' thenif z4<="0000" and z3<="0000"then alz5<='1';else alz5<='0';end if;end if;end if;end process;process(clkx4,alz2,rst2,en2,load9,hlfs)beginif load9='1' then clkx4<=hlfs;else clkx4<=alz2;end if;if rst2='1' then z6<="0000";z5<="0000";elsif rising_edge(clkx4) thenif z6="0000" and z5="0000"then z6<="0010";z5<="0011";elsif z5="0000" thenz5<="1001";z6<=z6-1;else z5<=z5-1;end if;if z5="0000" and z6="0000" then alz4<='1';else alz4<='0';end if;end if;end process;process(z1,z2,z3,z4,z5,z6,hlfs,l)beginif rising_edge(hlfs)then if z1="0000" and z2="0000" and z3="0000" and z4="0000" andz5="0000" and z6="0000" thenl<=not l;else l<='0';end if;end if;led5<=l;end process;------------------------------------------------------------------------------------------------------数据选择器,选择对数字钟,秒表,倒计时,闹钟其中之一进行译码显示------------------------------------------------------------------------------------------------------process(qq1,qq2,qq3,qq4,qq5,qq6,b,c,d,e,f,g,load4,load5,load6,r1,z1, r2,z2,r3,z4,r5,z5,r6,z6)beginif load4='1' then vis1<=b;vis2<=c;vis3<=d;vis4<=e;vis5<=f;vis6<=g; else if load5='1' thenvis1<=r1;vis2<=r2;vis3<=r3;vis4<=r4;vis5<=r5;vis6<=r6;elsif load6='1' thenvis1<=z1;vis2<=z2;vis3<=z3;vis4<=z4;vis5<=z5;vis6<=z6;elsevis1<=qq1;vis2<=qq2;vis3<=qq3;vis4<=qq4;vis5<=qq5;vis6<=qq6;end if;end if;end process;------------------------------------------------------------------显示模块------------------------------------------------------------------------process(vis1,vis2,vis3,vis4,vis5,vis6)begincase vis1 iswhen "0000"=>q1<="1000000"; when "0001"=>q1<="1111001"; when "0010"=>q1<="0100100"; when "0011"=>q1<="0110000"; when "0100"=>q1<="0011001"; when "0101"=>q1<="0010010"; when "0110"=>q1<="0000010"; when "0111"=>q1<="1111000"; when "1000"=>q1<="0000000"; when "1001"=>q1<="0010000"; when others => null;end case;case vis2 iswhen "0000"=>q2<="1000000";when "0010"=>q2<="0100100"; when "0011"=>q2<="0110000"; when "0100"=>q2<="0011001"; when "0101"=>q2<="0010010"; when "0110"=>q2<="0000010"; when "0111"=>q2<="1111000"; when "1000"=>q2<="0000000"; when "1001"=>q2<="0010000"; when others => null;end case;case vis3 iswhen "0000"=>q3<="1000000"; when "0001"=>q3<="1111001"; when "0010"=>q3<="0100100"; when "0011"=>q3<="0110000";when "0101"=>q3<="0010010"; when "0110"=>q3<="0000010"; when "0111"=>q3<="1111000"; when "1000"=>q3<="0000000"; when "1001"=>q3<="0010000"; when others => null;end case;case vis4 iswhen "0000"=>q4<="1000000"; when "0001"=>q4<="1111001"; when "0010"=>q4<="0100100"; when "0011"=>q4<="0110000"; when "0100"=>q4<="0011001"; when "0101"=>q4<="0010010"; when "0110"=>q4<="0000010";when "1000"=>q4<="0000000"; when "1001"=>q4<="0010000"; when others => null;end case;case vis5 iswhen "0000"=>q5<="1000000"; when "0001"=>q5<="1111001"; when "0010"=>q5<="0100100"; when "0011"=>q5<="0110000"; when "0100"=>q5<="0011001"; when "0101"=>q5<="0010010"; when "0110"=>q5<="0000010"; when "0111"=>q5<="1111000"; when "1000"=>q5<="0000000"; when "1001"=>q5<="0010000";when others => null;end case;case vis6 iswhen "0000"=>q6<="1000000"; when "0001"=>q6<="1111001"; when "0010"=>q6<="0100100"; when "0011"=>q6<="0110000"; when "0100"=>q6<="0011001"; when "0101"=>q6<="0010010"; when "0110"=>q6<="0000010"; when "0111"=>q6<="1111000"; when "1000"=>q6<="0000000"; when "1001"=>q6<="0010000"; when others => null;end case;end process;end;五结论以及结果说明系统的运行环境为DE2,主芯片为Cyclone II EP2C35F672C6NK.输入时钟信号选择50MHz。

相关文档
最新文档