数字钟实习报告_第1页
数字钟实习报告_第2页
数字钟实习报告_第3页
数字钟实习报告_第4页
数字钟实习报告_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、装订线 数字电路课程设计 题目: 利用CPLD设计可调时数字钟 学 院 电子信息工程学院 专 业 自动化 学 号 姓 名 教 师 刘鑫 2014年 6 月 9 日利用CPLD设计可调时数字钟摘 要装订线本数字钟采用动态显示数字的方法,输入512Hz的时钟信号,驱动显示位选信号产生,位选信号以85Hz从0到6不断地扫描数码管。输入2Hz信号通过2分频变成秒信号,秒信号驱动时钟计数模块计数,完成时钟计数的功能,在位选信号扫描到相应的数码管时,计数器将计数的结果显示在数码管上,由于视觉残留的关系,人眼会感觉到数字一直在显示,从而实现计时功能。在手动调节时钟时,有三个按键,一个实现清零,一个作为分调整

2、按键,最后一个作为时调整按键。调整时间键在对应时或者分数码管后通过按压按键产生脉冲使数码管实现加一的运算,从而改变时间,将1Hz闪烁的小数点接在秒信号上即可。关键词:CPLD 计数器 分频器 三选择器 七段译码器目 录一总体设计方案. .11.1设计要求. . .11.2设计原理.11.2.1电源电路.11.2.2振荡电路与分频电路.11.2.3显示电路. .21.2.4JTAG下载接口.21.2.5CPLD电路原理图.3二各模块说明.42.1设计思路及步骤.42.2总体框图.42.3各模块说明. .42.3.1 7段译码器.42.3.2 消抖模块 .52.3.3与门模块.52.3.4数据选择

3、器模块.62.3.5 D触发器模块.62.3.6非门模块.72.3.7或门模块.72.3.8十进制计数模块.72.3.9位选模块.82.3.10秒计数模块.82.3.11六进制模块.102.3.12分计数模块.112.3.13分频器模块.122.3.14顶层总模块.132.4数字钟电路总图.12三课程总结.163.1遇到的问题及其解决办法.163.2收获与体会.16参考文献.16一 总体设计方案1.1设计要求1、以数字形式显示时、分、秒的时间;2、要求手动校时、校分;3、时与分显示之间的小数点常亮;4、分与秒显示之间的小数点以1Hz频率闪烁;5、各单元模块设计即可采用原理图方式也可以用Veri

4、log程序进行设计。 1.2设计原理1.2.1 电源电路如图1.1示为实验所需的电源电路。图1-1 电源电路图1.2.2 振荡电路与分频电路晶体振荡器给数字钟提供一个频率稳定准确的32768Hz的方波信号,可保证数字钟的走时准确及稳定.分频电路采用T触发器对其分频,每经过一个T触发器对其二分频,所以各点的分频倍数分别为:QD: 24 QE: 25 QF: 26 QG: 27 QH: 28 QI: 292 QJ: 210 QL: 212 QM: 213 QN: 214;此处采用的是32768Hz的晶振,故分频之后QF:512Hz、QI:64Hz、QN:2Hz。图1-2 振荡电路与分频电路图1.2

5、.3 显示电路计数器实现了对时间的累计以8421BCD码形式输出,选用显示译码电路将计数器的输出数码转换为数码显示器件所需要的输出逻辑和一定的电流.图1-3 显示电路图数码管是共阴数码显示管,当其控制端为“0”时,数码显示管显示。显示模块输入时钟频率为512Hz,显示刷新频率约为85Hz。如图1.3示。1.2.4 JTAG接口电路图1-4 JTAG接口电路图1.2.5 CPLD电路原理图此原理图1.4的MODE和ADD分别控制校正位和其校正位进行加一校正。MODE共有七个状态分别对应六个数码管的校正和正常计数。图1-5 CPLD电路图二 各模块说明 2.1设计思路及步骤1、按原理图和元件插件图

