多功能数字钟设计(Verilog语言编写)

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

多功能数字钟设计

院系:电光学院

班级:***

学号: ***

姓名: ***

指导老师:***

时间:2010.4.20.

摘要:利用QuartusII软件设计一个数字钟,利用模块化的程序设计思想,核心

模块均采用Verilog语言编写(译码显示模块采用原理图设计),软件仿真调试编译成功后,再下载到SmartSOPC实验系统中。经过硬件测试,查找软件设计缺陷,并进一步完善软件,最终设计得到较为满意的多功能数字钟。

关键词:QuartusII; 多功能数字钟; 模块化; Verilog; 可编程;

Abstract:Using the QuartusII software design a digital bell with the blocking method.The design takes theory drawing instead of Verilog language.After emluating and debuging successfully,translate and edit the code.Then,download the result to the programmable SmartSOPC system and test it in hardware.Realizing the soul of designing hardware by software.

Keywords:QuartusII; digital bell; blocking method; VHDL; programmable; hardware

目录

设计内容简介 (3)

设计要求说明 (3)

方案论证(整体电路设计原理) (3)

各子模块设计理 (5)

分频模块: (5)

计数模块: (7)

--校准模块程序实现: (8)

--秒计数模块程序实现: (9)

--分计数模块程序实现: (10)

--时计数模块程序实现: (10)

整点报时模块: (12)

闹钟设定模块: (13)

--闹钟调节模块程序实现: (14)

--输出信号选择模块程序实现: (14)

彩铃模块: (15)

译码显示模块: (18)

万年历模块: (19)

--日计数模块程序设计: (20)

--月计数模块程序设计: (23)

--年计数模块程序设计: (23)

--万年历波形仿真结果: (25)

结论: (26)

实验感想: (26)

附图: (27)

设计内容简介

设计一个数字计时器,可以完成00:00:00到23:59:59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、快速较秒等功能。在设计的电路具有上述基本功能的前提下,我又进行了功能扩展:整点报时、闹钟设置、彩铃和万年历功能。(由于时间限制,万年历功能未经硬件测试,仅通过软件层面简单调试仿真)

设计要求说明

设计基本要求:

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时可以快速校时);

设计提高部分要求

1、使时钟具有整点报时功能(当时钟计到59’53”时开始

报时,在59’53”, 59’55”,59’57”时报时频率为512Hz,59’59”时报时频率为1KHz);

2、闹表设定功能;

方案论证(整体电路的工作原理)

本实验在实现实验基本功能的基础上,加入了整点报时、闹钟设置、彩铃和万年历显示调节功能。整个电路由计数模块、分频模块、校时、校分较秒模块,清零模块、保持模块,整点报时模块,闹钟设定模块、彩铃模块,以及万年历模块构成。(如下图所示)基本功能:数字计时器基本功能是计时,因此首先需要获得具有精确振荡时间的脉振信号,以此作为计时电路的时序基础,实验中可以使用的振荡频率源为48MHZ,通过分频获得所需脉冲频率(1Hz,,2Hz,4Hz,1KHz,500Hz,6MHz)。经过Verilog编程可以轻松获得较为精确的分频信号。在计数模块中,秒位和分位分别通过编程用模60计数器实现,时位通过编程用模24计数器实现。校时、校分及校秒模块则通过语言选择实现。清零及保持功能在

计数模块中用判断语句可轻松实现。计数模块总共输出6路信号:秒位的个、十位,分位的个、十位及时位的个、十位。

整点报时:利用计数模块的输出作为报时模块的输入,当检测到59’53”, 59’55”,59

实验模块原理图

57”时令报时模块的输出为500Hz,59’59”时令报时模块的输出为1Kz.,驱动蜂鸣器产生不同的响声。

闹钟设定模块:这里设计一个闹钟模块,输入为计数模块的输出及一系列调节信号,输出接到译码模块上。在闹钟模块内部,核心模块是一个选择模块,选择输出的信号是闹钟显示还是正常的计数显示。为了使闹钟模块与计数模块是相互独立的,因此单独设计模24(闹钟小时)和模60(闹钟分钟)作为选择模块的输入。设计程序语言的思想是,当检测到与设定闹钟相同的时、分位时就输出一个信号1,并保存当前计数位(加1)当检测到当前信号与保存位相同时输出信号恢复为0。(这个信号将作为闹铃结束的判断信号)

彩铃模块:本程序选用了一段悠扬的梁祝音乐,该模块的输入分别为6MHz和4Hz,通过编程实现输出为符合音律的不同频率。程序实现的思想并不复杂,只要有乐谱可以实现各种不同的音乐输出。蜂鸣器何时鸣叫取决于闹钟模块的输出。

译码显示模块:本模块没有采用V erilog语言实现,通过搭建原理图实现。显示功能是通过数选器、译码器、码转换器和7段显示管实现的。因为实验中只用一个译码显示单元,

相关文档
最新文档