基于CPLD的多功能数字时钟实现1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于CPLD的多功能数字时钟实现
何有为沈祖斌
(江汉大学数计学院湖北,武汉 430056)
摘要:基于CPLD的数字时钟,采用原理图方式设计,使用自上而下的思想和模
块化思想设计时钟系统,形成一个结构明晰的带有防机械按键抖动的多功能数字时钟。在quartusII 9.0平台上编译与仿真,得到正确结果;同时也在ALTERA 公司的CPLD芯片EPM240T100C5上验证通过,效果良好计时精准。本文详细介绍该数字时钟系统通过原理图方式实现的全过程,重点介绍动态刷新、功能选择、校时闪烁、防机械按键抖动模块的功能实现。采用原理图设计方式,加强了对数字逻辑器件的熟悉,能全方位锻炼学生能力。
关键词:数字钟防抖动原理图校时
Abstract:Digital clock based on CPLD, the schematic design, using the
top-down thought and the idea of modularization design of the clock system, forming a structure clear with anti machinery jitter of keys of the multi-function digital clock. On the quartusII 9 platform to compile and simulation, get the right results, but also in the ALTERA company's CPLD chip EPM240T100C5 verification through, the effect of good time accurate. The whole process of the digital clock system is introduced in detail, and the function of dynamic refresh, function selection, flash, and anti mechanical key jitter module are introduced in detail. Using the principle diagram design method, strengthen the understanding of the digital logic device, can the full range of training students' ability.
Key words:digital clock,Anti shake,Schematic diagram,School
1.整体设计方案
本系统采用最原始的原理图设计方案,采用原理图设计能最大限度的了解内部电路结构,了解其中的原理构造,清晰易懂,而且在一定程度上很好的强化与锻炼了“数字逻辑”知识。在一般的简易时钟基础上有了比较明显的改进。
1.1系统需求分析
该时钟主要的功能有:
①数字钟采用12h制计时,由4只数码管显示,不同模式下可以显示时分,
分秒。
②小时和分钟部分具有校时功能,且对分钟校准时,分显示部分闪烁;对
小时校准时,小时显示部分闪烁。
③具有防机械按键抖动功能,能够基本上消除抖动,从而增强系统稳定性。
④外部按键输入不能多于两个,model键用于切换模式,check键用于校时。
⑤当处于时分显示模式时,中间的小数点闪动以此代表秒钟。
⑥以ALTERA公司的EPM240T100C5为硬件基础,要求验证良好,计时精准。
1.2 系统实现流程
如图所示,是该时钟的整体实现流程图,实验板采用CPLD芯片EPM240,它是一个中规模的实验板,有很高的集成性,完全可以完成这个系统的需求。
该时钟的晶振源由实验板自带的50MHz晶振源提供,考虑到系统的特殊性需要一定程度的时间准确性,对50MHz分频得到1Hz的脉冲;然后对其计数,“秒钟”满60清0向分位进一,同样“分”满60进一到“时”,小时采用12小时制,故时满12清零。接着,使用刷新电路对其进行动态刷新,并通过数码管显示出来。对于校时部分,直接通过校时电路对分、时部分进行校时。最后,关于对控制电路的设计,控制电路通过使用模二进制的循环状态机实现显示时分、显示分秒、分钟校时闪烁、小时校时闪烁四种模式循环,不同模式的控制,对模式信号进行处理,从而使MUX进行不同的选择实现显示以及闪烁。关于防抖部分,在每个按键输入处进行消抖处理即可。
2.数字钟模块实现
在确定整体思路基础后,进行模块化设计,采用模块化设计方便进行局部调整,以及模块的重用,便于开发,节省开发流程。可以进行同步设计而不需要等待某个部分设计好后才进行后续设计,能很好的进行并行开发,缩短开发周期。对于该系统划分为以下几个模块去实现:①分频电路②秒钟计时电路③时钟计时电路④动态刷新和译码显示电路⑤控制电路⑥防机械按键抖动电路⑦闪烁电路⑧校时电路⑨功能选择电路
2.1 分频电路实现
由于晶振源为50MHz,考虑该时钟系统需要计时的精准性,故需要将其准确的分频为1Hz脉冲。采用8个74ls90作为分频基础芯片,74ls90可以进行2、5、
10进制计数,将CKLB接输入信号,QD即为5分频后的信号;将CLKA接输入信号,QA接CLKB,则QD输出即为10分频信号。如图所示将一个5分频和7个10分频串联,输出即为1Hz。但考虑到防抖及校时电路还需要其他频率的脉冲,这里也引出100Hz、500Hz、1KHz、10KHz的脉冲信号。
完成该电路设计后将其封装成module,方便后面的调用。封装方法:选中电路图,File → Create/update → Create symbol files for current File 保存即可。系统可直接调用封装好的模块。
2.2 秒钟计时电路实现
在分频电路中已经得到1Hz脉冲,秒钟模块选用74ls90作为个位,采用10进制;74ls92作为十位,采用6进制。选用它们而不用74ls161,考虑到选用最合适的芯片不需要多用的部分从而减少引脚和电路的冗余,使电路尽量精简。将1Hz脉冲引进到74ls90的CLKA,当满十产生进位时,输入到74ls92的CLKA。当74ls92满6产生进位时,输出进位到分钟,并将所有引脚输出,方便后面进行译码显示。如图所示为设计的电路图,同样需要将其封装。由于分钟部分的原理和秒钟完全一致,那么就可以直接重用秒钟模块,而不需要再进行设计。很好的体现模块化设计的优势。