《数字钟的设计(共20页).doc》由会员分享,可在线阅读,更多相关《数字钟的设计(共20页).doc(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上Hefei University项目设计报告专心-专注-专业数字钟的设计一、 项目要求1、数字钟显示秒、分、时。2、数字钟可清零、可进行校时,校分。3、数字钟能进行整点报时及闹铃。二、 设计方案模块介绍:本数字钟的设计是由计数模块、调键模块、分频模块、整点报时及音乐模块MISIC组成。其中计数模块分别是由miao60、fen60、shi24模块组成,构成一个计数显示电路。调键模块是由计数模块和二选一模块组成,分别控制shi24、fen60模块。分频模块将10MHz的脉冲产生1Hz、4Hz和1MHz的脉冲,1Hz用于计数模块,为计数时钟的脉冲。4Hz和1MHz用音乐模块
2、,为数控分频器的时钟输入和4Hz音乐节拍。整点报时模块是当时钟计数到整点时,蜂鸣器发出声响。音乐模块对预置的时间可播放长达一分钟梁祝音乐。设计思路:(1)自顶向下设计分割图2.1所示:图2.1 数字钟自顶向下设计分割图(2)数字钟顶层模块图如图2.2所示:图2.2 数字钟顶层图三、 项目内容3.1时钟计数与校时校分模块本项目所设计的数字钟能进行正常的时、分、秒计时功能和校时校分功能。计时标准为 23:59:59,即一分钟60秒,一小时60分钟,一天24小时。当秒位达到59,由进位端向分位发出一个脉冲;当分位达到59,由进位端向时位发出一个脉冲。 rst 为清零开关,当其为“1”,时钟清零为 1
3、2:00:00。本项目将时钟计数与校时校分这两个功能集成在一个模块中,并通过两个2选1数据选择器实现此功能。当选择开关s为高电平时,将选中4Hz输入信号作为分计数器的计数脉冲或时计数器的脉冲,使它们频率加快,从而实现校时校分的功能;当选择开关s为低电平时,则数据选择器将秒计数的进位脉冲送到分计数器,也能将分计数器的进位脉冲送到时计数器,使数字钟正常工作。3.1.1时钟秒计数子模块给秒计数器一个1Hz的时钟脉冲,正常计数时,当秒计数器(60进制)计数到59时,再来一个脉冲,则秒计数器清零,重新开始新一轮的计数,而进位则作为分计数器的计数脉冲,使分计数器计数加1。秒进位子模块封装图如下所示:具体程
4、序如下图所示:仿真图如下::当rst信号为高电平时,秒计数器被清零;:当秒计数到59时,产生一个进位,即carry=1,之后重新开始计数。3.1.2时钟分计数子模块正常计数时,当分计数器计数到59时,再来一个时钟脉冲,则分计数器清零,而进位则作为时计数器的计数脉冲,使时计数器加一。现在把秒计数器的进位脉冲和一个频率为4Hz的脉冲信号同时接到一个2选1数据选择器的两个数据输入端,而位选信号则接一个脉冲按键开关,当按键开关不按下去时(即为0),则数据选择器将秒计数器的进位脉冲送到分计数器,此时,数字钟正常工作;当按键开关按下去时(即为1),则数据选择器将另外一个4Hz的信号作为分计数器的计数脉冲,
5、使其计数频率加快,当达到正确的时间,按动按键开关,从而达到校分的目的。 2选1数据选择器其封装图如下所示:具体程序如下所示:仿真图如下:当s=1时,y输出为b,即给分计数器的脉冲频率为4Hz,此时可对分进行校时功能;当s=0时,y输出为a,即给分计数器的脉冲为秒计数器的进位脉冲,此时实现的功能是让数字钟正常工作。分计数器其封装图如下图所示:具体程序如下所示:仿真图如下所示::当rst信号为高电平时,分计数器被清零;:当分计数器计数到59时,产生一个进位,即carry=1,之后重新开始计数。3.1.3时钟时计数子模块时计数子模块是由一个24进制计数器组成,正常计数时,当时计数器计数到23时,再来
6、一个脉冲,则时计数器清零,重新开始新一轮的计数。现在把分计数器的进位脉冲和一个频率为4Hz的脉冲信号同时接到一个2选1数据选择器的两个数据输入端,而位选信号则接一个脉冲按键开关,当按键开关为低电平时,则数据选择器将分计数器的进位脉冲送到时计数器,此时,数字钟正常工作;当按键开关为高电平时,则数据选择器将另外一个4Hz的信号作为时计数器的计数脉冲,使其计数频率加快,当达到正确的时间,按动按键开关,从而达到校时的目的。时计数器的封装图如下图所示:具体程序如下所示: 仿真图如下所示:当rst信号为高电平时,时计数器被清零,回到初始状态12;:当时计数器计数到23时,时清零,重新开始新一轮的计数。3.
7、2定时及整点报时模块功能描述该模块分为两个功能,即定时和整点报时定时:代码中设计06:30:00时,发光二极管会亮起,同时蜂鸣器也会发出声音,提醒所定的时间到了,即音乐模块里设计的“梁祝”,维持时间一分钟整点报时:代码中设计每到一个整点的时候,发光二极管会亮起,且蜂鸣器会发出声音,提醒整点到了实验代码封装图仿真波形波形分析:如上图所示1)定时:当时间从06:30:00变到06:30:59,在这一分钟的时间内,发光二极管一直在处于高电平状态(lamp=“1111”),即灯亮起,且随着音乐的节拍有规律有节奏的闪烁;而此时的蜂鸣器会发出设计好的“梁祝”(speak1=“1111”),维持一分钟的时间
8、,到06:31:00时,发光二极管处于低电平状态(lamp=“0000”),即灯不亮2)整点报时:当时间处于整点时,例上图处于07:00:00时刻,此时,发光二极管会亮起(lamp=“1111”),且此时的蜂鸣器会发出声音(speak2=“1111”)3.3分频器模块功能描述把10MHz分为1Hz,4Hz,1MHz三个频率,1Hz的作为秒计数的时钟信号频率4Hz的作为音乐模块中的138计数器的时钟信号频率,1MHz作为音乐模块中的数控分频器的SPK。实验代码(1)10MHz分为1Hz时,即10,000,000分频(2)10MHz分为4Hz时,即2,500,000分频将上述代码中的counter
9、_len设置为整数型,并赋值为。其余与上述代码相同,即可实现4Hz。(3)10MHz分为1MHz时,即10分频将上述代码中的counter_len设置为整数型,并赋值为9。其余与上述代码相同,即可实现1MHz。封装图 分为1Hz 分为4Hz 分为1MHz仿真波形在此只列出将10MHz分为1MHz的仿真波形,余下两个类似,不再赘余波形分析:当第一个clk信号到第五个clk信号期间,qout一直输出低电平,当第六个clk信号来到时,qout开始输出高电平,明显可以看出这是一个10分频。则可以类推,10MHz分为1Hz为10,000,000分频,10MHz分为4Hz为2,500,000分频3.5音乐
10、模块MISIC3.5.1音乐模块原理:硬件乐曲演奏电路顶层模块图如图3.5.1所示,电路由5个子模块构成。本模块为“梁祝”乐曲演奏电路的实现。组成乐曲的每个音符的发音频率值及其持续的时间是乐曲能连续演奏所需的两个基本要素。图3.5.1 乐曲演奏电路顶层设计3.5.2 SPK模块SPK模块原理:音符的频率可以由图3.5.2中的SPK获得。这是一个数控分频器。由其CLK端输入一具有较高频率(1MHz)的时钟,通过SPK分频后,由boom口输出。由于直接从分频器中出来的输出信号是脉宽极窄的信号,为了有利于驱动扬声器,需另加一个D触发器分频以均衡其占空比,但这时的频率将是原来的1/2。SPK对CLK输
11、入信号的分频比由输入的11位预置数TN10.0决定。SPK的输出频率将决定每一音符的音调;这样,分频计数器的预置值TN10.0 与输出频率就有了对应关系,而输出的频率又与音乐音符的发声有对应关系,例如在TT模块中若取TN10.0=11H40C,将由boom发出音符为“3”音的信号频率。详细的对应关系可以参考图3.5.3的电子琴音阶基频对照图。图3.5.2 TT模块图图3.5.3 电子琴音阶基频对照图(单位Hz)VHDL代码3.TT模块TT模块原理:音符的持续时间需根据乐曲的速度及每个音符的节拍数来确定,图3.3中模块TT的功能首先是为模块SPK(11位分频器)提供决定所发音符的分频预置数,而此
12、数在SPK输入口停留的时间即为此音符的节拍周期。模块TT是乐曲简谱码对应的分频预置数查表电路,程序数据是根据图3.2得到的,程序中设置了“梁祝”乐曲全部音符所对应的分频预置数,共14个,每一音符的停留时间则由音乐节拍和音调发生查表模块ROM中简谱码和工作时钟clock的频率决定,在此为4Hz。这4Hz频率来自分频模块fenpin4hz.而模块TT的14个值的输出由对应于rom模块输出的q3.0及4位输入值index3.0确定,而index3.0最多有16种可选值。输向模块TT中index3.0的值在SPK中对应的输出频率值与持续的时间由模块rom决定。模块图如图3.5.4所示:图3.5.4 T
13、T模块图VHDL代码4.CNT138模块CNT138模块原理:模块CNT138是一个8位二进制计数器,内部设置计数最大值为139,作为音符数据ROM的地址发生器。这个计数器的计数频率即为4Hz。即每一计数值的停留时间为0.25秒,恰为当全音符设为1秒时,四四拍的4分音符持续时间。例如,“梁祝”乐曲的第一个音符为“3”,此音在逻辑中停留了4个时钟节拍,即1秒时间,相应地,所对应的“3”音符分频预置值为11H40C,在SPK的输入端停留了1秒。随着计数器CNT138按4Hz的时钟速率作加法计数时,即随地址值递增时,音符数据ROM模块中的音符数据将从 ROM中通过q3.0端口输向TT模块,“梁祝”乐
14、曲就开始连续自然地演奏起来了。CNT138的节拍是139,正好等于ROM中的简谱码数,所以可以确保循环演奏。对于其他乐曲,此计数最大值要根据情况更改。模块图如图3.5.5所示:图3.5.5 CNT138模块图VHDL代码5.音符ROM模块此模块是用来存放梁祝的音符数据,数据如下所示,模块图见图3.5.6。图3.5.6 音符ROM图音符数据:WIDTH = 4 ; /“梁祝”乐曲演奏数据DEPTH = 256 ; /实际深度139ADDRESS_RADIX = DEC ; /地址数据类是十进制DATA_RADIX = DEC ; /输出数据的类型也是十进制CONTENT BEGIN /注意实用文
15、件中要展开以下数据,每一组占一行00: 3 ; 01: 3 ; 02: 3 ; 03: 3; 04: 5; 05: 5; 06: 5; 07: 6; 08: 8; 09: 8;10: 8 ; 11: 9 ; 12: 6 ; 13: 8; 14: 5; 15: 5; 16:12; 17: 12;18: 12;19:15;20:13 ; 21:12 ; 22:10 ; 23:12; 24: 9; 25: 9; 26: 9; 27: 9; 28: 9; 29: 9;30: 9 ; 31: 0 ; 32: 9 ; 33: 9; 34: 9; 35:10; 36: 7; 37: 7; 38: 6; 39
16、: 6;40: 5 ; 41: 5 ; 42: 5 ; 43: 6; 44: 8; 45: 8; 46: 9; 47: 9; 48: 3; 49: 3;50: 8 ; 51: 8 ; 52: 6 ; 53: 5; 54: 6; 55: 8; 56: 5; 57: 5; 58: 5; 59: 5;60: 5 ; 61: 5 ; 62: 5 ; 63: 5; 64:10; 65:10; 66:10; 67:12; 68: 7; 69: 7;70: 9 ; 71: 9 ; 72: 6 ; 73: 8; 74: 5; 75: 5; 76: 5; 77: 5; 78: 5; 79: 5;80: 3 ;
17、81: 5 ; 82: 3 ; 83: 3; 84: 5; 85: 6; 86: 7; 87: 9; 88: 6; 89: 6;90: 6 ; 91: 6 ; 92: 6 ; 93: 6; 94: 5; 95: 6; 96: 8; 97: 8; 98: 8; 99: 9;100:12;101:12 ;102:12 ;103:10;104: 9; 105: 9;106:10;107: 9;108: 8;109: 8;110: 6;111: 5 ;112: 3 ;113: 3;114: 3; 115: 3;116: 8;117: 8;118: 8;119: 8;120: 6;121: 8 ;122
18、: 6 ;123: 5;124: 3; 125: 5;126: 6;127: 8;128: 5;129: 5;130: 5;131: 5 ;132: 5 ;133: 5;134: 5; 135: 5;136: 0;137: 0;138: 0;END ;四、硬件实现本次实验电路选择模式7,电路图如下所示:4.1引脚锁定将设计编程下载进选定的目标器件中,作进一步的硬件测试,操作如下:实验系统对应信号与芯片引脚对照表端口信号名结构图上信号名实验箱显示clk2CLOCK24Hzclk3CLOCK0256HzclkCLOCK910MHzrstPIO3键4jian5PIO4键5jian8PIO7键8q1P
19、IO19-PIO16译码器1q2PIO23-PIO20译码器2q3PIO27-PIO24译码器4 q4PIO31-PIO28译码器5q5PIO35-PIO32译码器7q6PIO39-PIO36译码器8speakSPEAKER扬声器led1PIO43-PIO40D4、D3、D2、D1led2PIO47和PIO44D8和D5:引脚锁定图如下所示4.2硬件测试硬件实现图片情况结果分析初始状态:设为12:00:00无论是按系统复位键还是按键4键,都可以将数字钟回归初始状态,即为12:00:00,同时蜂鸣一下,表示整点报时校分若想改变分的显示,按动键5,使分以4Hz为计数脉冲,使其计数频率加快,当达到正
20、确时间时,松动按键开关校时若想改变时的显示,按动键8,使时以4Hz为计数脉冲,使其计数频率加快,当达到正确时间时,松动按键开关秒进位秒进位前:此时时间为05:04:59,当下一个时钟脉冲来的时候会产生一个进位信号给分秒进位后:当分获得进位信号后,分在原有的基础上加1,而此时,秒会清零,此时时间显示为05:05:00分进位分进位前:此时时间为05:59:59,又一个时钟上升沿过来时,秒会产生一个进位信号给分,分会产生一个进位信号给时分进位后:时在原有的基础上加1,分位和秒位清零,则此时时间显示为06:05:00闹铃定时:设置为06:30:00代码中设定闹铃时间为06:30:00,当时间为06:3
21、0:00时,上面的前四个发光二极管会一直亮起,后面四个会随着我们闹钟的梁祝音乐有序的闪烁,响铃持续时间为1分钟五、 项目总结,才会一步步向自己的目标靠近,才会取得自己所要追求的成功。本次数字钟的设计,我们小组花了很多的精力,经过对源程序的编辑、编译、仿真、编程下载,在EDA实验开发系统进行验证时达到了我们预期的效果。但这过程并不是一帆风顺,中间遇到了很多的困难。一开始我们是分模块进行设计,每个人负责几个模块。比如在负责音乐模块中,我们小组一开始想利用锁相环获得1MHz和4Hz,却发现编译通不过,我们很是困惑,不知哪里出现问题。最后通过查找资料发现4Hz已不再cyclone芯片的分频范围内,找到原因后,我们小组转换思路,利用以前做的分频模块解决了问题。做完各个模块后,顶层电路图的绘制也出现了很多的问题,令我们小组最头痛的是怎样将音乐模块与计数显示电路连接起来,我们小组想了很长时间,最后利用二选一模块很巧妙地解决了这个问题。因我们的顶层电路复杂,进行连线的不可避免有漏接的现象,我们不得不一个一个模块检查,经过我们的努力,终于实现了所有的要求。在实验中,我们小组一起交流解决了问题,使我们明白了和他人共同合作的重要性。我们想成功就是在不断摸索着前进中实现的,遇到问题我们不能灰心、烦躁,甚至放弃,而要静下心来仔细思考,分部检查,找出最终的原因进行改正,这样才会有进步