ImageVerifierCode 换一换
格式:DOC , 页数:48 ,大小:360.50KB ,
资源ID:8273566      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-8273566.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(多功能数字钟(电工课程设计).doc)为本站会员(kpmy5893)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

多功能数字钟(电工课程设计).doc

1、目录1 前言 2 总体方案设计 2.1 方案论述 2.2 设计方式 3 单元模块电路设计 3.1 时间显示电路模块设计 3.2 按键及指示灯电路模块的设计 3.3 蜂鸣器及有源晶振电路的设计 3.4 CPLD 编程下载电路的设计 3.5 电源电路电路的设计 3.6 EPM7128SLC84 器件介绍 4 CPLD 编程设计 4.1 系统信号的定义及顶层模块 4.2 时钟节拍产生模块 4.3 模式选择功能模块 4.4 快速时间设置功能模块 4.5 秒、分、时计时与时间调整模块 4.6 闹铃时间设置模块 4.7 闹铃与整点报时模块 4.8 7 段显示译码模块 4.9 LED 显示模块 5 系统功能

2、及功能仿真 5.1 系统功能 5.2 功能仿真 5.2.1 时钟节拍产生模块的仿真波形 5.2.2 模式选择功能模块的仿真波形 5.2.3 闹铃设置功能模块的仿真波形 5.2.4 7 段译码功能模块的仿真波形 5.2.5 LED 显示功能模块的仿真波形 5.2.6 系统总体功能仿真波形 6 设计总结 7 参考文献 附录:基于 CPLD 的多功能数字钟电路图 1 前言我们已经进入了数字化和信息化的时代,其特点是各种数字产品的广泛应用。现代数字产品在性能提高、复杂度增大的同时,其更新换代的步伐也越来越快,实现这种进步的因素在于生产制造技术和电子设计技术的进步。生产制造技术以微细加工技术为代表,目前

3、已进展到深亚微米阶段,可以在几平方厘米的芯片上集成数千万个晶体管。PLD 器件和 EDA 技术的出现,改变了这种传统的设计思路,使人们可以立足于 PLD 芯片来实现各种不同的功能,新的设计方法能够由设计者自己定义器件内部逻辑和管脚,将原来由电路板设计完成的工作大部分放在芯片的设计中进行。这样不仅可以通过芯片设计实现各种逻辑功能,而且由于管脚定义的灵活性,减轻了原理图和印制板设计的工作量和难度,增加了设计的自由度,提高了效率。同时这种设计减少了所需芯片的种类和数量,缩小了体积,降低了功耗,提高了系统的可靠性。本设计是基于 CPLD 的多功能数字钟设计。硬件界面为一个 6 位的 LED 数码管,时

4、间显示方式为 6 位同时显示,即显示状态为:88: 88:88。显示的时间制为 24 小时制。三个时间设定按键,分别为 MODE 模式选择键,SET 设定键和CHANGE 数值修改键。按键功能介绍:MODE 按键用来选择当前数字钟的工作模式,系统正常工作在模式 0 下,即模式 0 为正常时钟模式。当在正常时钟模式下第一次按下 MODE 键时,系统进入模式 1,即闹铃模式,在此模式下可以通过 SET 和CHANGE 按键的配合使用来设定所需要的闹铃时间。当再一次按下 MODE 按键后系统进入手动校时模式,在此模式下通过 SET 和 CHANGE 按键的配合使用,可以改变当前时间。SET 按键则用

5、于在不同的模式下选择当前设定的位置,比如当前设定的位置是小时,则再一次按下 SET 按键后当前设定的位置变为分钟。CHANGE按键用来将当前设定位置的时间值加 1,当长时间按下 CHANGE 按键时,当前设定值为连续快速加 1,此功能用于快速设定时间。系统带四个指灯电路,一个为电源指示灯,其他三个为工作状态指示灯,即分别为 LED_ALARM、LED_HOUR 和LED_MIN。LED_ALARM 用于指示当前是否设有闹铃,当 LED_ALARM 指示灯亮时表明当前设有闹铃。LED_HOUR 和 LED_MIN 用于指示当前设定的是时间的小时还是分钟,当 LED_HOUR 指示灯亮时表明此时设

