数字电路课程设计题目: 利用CPLD 设计可调时数字钟学 院 电子信息工程学院 专 业 通信工程学 号2011448183 姓 名郑秦杰 教 师 刘鑫2013年 8 月 29日装 订 线利用CPLD设计可调时数字钟摘要此课程设计是运用数字电路知识以及QuartusⅡ软件进行的制作,动手制作之前要理解电路原理图,然后进行焊接,通过焊接增强自己的动手能力。
结合自己所学的数字电路知识,最后应用QuartusⅡ软件进行了编程。
电路通过使用数字元件,来构成完成二十四小时的数字钟设计,并且将译码器和数据选择器配合使用来完成动态的显示输出。
此外,外部控制开关用来控制电路,使得该电路可以完成保持、清零、快速校对时间的功能。
这项课程设计的难点在于EDA系统作图及最后系统优化的应用,尤其是小数点的显示控制,用一个或门,通过1Hz来控制第三个数码管的点显示,再通过一个与非门来控制第五个数码管的点显示,第五个数码管的点在整个脉冲阶段显示,而第三个数码管的点只有在低电平时显示,以达到结果是第五个数码显示管的点常亮,而第三个数码管的点以1Hz的频率闪烁(数码管按从右往左的顺序编号)。
制作中会时常出现各种小问题,如最初用七段译码器显示六和九时,显示的数字不完全,自己就重新编写了译码器,让其显示的更好一些,在此过程中也出现了制作的程序太大问题,经过反复的修改,最终总算是将数字时钟完成了。
关键词:数字时钟 QuartusⅡ七段译码器目录一总体设计方案 ................... 错误!未定义书签。
1.1设计要求 (4)1.2设计原理 (4)1.2.1 电源电路 (4)1.2.2显示电路 (2)1.2.3 CPLD电路原理图...............................错误!未定义书签。
1.2.4 振荡电路与分频电路...........................31.2.5程序下载接口电路..............................4二各模块说明 (5)2.1设计思路及步骤 (5)2.2总体框图 (5)2.3各模块说明 (9)2.3.1 BCD-7段译码显示电路 (6)2.3.2 时间计数器电路 (6)2.3.3 数据选择器电路 (7)2.3.4 译码器电路..................................82.3.5比较器电路.................................. 92.3.6按键消抖电路................................ 92.4数字钟电路总图 (10)三课程总结 (11)3.1遇到的问题及其解决办法..............................11 3.2收获与体会......................................... 12参考文献 (12)一总体设计方案1.1设计要求1、以数字形式显示时、分、秒的时间;2、要求手动校时、校分、校秒;3、调节时间时对应显示位以2Hz频率闪烁;4、时与分显示之间的小数点常亮;5、分与秒显示之间的小数点以1Hz频率闪烁;6、各单元模块设计即可采用原理图方式也可以用Verilog程序进行设计。
1.2 设计原理1.2.1 电源电路图 1.1 电源电路电源电路中有两个电源接口,分别为9V的直流稳压电源接口和5V的USB接口。
使用任意一个均可。
1.2.2 显示电路计数器实现了对时间的累计以8421BCD码形式输出,选用显示译码电路将计数器的输出数码转换为数码显示器件所需要的输出逻辑和一定的电流信号。
数码管是共阴数码显示管,当其控制端为“0”时,数码显示管显示。
显示模块输入时钟频率为512Hz,显示刷新频率约为85Hz。
如下图1.3所示。
图 1.2 显示电路1.2.3 CPLD电路原理图此原理图1.4的MODE和ADD分别控制校正位和其校正位进行加一校正。
MODE共有七个状态分别对应六个数码管的校正和正常计数。
图 1.3 CPLD电路原理图1.2.4振荡电路与分频电路晶体振荡器给数字钟提供一个频率稳定准确的32768Hz的方波信号,可保证数字钟的走时准确并且稳定.图1.4分频电路采用T触发器对其分频,每经过一个T触发器对其二分频,所以各点的分频倍数分别为:QD:24 QE:25 QF:26 QG:27 QH:28QI:29 QJ:210 QL:212QM:213QN:214;此处采用的是32768Hz的晶振,故分频之后QF:512Hz、QI:64Hz、QN:2Hz。
电路原理图如下图1.5所示。
图1.5 分频电路1.2.5程序下载接口电路如图1.6所示为程序下载接口电路阻图 1.6 程序下载接口电路二各模块说明2.1设计思路及步骤1 按原理图和元件插件图完成电路的焊接;2 拟定数字钟的组成框图,划分模块;3 对各单元模块电路进行设计与波形仿真;4 总体电路设计与仿真;5 程序下载与调试。
2.2总体框图图2.1 总体框图如下2.3.1 BCD-7段译码显示电路BCD-7段译码显示电路用其他电路的不同之处在于:通过编写译码程序将其生成为原理图,并不是直接绘制原理图。
译码程序源代码:module dec(seg,bcd,bin);input[3:0] bcd;input bin;output[6:0] seg;reg[6:0] seg;always @(bcd or bin)beginif(!bin) seg=7'b0000000;elsecase({bcd})4'd0:seg=7'b0111111;4'd1:seg=7'b0000110;4'd2:seg=7'b1011011;4'd3:seg=7'b1001111;4'd4:seg=7'b1100110;4'd5:seg=7'b1101101;4'd6:seg=7'b1111101;4'd7:seg=7'b0000111;4'd8:seg=7'b1111111;4'd9:seg=7'b11001111;default:seg=7'b0000000;endcaseendendmodule2.3.2 时间计数器电路利用7493连成一个三进制计数器,仿真正确后命名为cnt3。
图2.1 三进制计数器原理图利用7493连成一个六进制计数器,仿真正确后命名为cnt6。
图2.2 六进制计数器电路原理图利用7493连成一个十进制计数器,仿真正确后命名为cnt10。
图2.3 十进制计数器原理图将三进制、六进制、十进制计数器连接成计数器电路,如图2.4所示。
图2.4计数器电路原理图2.3.3 数据选择器电路参照数字电路设计讲义课件,连接数据选择器电路。
图2.5 数据选择器电路图2.3.4 译码器电路参照数字电子技术基础中显示译码器真值表及逻辑表达式,连接译码器电路路,以控制显示块显示0~9十个数字。
2.3.5 比较器电路图2.7 比较器电路原理图2.3.6 按键消抖电路64Hz消抖动模块时钟利用两个D触发器连成一个二位移位寄存器,用64Hz频率对key进行采样,依次寄存在二位移位寄存器中,若前后一致则结果为这个值,若前后不一致则保持原结果。
功能如下表所示:表 2-1图2.8 按键消抖电路原理图2.4数字钟电路总图数码管显示控制电路工作原理:以512Hz的频率作为时钟脉冲,用六进制计数器为三八译码器提供六个不同状态,每个数码管的显示频率约为85Hz,观测到的结果为:数码管常亮。
此电路的巧妙之处在于小数点的显示是用一个或门,通过1Hz频率来控制第三个数码管的小数点显示,再通过一个与非门来控制第五个数码管的小数点显示。
第五个数码管的小数点在整个脉冲阶段显示,而第三个数码管的小数点只有在低电平时显示,故观察到结果是第五个数码管常亮,而第三个数码管的小数点以1Hz的频率闪烁。
图2.9数字钟电路全图三课程总结3.1遇到的问题及其解决办法1在焊接时元件的正负极有时会接反,从而影响到产品。
在安放元件时应该看好电路板上的标示并且要多了解元件,要明确的知道如何分辨元件的正负极才能正确安放,焊接时要明确哪个引脚连接正极哪个引脚连接负极避免接反。
2安装元件时由于元件大小不一、引脚过密并且引脚长度过长导致焊接不方便不能正确焊接。
在焊接过程中应该先安装高度较低的元件并且焊接好剪短引脚方便焊接其他元件。
(如可以先焊接贴片电容等较低较小元件再焊接电解电容等较大较高元件)3在焊接时元件应与电路板离开一小段距离这样有利于散热,另外要防止虚焊和短路想象的发生。
4如果一些元件正负极接反,在引脚少的情况下可以将引脚同时加热拔出元件并正确插回,引脚多时可以先融化一边的焊锡将元件拔出一部分再融化另一边的拔出一部分如此反复最终能拔出元件并正确插入。
5在对各个元件进行设计和摆放的时候,注意元件引脚之间的对应关系。
6最初的程序在电路板上运行时出现了数码管不能正常显示数字6和9。
解决的方案:将译码电路图用译码程序源代码生成的原理图替换。
数码管能够正常显示0-9十个数字,但调时模式时对应显示位不闪烁。
解决的方案:进一步简略译码程序的源代码。
3.2收获与体会在数字钟的课程设计过程中,我学习了解到了很多东西。
在学习过程中,之前我们只是编写一些程序并没有什么实际的动手经验,对我们来说相对要简单一些,而这次课程让我们有了更深的感触,我们从一些元件做起亲手将它们组装完成。
以前将程序编好就算成功了,现在程序正确但是哪怕是一个小元件没有焊接好我们都无法达到我们预期的结果。
这告诉我们每一个小细节都必须认真去完成,我们对待他们的态度将直接导致结果的成功与失败。
而焊接过程中我们需要掌握更加全面的知识来正确完成焊接的过程,因此要想成功完成产品我们需要了解所有与产品相关的知识并掌握它们,而并不只是之前我们认为的最重要的编程。
在课程设计的过程中我们了解并初步掌握了焊接技术,增强了我们的动手实践能力,在制作作品过程中所犯的错误也越来越少了,比第一次的焊接收音机要更加的熟练与自然。
在课程中我了解掌握了QuartusⅡ的基本使用方法和 QuartusⅡ的基本功能及其在CPLD编程中原理及其发展应用。
设计程序前离开了学校导致了在程序设计的过程中没有人可以讨论交流使设计出来的程序看上去没有问题但并不能实际运行,在回到学校后和同学的交流的过程中不断的猜测修改程序最终使程序可以运行成功。
在这个过程中我们了解到我们应该在和同学的交流合作的过程中不断的学习进步,并且在程序编写的过程中我们对课本知识的理解也更加的清楚,之前不理解的地方也明确的知道了为什么要这样编写,也为我们的编程增加了经验。