6、完成电路的焊接;2、拟定数字钟的组成框图,划分模块;3、编写各模块程序;4、下载程序。2.2总体框图图2-1 总体程序框图2.3各模块说明2.3.1 7段译码器模块module yima(datain,dataout);input3:0datain;output6:0dataout;reg6:0dataout;always(datain)begincasex(datain)4b0000:dataout=7b;4b0001:dataout=7b;4b0010:dataout=7b;4b0011:dataout=7b;4b0100:dataout=7b;4b0101:dataout=7b;4b01

7、10:dataout=7b;4b0111:dataout=7b;4b1000:dataout=7b;4b1001:dataout=7b;default:dataout=7bx;endcaseendendmodule2.3.2消抖模块module xiaodou (clk,key_in,key_out);input clk,key_in;output key_out;Dchufa u1(.datain(key_in),.clk(clk),.dataout(c0);Dchufa u4(.datain(c2),.clk(clk),.dataout(key_out);yumen u3(.datain1

8、(c1),.datain2(key_in),.dataout(c2);feimen u2(.datain(c0),.dataout(c1);endmodule2.3.3与门模块module yumen(datain1,datain2,dataout);input datain1,datain2;output dataout;reg dataout;always(datain1,datain2)beginif(datain1&datain2)dataout=1;elsedataout=0;endendmodule2.3.4数据选择器模块module sel61(datain1,datain2,d

9、atain3,datain4,datain5,datain6,sel,dataout);input3:0 datain1,datain3,datain5;input2:0 datain2,datain4,sel;input1:0 datain6;output3:0 dataout;reg3:0 dataout;always(datain1,datain2,datain3,datain4,datain5,datain6,sel)begincase(sel)3b000:dataout=datain1;3b001:dataout=datain2;3b010:dataout=datain3;3b011

10、:dataout=datain4;3b100:dataout=datain5;3b101:dataout=datain6;default:dataout=dataout;endcaseendendmodule2.3.5D触发器模块module Dchufa(datain,clk,dataout);input datain,clk;output dataout;reg dataout;always(posedge clk)begindataout=datain;endendmodule2.3.6非门模块module feimen(datain,dataout);input datain;outp

11、ut dataout;reg dataout;always(datain)begindataout=datain;endendmodule2.3.7或门模块module huo(datain1,datain2,dataout);input datain1,datain2;output dataout;assign dataout=datain1|datain2;endmodule2.3.8十进制计数模块module shijinzhi(clk,res,HD,LD);input clk,res;output 1:0 HD;output 3:0 LD;reg1:0 HD;reg3:0 LD;alw

12、ays (posedge clk or posedge res)beginif (res)begin LD=4b0 ;HD=2b0 ;end else if(LD=4b1001)&(HD=2b0)beginLD=4b0 ;HD=2b1 ;endelse if(LD=4b1001)&(HD=2b01)beginLD=4b0;HD=2b10;endelse if(LD=4b0011)&(HD=2b10)beginLD=4b0;HD=2b0;endelse LD=LD + 1;endendmodule2.3.9位选模块module wela(datain,dataout);input2:0datai

13、n;output5:0dataout;reg5:0dataout;always(datain)begincase(datain)3b000:dataout=6b;3b001:dataout=6b;3b010:dataout=6b;3b011:dataout=6b;3b100:dataout=6b;3b101:dataout=6b;default:dataout=dataout;endcaseendendmodule2.3.10秒计数模块module seccount(clk,res,cout,g,s);input clk,res;output3:0 g;output 2:0 s;output

14、cout;reg3:0g;reg2:0s;reg cout;always(posedge clk or posedge res)beginif (res)begin g=4b0 ;s=2b0 ;cout=0;end else if(g=4b1001)&(s=3d5)beging=4b0 ;s=3b0 ;cout=1;endelse if(g=4b1001)&(s=3b0) beging=4b0 ;s=3b1 ;cout=0;endelse if(g=4b1001)&(s=3b1) beging=4b0 ;s=3d2 ;cout=0;endelse if(g=4b1001)&(s=3d2) be

15、ging=4b0 ;s=3d3 ;cout=0;endelse if(g=4b1001)&(s=3d3) beging=4b0 ;s=3d4 ;cout=0;endelse if(g=4b1001)&(s=3d4) beging=4b0 ;s=3d5 ;cout=0;endelse if(g=4b0)&(s=3d0)begincout=0;g=g+1;endelseg=g+1;endendmodule2.3.11六进制模块module liujinzhi(clk,dataout);input clk;output2:0dataout;reg2:0dataout;always(posedge c

16、lk)beginif(dataout=5)dataout=0;elsedataout=dataout+1;endendmodule2.3.13分计数模块module mincount(clk,res,cout,g,s);input clk,res;output3:0 g;output 2:0 s;output cout;reg3:0g;reg2:0s;reg cout;always(posedge clk or posedge res)beginif (res)begin g=4b0 ;s=2b0 ;cout=0;end else if(g=4b1001)&(s=3d5)beging=4b0

17、;s=3b0 ;cout=1;endelse if(g=4b1001)&(s=3b0) beging=4b0 ;s=3b1 ;cout=0;endelse if(g=4b1001)&(s=3b1) beging=4b0 ;s=3d2 ;cout=0;endelse if(g=4b1001)&(s=3d2) beging=4b0 ;s=3d3 ;cout=0;endelse if(g=4b1001)&(s=3d3) beging=4b0 ;s=3d4 ;cout=0;endelse if(g=4b1001)&(s=3d4) beging=4b0 ;s=3d5 ;cout=0;endelse if

18、(g=4b0)&(s=3d0)begincout=0;g=g+1;endelseg=g+1;endendmodule2.3.14分频器模块module fenpin(clk1,clk2);input clk1;output clk2;reg clk2;always(posedge clk1)beginclk2=clk2;endendmodule2.3.15顶层总模块module shizhong(key1,key2,key3,clk1,clk2,clk3,dataout1,dataout2,dataout3);input key1,key2,key3,clk1,clk2,clk3;output

19、6:0dataout1;output5:0dataout2;output dataout3;wire c0,c1,c3,c5,c6,c7,c8;wire 1:0 c14;wire 2:0c12,c4,c10;wire 3:0c11,c15,c9,c13;xiaodou u1(.clk(clk1),.key_in(key2),.key_out(c0);xiaodou u2(.clk(clk1),.key_in(key3),.key_out(c1);fenpin u3(.clk1(clk2),.clk2(c3);liujinzhi u4(.clk(clk3),.dataout(c4);huo u5

20、(.datain1(c0),.datain2(c5),.dataout(c6);huo u6(.datain1(c1),.datain2(c7),.dataout(c8);seccount u7(.clk(c3),.res(key1),.cout(c7),.g(c9),.s(c10);mincount u8(.clk(c8),.res(key1),.cout(c5),.g(c11),.s(c12);shijinzhi u9(.clk(c6),.res(key1),.HD(c14),.LD(c13);sel61 u10(.datain1(c9),.datain2(c10),.datain3(c1

21、1),.datain4(c12),.datain5(c13),.datain6(c14),.sel(c4),.dataout(c15);wela u11(.datain(c4),.dataout(dataout2);yima u12(.datain(c15),.dataout(dataout1);huo5 u13(.datain1(c4),.datain2(c3),.dataout(dataout3);endmodule2.4数字钟电路总图数码管显示控制电路工作原理:以512Hz的频率作为输入端时钟脉冲,用六进制计数器为三八译码器提供六个不同状态,分别控制六个数码管的状态,每个数码管的显示频率约为85Hz,可以充分的利用人眼的视觉残留现象实现数字的常显,观测到的结果为:数码管常亮。此电路中小数点的显示是用一个或门,通过1Hz频率来控制第三个数码管的小数点显示,再通过一个

温馨提示

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

评论

0/150

提交评论