EDA多功能数字时钟设计实验报告.doc_第1页
EDA多功能数字时钟设计实验报告.doc_第2页
EDA多功能数字时钟设计实验报告.doc_第3页
EDA多功能数字时钟设计实验报告.doc_第4页
EDA多功能数字时钟设计实验报告.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

多功能数字时钟设计实验报告 高策 050422024EDA(一)设计(2)之 多 功能数字钟 南京理工大学 电子科学与光电技术学院2005级 作 者: 高 策 学号: 0504220224 同 组: 黄文浩 学号: 0504220242 指导教师:蒋立平 时间:08-3-18目 录 内容摘要.第3页一引言 .第4页 二、实验要求 .第4页 三、方案论证 .第5页 四、各模块设计 .第6页 1、分频器模块.第6页 2、计时模块.第8页 3、闹铃模块.第10页 4、彩铃模块.第12页5、显示模块.第13页6、整点报时模块.第14页 7、秒表模块.第15页 8、万年历模块.第16页 9、动态显示模块.第19页10、闪烁模块.第20页五、整体电路功能综述.第22页 六、实验中的问题及解决方法.第24页 七、总结体会.第25页 八、实验的收获与感受.第26页 中文摘要本实验利用QuartusII软件,结合所学的数字电路的知识设计一个24时多功能数字钟,具有正常分、秒计时,动态显示,保持、清零、快速校分、整点报时、闹钟功能。文章分析了整个电路的工作原理,还分别说明了各子模块的设计原理和调试、仿真、编程下载的过程,并对最终结果进行总结,最后提出了在实验过程中出现的问题和解决的方案。通过实验掌握了一些逻辑组合器件的基本功能和用法,同时体会到了利用软件设计电路的方便快捷,避免了硬件布线的繁琐,提高了效率。关键词 数字计数器 动态显示 保持 清零 快速校分 整点报时 闹钟 软件设计 外文摘要Title DIGITAL CLOCK DESIGN PROPOSAlAbstractUsing the QuartusII, we design a digital clock of 24 hours with learning electric circuit knowledge. The circuit can keep the time, display, reset, adjust the minute and hour, ring the time in the round number time and alarm clock.The paper has analyzed the principle of all work and explained the designing principle of different parts separately. By debugging, simulating, compiling, programming, I put forward a matter and give a settling plan. I know about the basic functions and using method of some electric pieces in this experiment. At the same time, I realized the convenience of making use of the software to carry on the electric circuit, which is fast, avoided the hardware cloth line tedious, and raised the efficiency. Keywords digital counter, dynamic display, keep, clear, check time, time, alarm clock,software design一、引言传统硬件电路在设计存在连线麻烦,出错率高且不易修改,很难控制成本的缺点。而软件电路设计连线方便,修改容易;电路结构清楚,功能一目了然;软件内部提供有丰富的元件库;节省实验时间,故障率低,出错时,有错误提示,明显提高了效率。 本次试验就利用QuartusII软件设计一个电子数字钟,并下载到CPLD实验系统中。初步了解并体验利用软件设计电路的过程及优点,并下载到可编程逻辑器件中完成实验。二、实验要求1.能进行正常的时,分,秒计时功能。完成一天二十四小时的计时;2.提供八个数码管动态显示时,分,秒;3.对于时钟要提供校正功能,能对于分、时分别提供校正。4.时钟具有整点报时功能,当时钟计到每个小时5951”时开始报时,在5951”,5953”, 5955”,5957” 时发出低音, 5959”时发出高音;5.闹钟的功能,可以根据需要自己设定闹钟的闹时时间(精确到分),响铃一分钟,期间可通过开关关闭闹铃。闹铃的铃声可以切换为多种声音,如动画过关响声,警铃声等;附加功能:1 具有秒表功能,在秒表显示界面提供清零、start/stop功能。2 具有万年历功能,提供2000-2100之间100年的日期显示功能,在万年历显示界面,提供对月、日、年的分别校正功能。3 闪烁功能,在闹铃的一分钟过程中,显示界面八位数码管以制定频率一次熄灭,出现横向闪烁效果;在正点报时时,即每小时的59分51秒开始,八位数码管整体以1HZ频率闪烁,出现整体闪烁效果,时间持续10秒钟。三、方案论证按照上述基本功能及附加功能,本次电子数字时钟实验,基本核心功能是计时模块,次功能通过两个模60计数器及一个模24计数器级联既可以实现,由于实验台仅提供48MHZ信号,所以我们首先要通过分频器实验分频,生成1HZ信号。由于还设计了闹钟,秒表,万年历功能,所以共有四套显示界面,一次还涉及到动态显示界面的切换问题,上述问题将在各模块论述中详细介绍,整体电路图如下:通过上面的整体电路图可以清晰的看出数字电子钟的工作原理,每一显示界面的功能模块连接一个显示模块,最后由一个选择切换模块进行连接,整点报时和闹铃模块与蜂鸣器相连,产生声音信号,闪烁模块连在显示切换输出与动态显示之间,产生闪烁信号,时输出具有闪烁功能。四、各模块设计(含软件仿真和部分硬件调试) 在此,将以模块为单位,对于各个功能模块进行详细说明,并给出详细电路图和仿真波形结果。1、 分频器模块由于实验台仅提供48MHZ频率,所以,需要通过分频器电路分出所需频率的信号,对于时钟来说,最基本的是1HZ信号,通过一个48分频的分频器和一个1M分频的分频器级联构成,具体电路如下:由上图可以看出,通过两片74160构成模48计数器,实现48分频作用,通过5片7416构成2的20次方,近似认为1M分频器,实现1M分频,产生最小为1HZ的各种所需频率信号:1HZ/2HZ/4HZ/8HZ/16HZ/32HZ/256HZ/512HZ/1KHZ/2KHZ/4KHZ 分频器波形模拟如下图:二、计时模块:数字钟最基本的功能就是计时,所以计时模块也就成为了本次设计中最基本的模块之一,通过两个模60计数器和一个模24计数器三者级联构成的计时模块能够对时、分、秒进行计时,实现计时功能,电路图如下:由上图可以看出,由于实验电路有能够对分、时进行校正的要求,所以,在秒位向分位进位的中间和分位向时位进位的中间加入了校正电路,当校正开关关闭时,正常进位,当校正开关打开时,将通过校正电路给一个2HZ的校正信号,使得分位或时位以2HZ的频率快速较分,为了实现防颤功能,加入了D触发器,用1000HZ作为房颤信号,使得电路能够消颤。在试验中,有一种最普遍的防颤方法,就是进位信号接在使能端,而时钟端通一接1HZ,这样的话是不会发生颤抖的,但是较正时也只能以1HZ的频率校正,不能达到快速较分,一次我采用了上述电路,借鉴了上学期电子电路综合实验的电路设计,实现消颤。上图位计时模块波形仿真图形。上图为当校正信号产生时,计时模块开始较分、较时。由上图可以看出,校正存在一定的时间延迟,这是因为门电路时间延迟的原因,但实际操作中,基本可以忽略不计。三、闹铃模块:具体电路如下图:实验要求数字钟应该具有闹铃功能,具有独立的闹铃设定界面,并且能够设定任意时间,精确到分、时。这就涉及到多个显示界面的切换问题,在后面的模块介绍中会详细提到,现在,只讨论闹铃模块这一功能。要想达到设定时间的功能并不难,只需要一个模60计数器和一个模24计数器,与计时电路一样级联,通过校正电路,使其快速较分,较时。当到要设定的时间时停止脉冲信号,此时,闹铃设定单元将一直保持设定的时间。但是闹铃模块还需要当时间到达闹铃设定时间时输出闹铃信号,这就涉及到一个设定时间与实际计时单元时间比较的问题,通过四片4位比较器可以实现,当实际计时单元时间与设定闹铃时间相同时,4片比较器同时输出高电平信号,相与后输出闹铃信号。此闹铃信号将作为彩铃发生模块的控制信号。四、彩铃模块:具体电路如下:这是本实验中比较有个人特色的模块,利用一个74160制做的模8计数器为3-8线数据选择器提供地址控制,通过数据选择器实现不同频率的组合,这里利用已经做好的分频模块为数据选择器提供各种频率。我们在制作这个模块的时候,使用了一个讨巧的方法,来实现多种声音的变化,比如有人听惯了闹表声,可以通过搬动开关来变化闹铃声音。具体方法就是在数据选择器的地址控制端加入开关,控制送入频率的顺序,来变化声音。K6:地址控制开关;K7:地址控制开关; K8:地址控制开关通过三个地址开关的不同组合,一共可以实现多达八种不同的闹铃声音,是闹铃声音做到多重变化。在彩铃模块,我们还设置了两个开关,NAOLINGSET和NAOLINGKAIGUAN,前一个开关控制闹铃是否作用,当NAOLINGSET关闭时,闹铃声音将停止;后一个开关控制闹铃设定界面,当NAOLINGKAIGUAN为高电平时,显示进入闹铃设定界面,此时提供闹铃设定功能。五、显示模块:电路图如下:可以看出,这是一个比较简单的模块,可以说是动态显示电路的一个过度模块,由于采用动态显示,八位数码管每次只能有一个在工作,所以,要把八个管子的八路信号通过数据选择器,以动态显示电路的频率一次送入,每次输入一路信号,因此,就融到了上图电路,通过1、2、3三个选择信号与动态显示同步,由上到下,一次选通八路信号。六、整点报时模块:电路图如下:实验要求在59分51秒、53秒、55秒、57秒输出低音,59秒输出高音报时,这就需要通过计时模块的分位与秒位信号进行以下判断,到达指定时间时,低音送出1KHZ信号,高音送出4KHZ信号,通过画卡诺图,可以分析出逻辑关系,具体电路如下,当fg0、fg3、fs0、fs2、ms0、ms2、mg0为1,mg3为0时,输出低音信号,当mg3为1时输出高音信号。上图为整点报时的波形模拟信号,通过BAOSHIXINHAO的波形可以看出,当mg3为0时,输出低频信号,为1时,输出高频信号。七、秒表模块:电路图如下:其实秒表模块与计时模块相当相似,因为基本原理是一样的,只不过秒表多加了一级显示罢了,因此,秒表的基本信号不再是1HZ,而是100HZ,所以,在之前要把1KHZ进行10分频,就是加一个模10计数器,后面与计时模块一样,三个模60计数器和一个模24计数器级联,构成秒表模块,在次模块中,设置了MIAOBIAOKAIGUAN、strat/stop、QINGLING三个开关,第一个开关为高电平时,显示进入秒表界面,此时start/atop控制秒表的开启和停止,最后一个开关负责清零。由于次模块与计时模块结构一样,在此就不进行波形仿真了,在实际实验中,此功能性能优秀,基本一次成功。八、万年历模块:具体电路如下:由电路图可以看出,万年历功能的实现相当复杂,在此,我们还只是制作了2000年2100年这100年的万年历,这样,就省去了400年为一润的情况,不过依然很繁琐。万年历功能是在实验的最后一天进行的,当时由于时间问题,有些地方考虑不周,现在进行了进一步的完善。万年历功能在原理上其实与计时模块一样,也是计数器之间的级联进位,不过,这其中的规则更多罢了,日向月进位,月向年进位,月位比较简单,就是一个模12计数器,年为也简单,4片模10计数器级联就可以实现,最复杂的就是日位,由于有大小月之分,大月31,小月30,二月28,闰二月29天。所以这样的话就涉及到日位到底采用模几计数器的问题,在此,我采用的方法是,根据月位和年位的信号,将日位的计数器动态切换,不固定为模几。因为不管是模28、29、30、31那种计数器,都可以有两片74160实现,只不过是在那一个信号清零的问题,因此,我采用下面的电路,把四种清零全部设计出来,通过月位的信号进行选择。大月就31置数,小月就30置数,简洁明了。接下来最复杂的问题就是,月位和年位的信息如何反馈给日位,这里就用到了卡诺图,虽然卡诺图比较繁琐,但是在实际中真的很好用。月为用2片74160级联构成模12计数器,便于显示输出,但是不利于画卡诺图,因此,我外加一片74161构成的模12计数器,两者同步工作,这样,161输出的就是四位二进制码,这样话卡诺图就非常方便了,通过卡诺图,得到月份与进位的关系,下图的路基电路分别实现了大月,小月,二月的切换,闰二月则比较简单,通过年信号很方便可以得出。在万年历显示界面,提供了对月、日、年的快速校正,这与计时模块的较分、较时原理是完全一样的,在此不多叙述。上图为万年历波形仿真,由图中可以看出,经过置年信号,年变为2000,当月分为1月时,日位31进位。九、动态显示模块:电路图如下:动态显示就是指八个数码管每次只有一个工作,但以极高的频率循环,由于人眼的视觉暂留效果,八个数码管就如同同时工作。这就要求数码管的选通与信号的选通必须保持同步,所以,我让二者使用同一个模8计数器产生的循环信号,这样就捉到了严格同步,实验证明效果良好。上图模拟了数码管依次选通的情况。十、闪烁模块:这个模块可以说是这个实验的一个两点,也算是一个创新吧,首先是在闹铃的一分钟内八个数码管依次熄灭,达到闪烁的效果。有人认为数码管本来就在高频的依次选通,只需把循环频率降低不久达到闪烁的效果了吗?但是,降低循环频率的后果就是数码管的亮度下降,可能会看不清数字,起不到闪烁的效果。所以,我的闪烁电路实在数码管选通端下功夫,在接一个可以制定频率的3-8译码器,以8HZ的循环频率依次熄灭数码管,不影响动态显示的循环。电路图如下: 另一个闪烁功能是在整点报时的10秒钟内以1HZ的频率八个数码管一起闪烁,这就比较容易实现了,在整点报时的信号下,以1HZ的信号接通关断动态显示电路就可以实现,具体电路如下:闪烁功能给本次实验增添了不少的亮点和乐趣,尤其是依次熄灭功能,加非门的话还可以变成依次选通,如果再把闪频提高,并配上铃声,很有警报的感觉,让大家体会到了实验的乐趣。五、整体电路功能论述本次实验制作的多功电子时钟功能比较强大,整体功能如下:1、 共有四套显示界面:计时、闹钟设定、秒表、万年历。通过组合键实现显示界面的切换。2、 在计时界面下,提供对分、时的快速校正。3、 在闹钟界面下,提供对任意时刻闹铃时间的设定,具有闹铃开关。4、 具有彩铃功能,共有多达8种组合声音效果。5、 在秒表界面下提供秒表计时功能,可以任意时刻开启或停止,具有清零功能。6、 在万年历界面下,提供20002008之间一百年的日期显示,并提供对月、日、年的快速校正。7、 具有闪烁功能,在闹铃期间八位数码管一次熄灭,在正点报时期间,八位数码管整体闪烁。键位功能分配:键位K1K2K3K4、K5K6、K7、K8功能较分较时闹铃模式下为闹铃开关,在万年历模式下,实现置年功能,置年为2000.组合键,选择显示模式。计时模式(00)闹铃模式(10)秒表模式(01)万年历模式(11)组合建,共可以组合出8种彩铃。在秒表模式下:K7为start/stop、K8为清零信号。在万年历模式下:K6为较日、K7为较月、K8为较年。在闹铃模式下:K6为分设定,K7为时设定。由于试验台只提供了8个键位,所以要想实现比较多的功能就只有组合键的方法了,这也使得键位比较繁琐。程序下载:当整个电路设计完成后,进行模拟仿真,观察波形。选择“File-New”,打开“other files”标签项,选择“Vector Waveform File”。在谈出对话框右边“Name”下的空白框里双击鼠标,在新弹出的对话框里点击“Node Finder”按钮。在新对话框中的“Filter”中选择“Pins:all”后,点击“Pins:all”后点击“list”按钮,则“Nodes Found”对话框中列出了本工程的所有输入输出节点。双击所要节点,则右边的“selected nodes”框中出现了所选的节点。点击“OK”,再点击“OK”,完成节点的添加。再设置时钟脉冲后,点击进行波形仿真观察波形。将编译好的程序下载到芯片之前要进行管脚分配。选择“Assignments-Pins”,打开管脚分配对话框。在TO栏中,输入各管脚的名称,在Location下输入相应的管脚。选择“File-Save”来保存分配,然后关闭“Assignment Editor”。选择“Assignments-Setting”,打开Device&Pin对话框,选择Configuration标签页,采用串行配置器件EPCS4的主动配置模式。在Device&Pin对话框中选择Unused Pins标签页,进行没有使用的管脚设置为高阻状态。然后选择“Processing-Start Compilation”进行全程编译。将实验箱的电源打开,点击工具栏上的,再点击,点击,在弹出的对话框中点击“OK”,然后点击“close”关闭对话框,则在后面的“No hardware”变成了“ByteBlasterLPT1”。最后在“Program/configure”列下的复选框中打勾,点击开始向实验箱上下载。六、实验中遇到的问题及解决方法1. Tri-state node must be driven by a TRI buffer,but is driven by privmitive出现原因及解决办法:主要是出现了重名的情况,一般来说输出定义为q特别容易发生重名,像qe(个)qs(十),qb(百)后又定义了qa,qb,qc,发现有两个qb重名。这主要是经验问题,之后定义多注意这些问题就好了。2. 波形仿真边沿不匹配出现原因及解决办法:这主要是因为信号通过门电路有时沿,有将时钟脉冲调宽一点,就可以克服这个问题,如图3 .警告:Nodeclk2 has assignments but doesnt exist or is a primitive array-edit the projects ACF to fix the problem。这个警告还会影响到电路的下载。检查电路图并没有clk2脚。产生原因及解决方法:主要是因为开始删除了这个脚,但并没有在floor plan删,应在一个已定义的脚上点右键assign/pin/location/chip里去再删一遍。4.二十四小时计时模块的设计时,分秒时之间的进位出现过小小的问题,74160的同步计时,各部件的使能端控制,没有考虑周全,利用所学的数字电路的知识这些问题完全可以解决,但看似简单的事情却在实际中出现了,可见,进行电路设计时一定要认真仔细,以免做无用功。5.编译通过后,下载到硬件上之后,发现数字显示没有规律,这时考虑电路的整体逻辑应该是正确的,可能译码时有误,经过检查,发现是7448显示译码器输入端的高低位接入顺序有误,调整后即可正常显示。6.经常不注意当前工程的设定,比如一个工程已经改正,但还是在编译错误的工程,既浪费了时间,还使得心情急躁,非常影响情绪,这种情况一定要避免。7.高电平有效还是低电平有效,这是一个非常容易忽视的问题,有时就知道这个端口要解控制信号,但不注意控制信号的有效电平,造成错误。七、总结体会1设计必须要有整体概念,提前熟悉软件。刚开始时没头绪,不知道该怎样分块,进度很慢,加上对软件不是很熟悉,比如:封装要注意哪些,哪些不能运行,哪些是不正确的操作,等等,走了很多冤枉路。2设计的模块要分块调试,免得等所有都完工了再调试出错,那样的话很难确定是什么出错,更加没头绪。有必要的话做一部分后就送到平台上调试,这样会大大减少出错率。324小时数字钟的核心,必须做的很好,扩展功能要好,以便加入其它功能,比如:闹钟和整点报时功能。刚开始时没有考虑地位进位才能清零,导致59分只能持续1秒钟。当切换至闹钟模式时,并没有低位进位,所以小时和分钟往往超出了正常计时范围,不能正常清零。4选用合适的选择器也是很重要的。一个总线数据选择器可以代替好几个数据选择器,而且很方便。在动态显示模块内部就是用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论