6、定的是时间的小时值,当 LED_MIN指示灯亮时表明此时设定的是时间的分钟值。 闹铃的功能是实现当到达预设的时间点时产生为时 20S 的“ 嘀嘀嘀嘀”急促短音。整点报时的功能“ title=“下一页“ | 是实现在每个整点的 5 秒钟前产生整点报时音,报时音为“嘀嘀嘀 -嘟”4 短一长音。2 总体方案设计2.1 方案论述本设计是基于 CPLD 的多功能数字钟设计。硬件界面为一个 6 位的 LED 数码管,时间显示方式为 6 位同时显示,即显示状态为:88: 88:88。显示的时间制为 24 小时制。三个时间设定按键,分别为 MODE 模式选择键,SET 设定键和CHANGE 数值修改键。按键功

7、能介绍:MODE 按键用来选择当前数字钟的工作模式,系统正常工作在模式 0 下,即模式 0 为正常时钟模式。当在正常时钟模式下第一次按下 MODE键时,系统进入模式 1,即闹铃模式,在此模式下可以通过 SET 和 CHANGE 按键的配合使用来设定所需要的闹铃时间。当再一次按下 MODE 按键后系统进入手动校时模式,在此模式下通过 SET 和 CHANGE 按键的配合使用,可以改变当前时间。SET 按键则用于在不同的模式下选择当前设定的位置,比如当前设定的位置是小时,则再一次按下 SET 按键后当前设定的位置变为分钟。CHANGE 按键用来将当前设定位置的时间值加 1,当长时间按下 CHANG

8、E 按键时,当前设定值为连续快速加1,此功能用于快速设定时间。系统带四个指示灯电路,一个为电源指示灯,其他三个为工作状态指示灯,即分别为 LED_ALARM、LED_HOUR 和 LED_MIN。LED_ALARM 用于指示当前是否设有闹铃,当 LED_ALARM 指示灯亮时表明当前设有闹铃。LED_HOUR 和LED_MIN 用于指示当前设定的是时间的小时还是分钟,当 LED_HOUR 指示灯亮时表明此时设定的是时间的小时值,当 LED_MIN 指示灯亮时表明此时设定的是时间的分钟值。电源采用+5V 供电。整个设计的设计方式采用 TOP-DOWN 设计方法。多功能数字钟设计分为 1 个顶层模

9、块和 8 个功能子模块。顶层模块名称为 CLOCK.V。各功能子模块分别为:系统分频功能模块 clk_generate.v、模式选择功能模块 mode_select.v、快速时间设置功能模块 fast_settime.v、秒、分、时计时与时间调整模块 time_mode0.v、闹铃时间设置模块 alarm_set.v、闹铃与整点报时模块 alarm.v、7 段显示译码模块decoder_7seg.v 以及 LED 显示功能模块 display.v。2.2 设计方式TOPDOWN 设计,即自顶向下的设计。这种设计方法首先从系统设计入手,在顶层进行功能方框图的划分和结构设计。在功能级进入仿真和纠错

10、,并用硬件描述语言对高层次的系统行为进行描述,然后用综合工具将设计转化为具体门电路网表,其对应的物理实现可以是 PLD 器件或专用集成电路。由于设计的主要仿真和调试过程是在高层次上完成的,这一方面有利于早期发现结构上的错误,避免设计工作的浪费,同时也减少了逻辑功能仿真的工作量,提高了设计的一次成功率。整个设计的设计方式采用 TOP-DOWN 设计方法。多功能数字钟设计分为 1 个顶层模块和 8 个功能子模块。顶层模块名称为 CLOCK.V。各功能子模块分别为:系统分频功能模块 clk_generate.v、模式选择功能模块 mode_select.v、快速时间设置功能模块 fast_setti

11、me.v、秒、分、时计时与时间调整模块 time_mode0.v、闹铃时间设置模块 alarm_set.v、闹铃与整点报时模块 alarm.v、7 段显示译码模块decoder_7seg.v 以及 LED 显示功能模块 display.v。图 2.1 整个系统的模块划分3 单元模块电路设计3.1 时间显示电路模块设计时间显示电路主要由两部分组成,如图 3.1 所示。其中一部分为六位 LED 数码管的驱动电路,另一部分为 LED 数码管电路。LED 驱动电路由Q1、 Q2、Q3 、Q4 、Q5、Q6 六支三级管和 R5、R6、R7 、R8 、R9、R10 基极偏置电阻组成。驱动三级管为 PNP

