数字钟设计Word文档格式.docx
- 文档编号:19160655
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:13
- 大小:22.06KB
数字钟设计Word文档格式.docx
《数字钟设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《数字钟设计Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
到给秒计数器一个1Hz的时钟脉冲,正常计数时,当秒计数器(60进制)计数
到59时,再来一个脉冲,则秒计数器清零,从头开始新一轮的计数,而进位则作为分计数器的计数脉冲,使分计数器计数加1。
秒进位子模块封装图以下所示:
详细程序以下列图所示:
仿真图以下:
①:
当rst信号为高电平常,秒计数器被清零;
②:
当秒计数到59时,产生一个进位,即carry=‘1’,以后从头开始计数。
时钟分计数子模块
正常计数时,当分计数器计数到59时,再来一个时钟脉冲,则分计数器清零,而进位则作为时计数器的计数脉冲,使时计数器加一。
此刻把秒计数器的进位脉冲和一个频次为4Hz的脉冲信号同时接到一个2选1数据选择器的两个数据
输入端,而位选信号则接一个脉冲按键开关,当按键开关不按下去时(即为0),则数据选择器将秒计数器的进位脉冲送到分计数器,此时,数字钟正常工作;
当按键开关按下去时(即为1),则数据选择器将此外一个4Hz的信号作为分计数器的计数脉冲,使其计数频次加速,当达到正确的时间,按动按键开关,进而达到校分的目的。
2选1数据选择器其封装图以下所示:
详细程序以下所示:
s=‘1’时,y输出为b,即给分计数器的脉冲频次为4Hz,此时可对分进行校时功能;
当s=‘0’时,y输出为a,即给分计数器的脉冲为秒计数器的进位脉冲,此时实现的功能是让数字钟正常工作。
②分计数器
其封装图以下列图所示:
仿真图以下所示:
当rst信号为高电平常,分计数器被清零;
当分计数器计数到59时,产生一个进位,即carry=‘1’,以后从头开始计数。
时钟时计数子模块
时计数子模块是由一个24进制计数器构成,正常计数时,当时计数器计数到23时,再来一个脉冲,则时计数器清零,从头开始新一轮的计数。
此刻把分
计数器的进位脉冲和一个频次为4Hz的脉冲信号同时接到一个2选1数据选择器的两个数据输入端,而位选信号则接一个脉冲按键开关,当按键开关为低电平常,则数据选择器将分计数器的进位脉冲送到时计数器,此时,数字钟正常工作;
当按键开关为高电平常,则数据选择器将此外一个4Hz的信号作为时计数器的计数脉冲,使其计数频次加速,当达到正确的时间,按动按键开关,进而达到校时的目的。
时计数器的封装图以下列图所示:
仿真图以下所示:
当rst信号为高电平常,时计数器被清零,回到初始状态
12;
当时计数器计数到23时,时清零,从头开始新一轮的计数。
准时及整点报时模块
①功能描绘
该模块分为两个功能,即准时和整点报时
准时:
代码中设计06:
30:
00时,发光二极管会亮起,同时蜂鸣器也会发作声音,提示所定的时间到了,即音乐模块里设计的“梁祝”,保持时间一分钟
整点报时:
代码中设计每到一个整点的时候,发光二极管会亮起,且蜂鸣器会发作声音,提示整点到了
②实验代码
③封装图
④仿真波形
波形剖析:
如上图所示
准时:
当时间从06:
00变到06:
59,在这一分钟的时间内,发光二极管向来在处于高电平状态(lamp=“1111”),即灯亮起,且跟着音乐的节拍有规律有节奏的闪耀;
而此时的蜂鸣器会发出设计好的“梁祝”(speak1=“1111”),保持一分钟的时间,到06:
31:
00时,发光二极管处于低电平状态(lamp=“0000”),
即灯不亮
整点报时:
当时间处于整点时,例上图处于07:
00时辰,此时,发光二极管会亮起(lamp=“1111”),且此时的蜂鸣器会发作声音(speak2=“1111”)
分频器模块
10MHz分为1Hz,4Hz,1MHz三个频次,1Hz的作为秒计数的时钟信号频
4Hz的作为音乐模块中的138计数器的时钟信号频次,1MHz作为音乐模块中的数控分频器的SPK。
(1)10MHz分为1Hz时,即10,000,000分频
(2)10MHz分为4Hz时,即2,500,000分频
将上述代码中的counter_len设置为整数型,并赋值为2499999。
其余与上述代码同样,即可实现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分频
音乐模块MISIC
音乐模块原理:
硬件乐曲演奏电路顶层模块图以下图,电路由5个子模块构成。
本模块为“梁祝”乐曲演奏电路的实现。
构成乐曲的每个音符的发音频次值及其持
续的时间是乐曲能连续演奏所需的两个基本因素。
图乐曲演奏电路顶层设计
SPK模块
SPK模块原理:
音符的频次能够由图中的SPK获取。
这是一个数控分频
器。
由其CLK端输入一拥有较高频次(1MHz)的时钟,经过SPK分频后,由boom
口输出。
因为直接从分频器中出来的输出信号是脉宽极窄的信号,为了有益于驱动扬声器,需另加一个D触发器分频以平衡其占空比,但这时的频次将是本来的
1/2。
SPK对CLK输入信号的分频比由输入的11位预置数TN[10..0]决定。
SPK
的输出频次将决定每一音符的音调;
这样,分频计数器的预置值TN[10..0]与输出频次就有了对应关系,而输出的频次又与音乐音符的发声有对应关系,比如
TT模块中若取TN[10..0]=11'
H40C,将由boom发出音符为“3”音的信号频次。
详尽的对应关系能够参照图的电子琴音阶基频比较图。
CLKSPKS
TN[10..0]
inst1
TT模块图
②图电子琴音阶基频比较图(单位Hz)
②VHDL代码
模块
TT模块原理:
音符的连续时间需依据乐曲的速度及每个音符的节拍数来确立,图中模块TT的功能第一是为模块SPK(11位分频器)供给决定所发音符的
分频预置数,而此数在SPK输进口逗留的时间即为此音符的节拍周期。
模块TT是乐曲简谱码对应的分频预置数查表电路,程序数据是依据图获取的,程序
中设置了“梁祝”乐曲所有音符所对应的分频预置数,共14个,每一音符的逗留时间则由音乐节拍和音调发生查表模块ROM中简谱码和工作时钟clock的频次
决定,在此为4Hz。
这4Hz频次来自分频模块fenpin4hz.而模块TT的14个值的输出由对应于rom模块输出的q[3..0]及4位输入值index[3..0]确立,而index[3..0]最多有16种可选值。
输向模块TT中index[3..0]的值在SPK中对应的输出频次值与连续的时间由模块rom决定。
模块图以下图:
TT
Index[3..0]CODE[3..0]
HIGH
Tone[10..0]
inst2
图TT模块图
CNT138模块原理:
模块CNT138是一个8位二进制计数器,内部设置计数最大值为139,作为音符数据ROM的地点发生器。
这个计数器的计数频次即为4Hz。
即每一计数值的逗留时间为秒,恰为当全音符设为1秒时,四四拍的4分音符连续时间。
比如,“梁祝”乐曲的第一个音符为“3”,此音在逻辑中逗留了
4个时钟节拍,即1秒时间,相应地,所对应的“3”音符分频预置值为11'
H40C,
SPK的输入端逗留了1秒。
跟着计数器CNT138按4Hz的时钟速率作加法计数时,即随处址值递加时,音符数据ROM模块中的音符数据将从ROM中经过q[3..0]
端口输向TT模块,“梁祝”乐曲就开始连续自然地演奏起来了。
CNT138的节拍
139,正好等于ROM中的简谱码数,因此能够保证循环演奏。
关于其余乐曲,此计数最大值要依据状况改正。
CNT138
CLKQ[7..0]
inst
图CNT138模块图
音符ROM模块
此模块是用来寄存梁祝的音符数据,数据以下所示,模块图见图。
rom
address[7..0]
q[3..0]
s
d
t
r
i
o
b
w
4
6
5
2
clock
inst5
Blocktype:
M4K
图音符ROM图
音符数据:
WIDTH=4;
//梁“祝”乐曲演奏数据
DEPTH=256;
//实质深度139
ADDRESS_RADIX=DEC;
//
地点数据类是十进制
DATA_RADIX=DEC;
//输出数据的种类也是十进制
CONTENT
BEGIN
//注意适用文件中要睁开以下数据,每一组占一行
3;
01:
3
;
02:
03:
04:
5;
05:
06:
07:
6;
08:
8;
09:
10:
11:
9
12:
13:
14:
15:
16:
12;
17:
18:
19:
15;
20:
13;
21:
12
22:
10;
23:
24:
9;
25:
26:
27:
28:
29:
32:
33:
34:
35:
36:
7;
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
8
52:
53:
54:
55:
56:
57:
58:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
0;
137:
138:
END;
四、硬件实现
本次实验电路选择模式7,电路图以下所示:
引脚锁定
将设计编程下载进选定的目标器件中,作进一步的硬件测试,操作以下:
①实验系统对应信号与芯片引脚比较表
端口信号名
构造图上信号名
实验箱显示
clk2
CLOCK2
4Hz
clk3
CLOCK0
256Hz
clk
CLOCK9
10MHz
rst
PIO3
键4
jian5
PIO4
键5
jian8
PIO7
键8
q1
PIO19-PIO16
译码器1
q2
PIO23-PIO20
译码器2
q3
PIO27-PIO24
译码器4
q4
PIO31-PIO28
译码器5
q5
PIO35-PIO32
译码器7
q6
PIO39-PIO36
译码器8
speak
SPEAKER
扬声器
led1
PIO43-PIO40
D4、D3、D2、D1
led2
PIO47和
PIO44
D8和
D5
引脚锁定图以下所示
硬件测试
硬件实现图片
状况
结果剖析
初始状态:
设
不论是按系统复位键仍是按键4键,都
能够将数字钟回归初始状态,即为12:
为12:
00
00:
00,同时蜂鸣一下,表示整点报时
若想改变分的显示,按动键5,使分以
校分
4Hz为计数脉冲,使其计数频次加速,
当达到正确时间时,松动按键开关
若想改变时的显示,按动键8,使时以
校时4Hz为计数脉冲,使其计数频次加速,当达到正确时间时,松动按键开关
秒进位前:
此不时间为05:
59,当下
一个时钟脉冲来的时候会产生一个进
位信号给分
秒进位
秒进位后:
当分获取进位信号后,分在
原有的基础上加1,而此时,秒会清零,
此不时间显示为05:
分进位前:
此不时间为05:
59,又一
个时钟上涨沿过来时,秒会产生一个进
位信号给分,分会产生一个进位信号给
时
分进位
分进位后:
时在原有的基础上加1,分
位和秒位清零,则此不时间显示为
代码中设定闹铃时间为06:
00,当时
间为06:
00时,上边的前四个发光
闹铃准时:
二极管会向来亮起,后边四个会跟着我
置为06:
们闹钟的梁祝音乐有序的闪耀,响铃持
续时间为1分钟
五、项目总结
,才会一步步向自己的目标凑近,才会获得自己所要追求的成功。
本次数字
钟的设计,我们小组花了好多的精力,经过对源程序的编写、编译、仿真、编程
下载,在EDA实验开发系统进行考证时达到了我们预期的成效。
但这过程其实不是
一帆风顺,中间碰到了好多的困难。
一开始我们是分模块进行设计,每一个人负责
几个模块。
比方在负责音乐模块中,我们小组一开始想利用锁相环获取1MHz和4Hz,却发现编译通可是,我们非常疑惑,不知哪里出现问题。
最后经过查找资料发现4Hz已不再cyclone芯片的分频范围内,找到原由后,我们小组变换思路,利用从前做的分频模块解决了问题。
做完各个模块后,顶层电路图的绘制也出现
了好多的问题,令我们小组最头痛的是如何将音乐模块与计数显示电路连结起
来,我们小组想了很长时间,最后利用二选一模块很奇妙地解决了这个问题。
因我们的顶层电路复杂,进行连线的不行防止有漏接的现象,我们不得不一个一个模块检查,经过我们的努力,终于实现了所有的要求。
在实验中,我们小组一同
沟通解决了问题,使我们理解了和别人共同合作的重要性。
我们想成功就是在不停探索着行进中实现的,碰到问题我们不可以气馁、浮躁,甚至放弃,而要静下心
来认真思虑,分部检查,找出最后的原由进行更正,这样才会有进步
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 设计
