多功能数字钟实习报告——西南交通大学.doc
《多功能数字钟实习报告——西南交通大学.doc》由会员分享,可在线阅读,更多相关《多功能数字钟实习报告——西南交通大学.doc(33页珍藏版)》请在沃文网上搜索。
1、设计任务及要求课程设计多功能数字钟1.设计任务:设计一个多功能数字钟,实现以下功能基本要求:(1).时间的显示与设置(2).闹钟,闹钟提示音为音乐(3).日期的显示与设置 (4).秒表2.设计说明(1) SW1功能键用来选择不同的功能模式: 1号功能:时间正常显示 2号功能:时间的调整与设置 3号功能:闹钟的设置与查看 4号功能:日期的正常显示 5号功能:日期的调整与设置 6号功能:秒表功能(2) SW2主要用于闹钟设置、时间的调整与设置、日期的调整与设置中的位置选择按钮,与功能键SW1配合使用,具体功能如下: 2号功能模式,即时间的调整与设置时,用作时、分、秒的移位,按一下,将会实现“时-分
2、-秒”的依次移位,便于调整键SW3在特定位置进行调整。 3号功能模式,即闹钟的设置与查看时,用作时、分、秒的移位,按一下,将会实现“时-分-秒”的依次移位,便于调整键SW3在特定位置进行调整。 5号功能模式,即日期的调整与设置时,用作年、月、日的移位,按一下,将会实现“年-月-日”的依次移位,便于调整键SW3在特定位置进行调整。(3) SW3主要用于闹钟设置、时间调整与设置、日期调整与设置中的调整按钮。与功能键SW1配合使用,具体功能如下: 2号功能模式,即时间的调整与设置时,用作时、分、秒数字的调整,按一下,将会使得当前调整键SW2选择的位置数字增加1。 3号功能模式,即闹钟的设置与查看时,
3、用作时、分、秒数字的调整,按一下,将会使得当前调整键SW2选择的位置数字增加1。 5号功能模式,即日期的调整与设置时,用作年、月、日数字的调整,按一下,将会使得当前调整键SW2选择的位置数字增加1。(4) 3.提示 显示部分可采用动态数码管显示 为避免损坏器件,可编程器件的输入和数码管的输入前需要接入几百欧的电阻限流。 按键消抖: 通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖。 按键的消抖,可用硬件或软件两种
4、方法。本次设计建议采用软件的方法进行按键消抖,即检测出键闭合后执行一个延时程序,5ms10ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给5ms10ms的延时,待后沿抖动消失后才能转入该键的处理程序。 时基的输入信号可采用EPM570T100C芯片自带的5.56MHz的信号。4时基部分可采用开发板上自带的50MHz信号进行分频。 目录第1章 绪 论21.1 背景和意义2第2章 设计22.1 设计方案和可行性分析22.1.1设计方案22.1.2可行性分析32. 2.系统框图及部分功能描述 42.2.1系统框图42.2.2 部
5、分功能介绍42.3 程序设计及代码5 2.3.1程序设计及代码5 2.4 测试步骤及过程 262.4.1测试步骤262.4.2测试过程262.4.3遇到的问题及解决262.5 设计成果图26第3章 总结293.1设计成果总结293.2收获及感想29参考文献29- 30 -第1章 绪 论背景和意义数字钟是现代计时器,也可以用作时间控制的时钟源。数字钟由于其具有走时准,显示直观,款式新颖,附加功能多等特点而受到人们的欢迎。设计一个具有整点报时,可对时的数字钟。由于数字集成电路的发展和石英晶体震荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地
6、扩展了钟表原先的报时功能。如定时自动报警、按时自动打铃、定时广播、自动启闭路灯、甚至各种定时电器的自动启用等,所有这些,都是一钟表数字化为基础的。因此研究数字钟及扩大其应用,有着非常现实的意义。 第2章 设计2.1设计方案和可行性分析2.1.1 设计方案 整个电路由计数模块、分频模块、校时、校分校秒模块,清零模块、保持模块,整点报时模块,闹钟设定模块、报警模块,以及年月周模块构成。(如下图所示)基本功能:数字计时器基本功能是计时,因此首先需要获得具有精确震荡时间的脉冲信号,以此作为计时电路的时序基础,实验中可以使用的振荡频率源为50MHZM通过分频获得所需脉冲频率(1Hz,2Hz,4Hz,50
7、0Hz,1KHz,6MHz)。经过Verilog编程可以轻松获得较为精确的分频信号。 在计数模块中,秒位和分位分别通过编程用模60计数器实现,时位 通过编程用模24计数器实现。校时,校分及校秒模块则通过语言选择实现。 清零及保持功能在计数模块中用判断语句可轻松实现。计数模块总共输出为6路信号:秒位的个、十位、分位的个、十位及时位的个、十位。 整点报时模块: 利用计数模块的输出作为报时模块的输入,当检测到5953”,5955”,5957”时令报时模块输出为1Kz,驱动蜂鸣器产生不同的响声。 闹钟设定模块: 这里设计一个闹钟模块,输入为计数模块的输出及一系列调节信号,输出接到译码模块上。 在闹钟模
8、块内部,核心模块时一个选择模块,选择输出的信号是闹钟显示还是正常计数显示。为了是使闹钟模块与技术模块是相互独立的,因此单独设计模24(闹钟小时)和模60(闹钟分钟)作为选择模块的输入。设计程序语言的思想是,当检测到与设定闹钟相同的时、分位时就输出一个信号1,并保存当前技术位(加1)当检测到当前信号与保存位相同时输出信号恢复为0。(这个信号将作为闹铃结束的判断信号) 蜂鸣器鸣响模块:本程序选用了音乐闹铃,通过编程实现输出为符合的音律的不同频率。程序实现的思想并不复杂。蜂鸣器何时鸣叫取决于闹钟模块的输出。 译码显示模块:本模块没有采用Verilog语言实现,通过搭建原理图实现。显示功能是通过数选器
9、、译码器、码转换器和7段显示管实现的。因为实验中只用一个译码显示单元,6个7段(用于显示时分秒),所以通过1个24选4MUX和一个3-8译码器配合,显示译码器采用7447,根据计数器的信号进行数码管的动态显示。 年月日模块:通过编程可以轻松实现,原理与上述计数模块,调节模块很是类似。计数模块动态扫描译码显示模块整点报时模块闹钟设定模块蜂鸣器鸣响模块秒表模块(包含保持和清零模块)年月日模块(包含设定模块)分频模块校时模块校分模块校秒模块图(一)实验模块原理图可行性分析 Verilog HDL是一种硬件描述语言(HDL:Hardware Discription Language),是一种以文本形式
10、来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。2.2系统框图及部分功能描述2.2.1系统框图系统框图如下图(二)所示:图(二)系统框图2.2.2部分功能描述(1)sw1,sw2,sw3为三个控制按键功能分别为时钟功能切换,时钟设置和调整时对调整位置进行选择,对时钟进行设置。(2)按键消抖模块的功能:由于当我们通过按键调整时钟是会存在抖动,而抖动会产生干扰脉冲对时钟调整造成很大干扰,是无法准确的进行调整,故此模块的功能是将抖动产生的干扰信号去掉,消除抖动对时钟调整的干扰。(3)可编程逻辑器件模块结构图和功能: 结构图如下图(三)
11、所示:如图显示该模块为一个综合模块其包含了多个分模块,分别为:分频模块、时分秒计时模块、时分秒调整与设置模块、闹钟设置和查看模块、日期计时模块、时间调整与设置模块、按键控制模块还有译码动态扫描模块。该模块是电路的核心也是整个数字钟的核心。数字中的各种功能就是在该可编程逻辑器件里实现,各分模块在 图(三) 可编程逻辑器件模块结构图可编程逻辑器件内紧密联系、相互协调从而实现数字钟的各种功能。(4)LED显示模块:该模块的主要功能就是对可编程逻辑器件输出的译码和动态扫描结果进行显示。包括时间显示、日期显示、闹钟显示和秒表显示几个部分。2.3程序及代码 2.3.1分频模块:主要是将50mhz的频率分为
12、我们所需的1khz的频率。module fengpingsm(clk_50m,clk_1000);input clk_50m;output clk_1000;reg24:0 count;reg clk_1k;always (posedge clk_50m) if(count = 25d25000) begin clk_1000=clk_1000;count=0;end else count=count+1; endmodule分频模块的电路图为图(四)分频电路所示: 图(四)分频电路2.3.2消抖部分:clk为1khz的频率,他的周期是1ms。key_in为输入信号sw为输出信号当key_co
13、unt计数为在key_in输入为1保持20以上的时候,即超过了20ms的时候,key_in的“1”将送出。当key_in为低电平的时候就将key_count变为0,即重新计数module xiaodou(clk,key_in,sw);input key_in,clk;output sw;reg sw;reg4:0key_count;always (posedge clk)begin if(key_in=1) begin key_count=key_count+1b1; sw=d20) begin key_count=d21; sw=1b1; end end else begin sw=1b0;
14、 key_count=1b0; endendendmodule我们在消抖的时间设置的是20ms. 消抖电路如下图(五)消抖电路所示: 图(五)消抖电路2.3.3闹钟音乐模块/音乐产生模块module song(clk_50mhz,clk_4hz,speaker,alert); /模块名为song(端口列表)input clk_50mhz,clk_4hz,alert; /定义两个输入端口output speaker; /定义一个输出端口reg3:0 high,med,low; /定义了3个4位寄存器reg13:0 divider,origin; /定义了2个14位寄存器reg4:0 counte
15、r;reg speaker; wire carry;assign carry=(divider=16383); /连续赋值语句always (posedge clk_50mhz) begin if(carry) begin divider=origin; end else divider=divider+1; endalways (posedge carry) if(alert) begin speaker=speaker;end /二分频产生方波信号 else speaker=0;always (posedge clk_4hz) begin case(high,med,low) /分频比预置
16、 b000000000011:origin=7281; /低音3 b000000000101:origin=8730; /低音5 b000000000110:origin=9565; /低音6 b000000000111:origin=10310; /低音7 b000000010000:origin=10647; /中音1 b000000100000:origin=11272; /中音2 b000000110000:origin=11831; /中音3 b000001010000:origin=12556; /中音5 b000001100000:origin=12974; /中音6 b0001
17、00000000:origin=13516; /高音1 b000000000000:origin=16383; /休止符endcaseendalways (posedge clk_4hz) begin if(counter=20) counter=0; /计时,以实现循环演奏 else counter=counter+1;case(counter) /记谱 0: high,med,low=b000000000011; /低音3 1: high,med,low=b000000000011; /持续4个时钟节拍 2: high,med,low=b000000000011; 3: high,med,
18、low=b000000000011; 4: high,med,low=b000000000101; /低音5 5: high,med,low=b000000000101; /发3个时钟节拍 6: high,med,low=b000000000101; 7: high,med,low=b000000000110; /低音6 8: high,med,low=b000000010000; /中音1 9: high,med,low=b000000010000; /发3个时钟节拍 10: high,med,low=b000000010000; 11: high,med,low=b000000100000
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多功能 数字 实习 报告 西南交通大学