12、型三极管,用于开关电路中。当三级管 Q1 的基极(即 CPLD 的 LED0 输出端)为低电平时,Q1 的发射结正向偏置,集电结反向偏置,因此三极管处于导通状态,此时有 Vce0.20.3V。反之当 Q1 的基极为高电平时Q1 截止。Q1、Q2、Q3Q6 的基极(LED0LED5)分别接 CPLD 的PIN74、PIN73、PIN70 、| | PIN69、PIN68、PIN67 ,分别作为 LED 数码管的位选端。图 3.1 LED 显示电路LED 的显示方式有静态显示和动态方式两种工作方式。LED 显示器工作于静态显示方式时,各位的共阴极(或共阳极)连接在一起并接地(或+5V);每位的段码

13、线(adp )分别与一个 8 位的锁存器输出相连。之所以为静态显示,是因为各个 LED 的显示字符的字符一经确定,相应锁存器锁存的段码输出将维持不变,直到送入另一个字符的段码为止。正因为如此,静态显示器的亮度都较高。但是因为静态显示方式下,各位 LED 的段码线都是独立的,因此一个 6 位的 LED 显示器需要占用 6*8+6=54 个 I/O 口,在这种情况下为了简化接线,因此在本设计中采用的是动态扫描方式来显示距离。在动态显示方式下,通常将所有位的段码线相应并联在一起,由一个 8 位的I/O 口控制,形成段码线的多路复用,而各位的共阳极或共阴极分别由相应的 I/O口线控制,形成各位的分时选

14、通。图 3.1 所示的电路是一个六位的 LED 显示电路。其中段码线占用 1 个 8 位 I/O 口,而位选线占用六位 I/O 口。由于各段码线并联,8 位 I/O 口输出的段码对各个显示位来说都是相同的。因此,在同一时刻,如果各位位选线都处于选通状态的话六位 LED 将显示相同的字符。若要各位 LED 能同时显示出与本位相应的显示字符,就必须采用动态显示方式,即在某一时刻,只让某一位的位选线处于选能状态,而其他各位的位选处于关闭状态,同时,段码线上输出相应的要显示的字符段码。这样,在同一时刻,六位 LED 中只有选通的那一位显示出字任,而其它四位则是熄灭的。同样在下一时刻,只让下一位的位选线

15、处于选通状态,而其它各位的位选线处于关闭状态,在段码线上输出将要显示字符的段码,则同一时刻,只有选通位显示相应的字符。而其它各位是熄灭的。如此循环下去,就可以使各位显示出将要显示的字符。图 3.1 所示三位数码显示管,常用的 LED 显示器为 8 段。每一个段对应一个发光二极管。这种显示器有共阳极和共阴极 2 种。共阴极 LED 显示器的发光二极管的阴极连接在一起,通常此公共阴极接地。当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。同样,共阳极 LED 显示器的发光二极管的阳极连接在一起,通常此公共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显

16、示。六位 LED 显示器有 6 位位选线和 48 根段码线。段码线控制显示字符的字型,而位选线为各个 LED 显示位中各段的公共端,它控制该 LED 显示位的亮或暗。LED 显示器工作于静态显示方式时,各位的共阴极或共阳极连接在一起并接地或+5V。在多位显示时,为简化硬件电路,通常将所有位的段码线相应段并联在一起,由一个 8 位 I/O 口控制,形成段码线的多路复用。由于各位段码线并联,8 位 I/O口输出的段码对各个显示字符来说都是相同的,因此,在同一时刻,如果各位位选线都外于选通状态的话,6 位 LED 将显示相同的字符,就必需采用动态显示方式,即在某一时刻,只让某一位的位选线外于选通状态

17、,而其他各位的位选线外于关闭状态,同时段码线上输出相应位要显示字符的段码。这样在同一时刻,6 位 LED 中只有选通的那一位显示出字符,而其他 5 位是熄灭的。同样在下一时刻,只让下一位的位选线外于选通状态,而其他各位的位选线处于关闭状态,在段码线上输出将要显示字符的段码,则同一时刻,只有选通位显示出相应的字任,而其他各位刚是熄灭的。如此循环下去,就可以使各位显示出将要显示的字符。虽然这些字符是在不同时刻出现的,但由于人的视觉暂留作用而感到同时显示。3.2 按键及指示灯电路模块的设计根据电子电路常识,采用灌电流工作方式的电路的功耗要比采用拉电流方式工作的电路小。因此本设计中所有的外部键盘,指示

