多功能数字钟实验报告.docx
- 文档编号:7498247
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:28
- 大小:759.08KB
多功能数字钟实验报告.docx
《多功能数字钟实验报告.docx》由会员分享,可在线阅读,更多相关《多功能数字钟实验报告.docx(28页珍藏版)》请在冰豆网上搜索。
多功能数字钟实验报告
EDA设计Ⅱ实验报告
——多功能数字钟设计
学院:
电子信息与光电技术学院
学号:
姓名:
指导老师:
完成时间:
摘要
本实验报告阐述EDA(Ⅱ)实验课程中多功能数字的设计思路及设计过程。
设计过程采用层次化设计方法,按功能将多功能数字钟划分为多个模块,以实现数字钟的00:
00:
00到23:
59:
59的计时、校时校分、保持清零、整点报时、切换显示及闹钟的功能。
其中采用原理图设计各功能模块中的数字逻辑电路,在QuartusⅡ7.1中完成模块的功能仿真测试,最终将电路下载至EDA实验室的CycloneIII系列芯片中EP3C25F324芯片中实现数字钟的功能。
关键词:
多功能数字钟层次化原理图QuartusⅡ7.1仿真测试
Abstract
Thisreportmainlyaddressedthemethodandprocessofdesigningthemulti-functionaldigitalclockoftheEDAexperiment.Thewholedesigningprogressusedthemethodofhierarchical.Accordingtothefunctions,thedigitialclockwasdividedintoseveralmodules,Itrealizesthedigitalclock00:
00:
00to23:
59:
59timingcalibration,keepingandclearing,thewholepointtimekeepingandalarming.ThefunctionalsimulationwascompletedundertheenvironmentofQuartusⅡ7.1.Atlast,itwasdownloadtoEP3C25F324chipofCyclonetoachievethefunctionofmulti-functionaldigitalclock.
Keywords:
multi-functionaldigitalclockhierarchical
schematicdiagramQuartusⅡ7.1simulation
目录
一、设计要求说明………………………………………………4
二、方案论证……………………………………………………4
三、基础电路子模块设计及仿真
1分频电路………………………………………………………6
2计时电路………………………………………………………10
3使能控制电路…………………………………………………11
4整点报时电路…………………………………………………14
5译码显示电路…………………………………………………15
6消颤电路………………………………………………………18
7基础总电路……………………………………………………19
四、闹钟电路子模块设计及仿真
1闹钟设定电路…………………………………………………19
2校分校时开关复用电路………………………………………20
3比较电路………………………………………………………22
4报时复用电路…………………………………………………23
5显示复用电路…………………………………………………24
6含闹钟总电路…………………………………………………25
五、程序的下载和调试…………………………………………26
参考文献…………………………………………………………26
附:
实验感想
一、设计要求说明
1.设计完成内容
设计一个数字钟,可以完成00:
00:
00到23:
59:
59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、整点报时等功能。
同时在具有基本功能的基础上,增加闹钟功能。
2.设计基础要求:
1)能进行正常的时、分、秒计时功能;
2)分别由六个数码管显示时分秒的计时;
3)开关控制功能:
K1是系统的使能开关(K1=0正常工作,K1=1时钟保持不变);
K2是系统的清零开关(K2=0正常工作,K2=1时钟的分、秒全清零);
K3是计时和闹钟复用的校分开关(K3=0正常工作,K3=1时可以快速校分);
K4是计时和闹钟复用的校时开关(K4=0正常工作,K4=1时可以快速校时);
K5是计时和闹钟的显示切换开关(K5=0显示正常计时,K5=1时显示闹钟设定);
K6是闹钟的开关(K6=0闹钟关闭,K6=1时闹钟打开)
4)使时钟具有整点报时功能(当时钟计到59’53”时开始报时,在59’53”,59’55”,59’57”时报时频率为500Hz,59’59”时报时频率为1KHz,)。
3.设计提高部分要求:
1)闹表设定功能;
2)万年历功能;
3)自己添加其他功能。
二、方案论证
多功能数字钟的整体框图如下所示:
实验中使用的振荡频率源为48MHZ,需要由分频电路产生数字钟所需的其他频率,即1hz,2hz,500hz,1000hz。
接下来设计基本的计时模块由模60的分、秒计时电路和模24的小时计时电路连接而成。
这些电路均由脉冲发生电路产生的1hz信号作为其工作的频率信号。
清零电路是通过控制计时电路清零端高低电平来实现功能的。
当清零开关按下时,计时模块内各个模块计数器的清零端均接入高电平进行清零,而清零开关接低电平时各清零端均为无效状态。
保持电路通过开关控制秒计数器的使能端,当按下开关后,使能端为低电平,秒计数器处于不工作状态从而实现计时保持功能。
电路进行整点报时功能的时候,当时间进行到53秒、55秒和57秒时以500hz的频率驱动蜂鸣器,在59秒时则以1000hz的频率驱动蜂鸣器。
时间的时、分、秒都通过译码显示电路显示出来。
译码显示电路由数值选择器、7段显示器、译码器和码转换器组成。
闹钟设置电路只设置分和时,由模60的分计时电路和模24的小时计时电路组成。
闹钟设定的原理与校时校分的原理相同,其中闹钟时间调节键复用正常调时的校时校分开关。
当显示切换开关为1时,进入闹钟设定界面,此时校时校分开关用于调节闹钟时间,对正常计时没有影响,且此时7段显示码显示的是闹钟时间;显示切换开关为0时,校分校时键用于对数字钟进行时间调节,对设定的闹钟时间没有影响。
闹钟报时电路是个比较电路,目的是对闹钟时间与正常时间是否一致进行比较。
一致时,将设定的闹铃频率驱动蜂鸣器工作。
比较结果默认响铃是1分钟,所以需要设置一个闹铃开关来控制响铃。
闹铃开关按下,达到设定时间就闹铃,闹铃开关为0,即使达到设定时间也不响铃。
最后,在所有的开关前都加入了消颤电路,防止出现不必要的一串电脉冲造成电路的误操作。
三、基础电路子模块设计
1.分频电路
分频电路将实验箱提供的48MHz的频率分频成1hz(供计数时钟),2hz(供消颤电路),500hz和1000khz(供整点报时用)。
12分频电路
使用D触发器,把D与Q非连接在一起,并保证其他端口处于正常工作状态,在一个时钟范围内变化两次,达到2分频的目的。
电路如下图:
仿真结果:
②3分频电路
如图,3分频电路由74160实现QB端作为输出端,并且通过非门进入74160的置数段LDN,使输入信号实现一下框图所示循环,3分频电路功能得以实现
电路如下图:
仿真结果:
38分频电路
先把2分频电路进行封装如图:
再将3个2分频电路进行级联,就可以得到8分频电路
仿真结果:
410分频电路
10分频用74160实现,为实现输出脉冲的占空比为1的电路,规定0000~0100为高电平,0101~1001为低电平,卡诺图如下:
QBQA
QDQC
00
01
11
10
00
1
1
1
1
01
1
0
0
0
11
X
X
X
X
10
0
0
X
X
所得表达式为:
电路如下图:
仿真结果:
⑤1000分频
先把10分频电路进行封装,如图:
再将3个10分频电路进行级联,就可以获得1000分频电路
仿真结果
分频电路总图:
仿真结果:
分频电路进行封装后,如图:
2.计时电路
①模60计数器
使用两个74160,左边为个位,右边为十位。
由于74160能够自动完成十进制的计数,所以当左边的74160计数到9,即秒的个位是9的时候给右边的74160一个进位信号。
作为十位的74160计数到5的时候置数为0,这样就完成了模60的计数。
仿真结果:
封装后,如图:
其中,clear为清零端
en为使能端
clk为脉冲信号端
ql[3..0]为输出的个位
qh[3..0]为输出的十位
CO为59时的进位信号
2模24小时计数器
同样使用两个74160,左边的作为小时的个位,右边的作为小时的十位。
当作为小时个位的74160计数到3时,给十位的74160一个进位信号;当整体计数到23时,置数信号让个位的74160置0重新开始计数。
仿真结果:
封装后,如图:
其中clear为清零端
en为使能端
clk为脉冲信号端
ql[3..0]为输出的小时的个位
qh[3..0]为输出的小时的十位
CO为23时59分59秒时的进位信号,方便星期扩展
3.使能控制电路
①清零电路
清零电路的原理是通过清零开关的高低电平来控制秒、分和小时的清零端实现。
当清零端为1时正常计数,清零端为0时正常进行清零。
②校时校分电路
校分校时是通过控制计数器的使能端实现。
校分校时开关先通过一个时钟信号为2HZ的D触发器,消颤的同时是校分校时信号的频率为2HZ。
然后将校分校时信号分别接到分、时计数器的使能端。
校分开关为1时,进行校分,当校分开关为0时进行正常计时,校时同理。
③保持电路
保持电路则通过对秒计数器的使能端开关的控制来实现。
当保持开关为1时进行保持功能,而当保持开关为0时进行正常计时。
使能控制与计时电路总图如下:
仿真结果:
正常计时:
校分:
校时:
保持:
封装后,如图:
其中clear为清零端
keep为保持信号端
clk为1HZ信号端
clk_2HZ为2HZ信号端
jf是校分开关控制端
js是校时开关控制端
sl[3..0]是秒低四位输出端,sh[3..0]是秒高四位输出端
ml[3..0]是分低四位输出端,mh[3..0]是分高四位输出端
hl[3..0]是时低四位输出端,hh[3..0]是时高四位输出端
4.整点报时电路
当时间进行到23时59分53秒时开始进行报时。
59分53秒,59分55秒和59分57秒发出的音色较低的蜂鸣声(即500hz);当计时到59分59秒时,发出的是音色较高的蜂鸣声(1000hz)。
59分53秒对应的4个输出分别为:
0101,1001,0101,0011;
59分55秒对应的4个输出分别为:
0101,1001,0101,0101;
59分57秒对应的4个输出分别为:
0101,1001,0101,0111;
59分59秒对应的4个输出分别为:
0101,1001,0101,1001。
59’5X”处是输出59分53秒,59分55秒,59分57秒和59分59秒相同的部分。
此时same=mh[2]mh[0]ml[3]ml[0]sh[2]sl[0]
9”处输出的是59分59秒时1000HZ的信号,只要保证秒个位输出的4位数的最高位和最低位是1就能满足要求。
3”5”7”输出的是59分53秒,59分55秒,59分57秒时500HZ的信号,由卡诺图可知3”5”7”的输出为(sl[1]+sl[2])sl[0],即秒的个位输出的4位数的最后一位必须是1,而倒数第二和第三位的数字至少有一个1。
这样才能保证选出的是53、55和57秒。
整点报时电路如图:
仿真结果:
整体封装后,如图:
4.译码显示电路
计时电路中的时间需要通过译码显示电路才能显示到SMARTSOPC实验箱上。
译码显示电路由数据选择器(74151)、译码器(74138)、显示译码器(7447)、计数器和数码显示管组成。
要显示的位有时、分、秒6位。
并且数据选择器的选择信号有三位,为了以后可能扩展星期,所以可用一个模7循环计数器作为它的地址选择端,轮流选择要显示的数据。
其输出既作为4片74151的控制端,又作为3-8译码器74138的控制端。
扫描的频率为1KHz,这样因为人眼的视觉停留,会感觉七个数码管同时显示。
其中模7电路图:
因为每一位数需要4位二进制码来表示,所以要选用4片74151数据选择器来选择每位的数据。
如下图:
将4个74151和模7计数器进行封装,如图:
其中显示译码器7447用来显示数码管的数据,译码器74138用来选择数码管位来显示对应的数据。
因为选择显示数据的地址信号和选择数码管的地址信号利用同一个地址信号,这样就能够使得某一个数据显示在指定的数码管上。
如图:
总电路如图:
仿真结果:
封装后,如图:
其中clk_1KHZ为1kHZ信号端
sl[3..0]是秒低四位输出端,sh[3..0]是秒高四位输出端
ml[3..0]是分低四位输出端,mh[3..0]是分高四位输出端
hl[3..0]是时低四位输出端,hh[3..0]是时高四位输出端
abcdefg为七段数码管段码输出端
w[6..0]为七段数码管位码输出端
5消颤电路
我们电路中使用的开关都是机械开关,机械开关在接通或断开过程中,通常会产生一串脉冲式的震动,因而在电路中会相应产生一串电脉冲。
若不采取措施,往往会使逻辑电路发生错误动作。
为了消除这种误动作,需要在各个开关后加上消颤电路。
我选用D触发器来做消颤,保证只有当时钟信号来到时开关变成高电位。
电路如图:
将所需开关消颤后进行封装,如图:
6基础电路总电路图:
四、闹钟电路子模块设计
1闹钟设定电路
闹钟设定电路的校分校时与基础计时电路相同的,但不需要时向分的进位。
当校分校时开关为1时,进入校分校时,当校分校时开关为0时,正常显示。
电路如图:
仿真结果:
封装后,如图:
其中clk是1HZ脉冲输入端
clk_2HZ是2HZ脉冲输入端
set_m是闹钟校分信号输入端
set_h是闹钟校分信号输入端
set_ml[3..0]是闹钟分的低四位输出端,set_mh[3..0]是闹钟分高四位输出端
set_hl[3..0]是闹钟分的低四位输出端,set_hh[3..0]是闹钟分高四位输出端
2校分校时开关复用电路
校时校分开关复用是为了节约开关。
即当alarm=0时,校分校时开关控制着正常计时时的校分校时;当alarm=1时,校分校时开关控制着闹钟时间的设定。
电路如图:
仿真结果:
封装后,如图:
其中alarm为闹钟设定输入端
jf为校分开关输入端,js为校时开关输入端
nz_jf为闹钟校分输出端,nz_js为闹钟校时输出端
nor_jf为正常计时的校分输出端,nor_js为正常计时的校时输出端
3比较电路
利用4片7485数字比较器将数字钟的每位信号分别与对应的闹钟定时信号相比,相同时输出1,不同输出0。
将四位的比较结果用一个与门连接,当四位全都相同时,即与门的输结果为1时,与闹铃相与后驱动蜂鸣器,开始响铃。
电路如图:
仿真结果:
封装后,如图:
4.报时复用电路
报时复用电路实际是闹铃信号与整点报时信号的选择电路,电路中闹铃信号通过compare选择是否输入。
整点报时信号当到达整点时即有效,但是由compare信号控制是否输出,当compare=0,即闹铃未响时,整点报时信号正常输出给蜂鸣器;当compare=1,即闹铃响时,若此时有整点报时信号,则无法输出到蜂鸣器。
这样设计的目的是为了防止闹铃响时,整点报时会影响闹铃,对于整点报时信号进行了屏蔽。
由比较结果,闹铃每次会响持续1分钟,所以设置stop开关来控制闹钟响铃。
Stop=0时,即使到达闹钟设定时间也不会响闹铃。
电路如图:
仿真结果:
封装后,如图:
其中,zhd_baoshi是整点报时电路的输出信号
compare是比较电路的信号
music是闹铃的信号
stop是控制闹钟响铃的开关信号
5显示复用
由于数码管数量的限制,所以我们要通过设计开关控制使得正常计时时的界面和闹钟定时的界面能够进行切换。
2选1显示复用电路的实质就是16位的2选1数据选择器,数据选择器由4个4位2选1数据选择器74157组成,通过闹钟设定开关alarm选择输出的数据。
当alarm=0时,输出计时电路的分、时;当alarm=1时,输出闹钟对应的分、时。
电路如图:
仿真结果:
封装后,如图:
其中alarm为闹钟设定开关控制端
ml[3..0]是分低四位输出端,mh[3..0]是分高四位输出端
hl[3..0]是时低四位输出端,hh[3..0]是时高四位输出端
set_ml[3..0]是闹钟分的低四位输出端,set_mh[3..0]是闹钟分高四位输出端
set_hl[3..0]是闹钟分的低四位输出端,set_hh[3..0]是闹钟分高四位输出端
xml[3..0]是显示输出分的低四位,xmh[3..0]是显示输出分的高四位
xhl[3..0]是显示输出时的低四位,xhh[3..0]是显示输出时的高四位
6含闹钟总电路图
五、程序的下载和调试
1、首先对置顶文件进行编译;
2、为端口分配管脚:
选择assignments里面的pins,在对应地引脚的location中输入适当的引脚号(管脚分配),输入完成后。
3、对多余的端口置三态:
选择assignments里面的device里面的device&pinoptions,修改unusedpins为asinputtri-stated。
4、下载调试:
最后点击即programmmer,生成sof格式的文件后勾选program/configure后即可start。
管脚设定如下:
参考文献
1.《数字逻辑电路与系统设计》蒋立平电子工业出版社
2.《电子线路实践教程》王建新姜萍科学出版社
3.《EDA技术教程》梁勇王留奎人民邮电出版社
附:
实验感想
一、实验过程中遇到的问题及解决方案
1、第一次下载到试验台上,数码管上只有小时出现数的变换,而分钟和小时都不能正常的计数。
猜想原因:
因为技术电路部分仿真出来没有任何问题,所以应该是译码显示部分的原理或是连线的错误
解决办法:
检查电路发现是某次不小心移动了器件,使得导线和器件分离而没有及时发现。
2、一开始没有加消颤电路,当我拨动开关时,数码管的显示出现跳变,有时候反应不及时。
猜想原因:
我们用的开关都是机械开关,机械开关在接通或断开过程中,通常会产生一串脉冲式震动,因而在电路中会相应产生一串电脉冲,会使逻辑电路发生错误动作。
解决方法:
利用D触发器做消颤电路来实现异步脉冲的同步化。
在所有开关后面都接上消颤电路之后,我在拨动开关进行控制时,就很准确了。
3、做闹钟电路部分时,计时显示和闹钟设定显示一直无法在数码管上切换,导致闹钟一直无法设定。
猜想原因:
①闹钟设定电路的问题
②显示复用电路的问题
解决过程:
最开始检查,发现是原理上的不合理,出现开关控制上比较混乱。
后来重新设计,仿真后的结果没有问题,但下载到实验台上后,还是无法实现计时显示和闹钟显示的切换。
最后,为了能够区分计时显示和闹钟显示,我将闹钟设定的清零端接1,使他无法清零,再试验时发现,即使我切换到闹钟设定显示,当我将正常计时的开关拨下时,数码管上的数据还是会清零。
所以一直就没有切换到闹钟显示。
但是由于时间限制,我最后没有找到问题的症结所在。
二、实验的收获与感受
在上学期的数字逻辑电路的课程中,老师向我们介绍了如何用EWB来搭一些简单的电路并仿真,课后我尝试着做了一些练习,为这次完成EDA的设计打下了一些基础。
和之前在电工电子综合实验中用芯片和导线在面包板上搭数字钟相比,这次多功能数字钟的设计有了更多的发挥空间,也让我发现了EDA技术的优越性。
这次EDA设计使我认识到学习一个新知识的过程也许并不需要很多时间,但是要把它真正运用于解决实际问题的时候就需要我们付出很多的精力。
因为理论和实际之间是有距离有误差的。
像是器件的端口一定要有所连接,在上学期的数电实验中,管脚不连接就代表低电平,但是实际上某些管脚如果不连接电路功能就无法实现。
而之前课本上说的异步电路存在冒险,学的时候觉得无所谓,概率很低对我的电路也不会有什么影响,但在实际做时就发现,实际电路不是理想的,它有延时有误差的,所以我们在设计的时候就应该尽量的避免这些冒险。
做完整个EDA实验后我发现上学期自己在数电的理解上太浅显了,只是为了应付考试而不是真正掌握一门技术。
这也将改变我在学习上的态度,不能抱着对于所学的知识仅仅用于应付考试的态度,化被动学习为主动学习才可以收获更大。
在设计电路时,我们要有大局观。
首先要在整体上把握电路的功能、模块,然后再细化到每一个子模块。
这样才能目标明确,思路清晰进行设计搭建电路,不然会做着做着就不知道干嘛,下面的任务是什么、怎么组合电路也不清楚。
而且我们用的是原理图的方式,从器件的选择到连线、命名、管脚分配都要细心,任何一处的问题都会导致最后的电路出错。
为了及时发现问题,仿真就显的很重要,虽然仿真对,可能实际电路还是会有问题,但如果仿真也不对,那电路肯定是有问题的。
一开始我偷懒只顾着搭电路,没有重视仿真,使得有连线上的问题没有被及时发现。
后来习惯仿真之后发现,当看到仿真结果正确时,搭后面的电路自己也更有底气一些。
这一个礼拜的多功能数字钟设计也让我理解了谭老师在最开始说的遇到问题然后自己学会解决问题才是最大的收获。
一开始的时候电路仿真不出来,或是有什么问题,我都是不知道怎么下手去查的,总觉得没错啊。
然后就问老师问同学,老师就会给我指一个方向去看看。
慢慢的几个小模块下来,也就学会了自己去仿真,猜原因然后去解决。
虽然可能花的时间会长一些,但是也不会遇到问题就没有方向了。
最后感谢身边同学热心的帮助和老师耐心的指导。
大家一起在这一周时间里为了共同的目标而奋斗,能发现自己思考的不周全和错误,发现理论和实际的距离也是自我进步的一种。
三、期望及要求
我设计的多功能数字时钟虽然能够很好地完成清零、使能、校分校时等基本功能,但闹钟电路中计时显示和闹钟设定显示一直不能完成切换。
关于这个问题,我思考了很久,也仿真出了结果,但始终没有解决。
所以,期望能够进一步进行思考,和老师同学交流探讨,把这个遗留的问题加以解决。
还有一个遗憾就是没有运用VHDL语言来进行操作,编写程序在一定程度上是比连接原理图简单的,也会减少某些错误的产生。
就像分频电路,我们用原理图搭的就不能保证他的占空比是1:
1,虽然不知道这个具体对电路的影响,但是如果用语言就可以很好的实现。
所以后面我还是想学习一下VHDL语言,毕竟如果电路再复杂一些,用原理图实现就不是很现实了。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多功能 数字 实验 报告