18、二极管均采用灌电流的工作方式。当多功能数字钟的| | 按键未按下时按键的输出(即 CPLD 的输入)为低电平,当按键按下时输出(即 CPLD 的输入)为高电平。在本设计中只有三个按键,分别为 MODE、SET、CHANGE。MODE 按键用于模式选择,按下一次 MODE 按键后电路进入闹铃设置模式,在该模式下可以用SET 键来选择当前是设置小时还是设置分钟,而用 CHANGE 键可以改变当前设置闹铃的小时或分钟(向上加一)。再按一次 MODE 键则进入手动校时功能模式。按键电路如图 3.2 所示。图 3.2 按键电路在本设计中共有四个指示灯,一个为电源指示灯,其它三个是工作状态指示灯,D1 为

19、闹铃报警指示电路,当设置闹铃后闹铃指示电路就工作在点亮状态,指示当前设有闹铃。D2 和 D3 用来指示当前设置状态。当在闹铃设置模式和手动校时模式下,D2 或 D3 会有一个在点亮状态,当 D2 亮时表示当前设置的是小时,当D3 亮时表示当前设置的是分钟。指示灯电路如图 3.3 所示。图 3.3 指示灯电路引脚的连接为,D1 接 CPLD 的 PIN61,D2 接 CPLD 的 PIN63,D3 接 CPLD的 PIN64。当 CPLD 的引脚输出为高电平时相应的指示灯就点亮。3.3 蜂鸣器及有源晶振电路的设计在本设计中由于有音调的变换,所以必需采用交流蜂鸣器。由于 CPLD 管脚的驱动能力有

20、限,因此通过连接一个三极管来增强驱动能力,从而提高蜂鸣器的响度。二极管 D9 起到续流保护的作用,蜂鸣器电路如图 3.4 所示。图 3.4 蜂鸣器电路 系统时钟采用 2.048MHZ 的有源晶体振荡器。为了使有源晶振能输出较好的波形,必需保证供电的稳定。所以在晶振电路的前端加了两个小电容对电源进行滤波,在时钟输出端加了一个小电阻,能有效地抑制高次谐波和实现阻抗匹配。有源晶振电路如图 3.5 所示。图 3.5 有源晶振电路3.4 CPLD 编程下载电路的设计CPLD 器件多采用 JTAG 编程方式,JTAG 编程方式是在线编程,传统生产流程中先对芯片进行预编程现再装到板上因此而改变,简化的流程为

21、先固定器件到电路板上,再用 JTAG 编程,从而大大加快工程进度。JTAG 接口可对 PSD 芯片内部的所有部件进行编程。在硬件结构上,JTAG 接口包括两部分:JTAG 端口和控制器。与 JTAG 接口兼容的器件可以是微处理器(MPU)、微控制器(MCU)、PLD、CPL 、FPGA 、ASIC 或其它符合 IEEE1149.1 规范的芯片。IEEE1149.1 标准中规定对应于数字集成电路芯片的每个引脚都设有一个移位寄存单元,称为边界扫描单元 BSC。它将 JTAG 电路与内核逻辑电路联系起来,同时隔离内核逻辑电路和芯片引脚。由集成电路的所有边界扫描单元构成边界扫描寄存器 BSR。边界扫描

22、寄存器电路仅在进行 JTAG 测试时有效,在集成电路正常工作时无效,不影响集成电路的功能。JTAG 编程方式对 CPLD 和 FPGA 器件都支持,用于 CPLD 器件的下载文件是 POF 文件。JTAG 下载电路如图 3.6 所示。图 3.6 JTAG 下载电路JTAG 下载电路的 10 针接口引脚定义为。1 引脚为 TCK 时钟,2 引脚接地,3引脚 TDO 为测试数据输出(数据输出,来自器件),4 引脚接电源电压,5 引脚TMS 为测试模式选择(编程使能),NC 为 NO-CONNECT。9 引脚 TDI 为测试数据输入(数据输入到器件),10 引脚接地。3.5 电源电路电路的设计本设计

23、中的核心器件为 MAX7000S 系列的 EPM7128SLC84,I/O 口电压VCCIO 和核心电压 VCCINT 均支持正 5V,因此在本设计中统一给 I/O 端口和内核提供+5V 的电压。图 3.7 电源电路电源电路是由电源变压器 T、桥堆、滤波电容 C11、C13、C15、C17 及集成三端稳压电路 7805 以及保险丝组成,其电路图如图 3.7 所示。电源的输出为+5V输出。本系统采用 7805 稳压电路下面介绍电原各部分参数的整定方法:1 变压器次极电压估算(以便选取合适的变压器):由于稳压管要正常工作时输入端的电压必需要比输出端高 2.5V 时才能使稳压管稳定工作。考虑到市网交

24、流电压的波动情况,在市网电压为 200V 时也能正常工作,则| | 有 220/200*Vac 要大于 8.0,所以 VAC 必需要大于 8.8V,即交流变压器的负边输出电压应该高于 8.8V,在本设计中选取 9V。2 变压器输入功率的计算:假设负载电流为 500ma,若输出电压为 5V,则有效功率为 5V*0.5A=2.5W。正常情况下变压器输出功率约为 9V*1.2*1.5A=5.4W,当市网电压升到 250V时,变压器的输出功率为 5.4W*250/220=6.2W。小型电源变压器的效率一般为 75%左右。因此电源变压器的输入功率为6.2W/0.75=8.27W。3 虑波电容参数的选取:

25、假设负载电流为 500ma,若输出电压为 7.5V,则等效负载电阻为 15。电源频率为 50HZ,则 T=0。 02S,根据 CRL=(35) T/2,则C=(35)T/2/RL=20003300uF。在本设计中取 2200uF。 3. 电容耐压应大于 1.42*Vac 即 Vc=1.42*9*250/220=14.5V(其中 250/220是考虑市网电源电压过高时的情况。在本设计中电容耐压值取 16V。3.6 EPM7128SLC84 器件介绍本次设计的核心器件采用 ALTERA 公司的 CPLD 可编程器件。 ALTERA 公司的MAX7000S 系列 CPLD 有着较高的性价比。MAX7

26、000S 系列是基于 ALTERA 第二代MAX 架构的高密度、高性能的 PLD 器件。MAX7000 器件包含 32256 个可联结成16 个宏单元组的逻辑阵列块的宏单元。EPM7128SLC84 是 MAX7000S 家族成员之一,它有如下的特点:可用逻辑门个数为 2500 门,128 个宏单元, 8 个逻辑陈列块,最大用户可用 I/O 口 100 个,支持 5V 在系统编程和符合 IEEE.STD.1179r 的 JTAG 下载接口,内建边界扫描测试电路,支持片上调试 EPM7128SLC84-15 的封装图如图 3.8 所示图 3.8 EPM7128SLC 的 PLCC 封装4 CPL

27、D 编程设计4.1 系统信号的定义及顶层模块整个系统输入、输出信号的定义:sysclk:系统的时钟信号,由外部有源晶振产生,频率为 2.048Mhz;mode:外接按键,模式选择信号,mode=0 时为时钟模式, mode=1 时为设定闹钟模式,mode=2 时为手动设定时间模式;set:外接按键,用于在手动设置时间时选择是调整小时还是分钟;若长时间按住该键,还可以使秒信号清零,用于精确调整时间;change:外接按键,手动调整时间,每按一次计数器加 1;若长时间按住则连续快速加 1,用于快速调时和定时;alarm:接蜂鸣器,输出到蜂鸣器的信号,用于产生闹铃音和报时音;闹铃音为持续 20S的急

28、促的“嘀嘀嘀 ”音,整点报时音为 “嘀嘀嘀- 嘟” 四短一长音;Dataout:输出信号,输出显示时间的数码管显示的段码。include “clk_generate.v“ include “time_mode0.v“include “mode_select.v“include “fast_settime.v“include “alarm_set.v“include “alarm.v“include “decoder_7seg.v“include “display.v“module clock;clk_generate clk_generate(); /调用时钟节拍产生模块time_mode0

29、time_mode0(); / 秒、分、时计时与时间调整模块mode_select mode_select(); /调用模式选择功能模块fast_settime fast_settime(); /调用快速时间设置功能模块alarm_set alarm_set(); /调用闹铃时间设置模块alarm alarm(); /调用闹铃与整点报时模块decoder_7seg decoder_7seg(); /调用 7 段译码模块display display(); /调用显示模块endmodule4.2 时钟节拍产生模块由于整个系统只有一个晶体振荡器,但是设计需要不同的时钟信号,因此需要设计一个分频进程

30、,对系的的有源晶振产生的 2.048MHZ 时钟进行分频,产生需要的时钟节拍。在本设计中总共用到如下几个时钟节拍:1HZ 的时钟 CLK,4HZ 的时钟 CLK_4hz,1kHZ 的时钟信号 CLK_1K,和 50HZ 的时钟 displayclk。其中 CLK 节拍用于产生秒计时信号,在每个 CLK 的上升沿到来时秒计数器加 1。CLK_4hz 节拍用于快速调整时间,当长时间按下 CHANG 按键时,当前设置的时钟快速增加。| | CLK_1k 节拍用于闹铃音的产生,displayclk 时钟节拍是频率为 50HZ 的信号,由于本设计中显示部分采用 LED 动态显示的方式,因此必需要有一个扫

31、描信号对 6 位的 LED 的每个位进行轮流选通点亮。分频进程的原理是在 CPLD 内部设置一个分频计数器和一个触发器,当计数到分频值时触发器进行翻转,因此只要设置不同的分频计数器的计数值就可以得到不同的时钟节拍。在 CPLD 内部设置分频计数器的缺点是,CPLD 的触发器资源有限,设置计数器对资源的占用比较大,因此尽量可能少用一些时钟节拍,或者尽量使需要使用的时钟节拍相同,还有一种方法是利用两个已有的时钟信号进行逻辑运算从面获得想要的时钟节拍。系统的分频进程如下:module clk_generate(reset,sysclk,clk,clk_4hz,clk_1k,displayclk);i

32、nput sysclk,reset;output clk,clk_4hz,clk_1k,displayclk;reg clk,clk_4hz,clk_1k,displayclk;reg 20:0div_count1; /分频时钟计数器,用于产生周期为 1S 的时钟信号reg 19:0div_count2; /分频时钟计数器,用于产生频率为 4hz 的时钟信号reg 11:0div_count3; /分频时钟计数器,用于产生频率为 1Khz 的时钟信号reg 14:0divclk_cnt; /分频时钟计数器,用于产生 50HZ 的数码管扫描信号displayclkalways (posedge

33、sysclk)beginif (reset) div_count1=21d0000000;if (div_count1=21d1024000) /1024000/2048000=0.5Sbeginclk | ; /设定闹铃小时countb=change; led_min,led_hour=2b01;end count2,countb=2b00;enddefault: ount1,count2,counta,countb,led_min,led_hour=0; /正常时钟状态endcaseendendmodule4.4 快速时间设置功能模块多功能数字钟要求有快速时间设置功能和慢设置功能。所谓快速

34、时间设置功能是指一直按住按键不放时,当前值能够快速的增加;而慢设置是指每按一次按键则当前值向上增一。快速时间设置进程如下所示。快速时间设置进程,功能描述:长时间按下“change” 键,则分别生成 num1、num2、num3、num4 信号用于连续快速加 1。当长时间按下 CHANGE 按键后,利用系统的 CLK_4HZ 对计数器进行快速加一处理。如果不是长时间按下 CHANGE 按键的话则每按一次 CHANGE 按建键就对相应的寄存器的值加一处理。(本段的 VerilogHDL 代码详见符件)4.5 秒、分、时计时与时间调整模块秒计时程序采用周期为 1S 的基准时钟信号 CLK,在每个 C

35、LK 时钟信号的上升沿对秒寄存器加 1,当长时间按下 SET 按键后对秒寄存器进行清零,该功能用于准确校时。Ct1 为分计时的同步时钟,在每个 CT1 时钟信号的上升沿对分寄存器加1。当未长时间按下 CHANGE 按键时,CT1 时钟是周期为 60 秒的时钟信号。当长时间按下 CHANGE 后,CT1 时钟变为周期为 4HZ 的时钟信号,该信号用于快速时间校准功能。CTA 时钟是周期为 60 分钟的时钟信号,在每个 cta 时钟信号的上升沿对小时寄存器加 1,当当前设置值为小时且长时间按下 CHANGE 按键后,CTA 时钟变为周期为 4HZ 的时钟信号,该信号用于快速时间校准功能。modul

36、e time_mode0(clk,set,m,count1,ct1,counta,m_clk,h_clk,cta,sec1,min1,hour1);input clk,set,m,count1,counta,ct1,cta,m_clk,h_clk;inout 7:0sec1,min1,hour1;reg minclk,hclk;reg 7:0sec1,min1,hour1;wire m_clk,h_clk;always (posedge clk)beginif (!(sec1 8d59) | set if (!(set else begin if (sec13:0=4b1001)begin sec13:0=4b0000;sec17:4=sec17:4 + 1b1;endelse beginsec13:0 = sec13:0 + 1b1;minclk=1b0;endendendalways (posedge ct1) /分钟计时进程beginif (min1 = 8d59)begin min1 = 0; hclk = 1;endelse begin if (min13:0 =9)begin min13:0 =0;

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报