数字钟数字逻辑_第1页
数字钟数字逻辑_第2页
数字钟数字逻辑_第3页
数字钟数字逻辑_第4页
数字钟数字逻辑_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

数字钟的设计一、数字钟的功能描述(1)、计时和显示功能采用24小时制,以十进制数字显示时、分、秒(时从00-23,分、秒从00-59)。(2)、校时功能。当数字钟走时有偏差时,应能手动校时。二、数字钟的设计思路根据功能要求,整个数字钟分为计时和校时两个部分。计时部分秒计时电路接收1Hz时基信号,进行60进制计数,计满后秒值归0,并产生1/60Hz时钟信号,分钟计时电路接收1/60Hz时钟信号,进行60进制计数,计满后秒值归0,并产生1/3600Hz时钟信号,小时计时电路接收1/3600Hz时钟信号,进行24小时计数,计满后小时、分、秒均归0,如此循环往复。校时部分,采用两个瞬态按键配合实现,1号键产生单脉冲,控制数字在计时/校时/校分/校秒两种状态间转换,2号键通过控制计数使能端让时/分/秒计数器发生状态翻转发达到指定的数值。总体原理电路如下图-1所示:图-1 数字钟的原理电路三、采用原理图和HDL混合设计方式实现数字钟(1)小时计时电路小时计时电路需要24进制计数,其电路下图-2所示:图-2 小时计时电路该电路用两片74160(一位十进制加法计数器)采用同步连接构成24进制计数器,通过译码电路识别暂态“24”,输出低电平使计数器清零。整个计数循环为0001022300,共有24个稳定状态。计数值采用BCD码形式,Q7-Q4表示小时的十位,Q3-Q0表示小时的个位。EN输入端当正常计数状态时接收分钟计时电路的进位输出,而在校时状态时接收校时脉冲用于控制小时值的翻转。小时计时模块的输入输出端口如下图-3所示:图-3 小时计时电路的端口特征(2)分钟、秒计时电路分钟、秒计时需要60进制计数,其电路下图-4所示:图-4 分钟计时电路该电路用两片74160(一位十进制加法计数器)采用同步连接构成60进制计数器,通过译码电路识别暂态“59”,输出低电平使计数器清零。整个计数循环为000102585900,共有60个稳定状态。计数值采用BCD码形式,Q7-Q4表示分钟或秒的十位,Q3-Q0表示分钟或秒的个位。EN输入端当正常计数状态时接收分钟计时电路的进位输出,而在校时状态时接收校时脉冲用于控制小时值的翻转。计满进位输出端CO用于触发高一级计数器的计数动作(秒计满触发分钟的计数,分钟计满触发小时的计数)。分钟、秒计时模块的输入输出端口如下图-5所示:图-5 分钟/秒 计时电路的端口特征(1) 计时/校时的切换由模块Count_control实现,其端口特征如下图-6所示:图-6 计时/校时 切换(计数控制)端口特征期中,Func_sel输入端接收功能脉冲输入,维护内部一个模4计数器,以此控制数字钟在计时/校时/校分/校秒四种状态间转换;Setn输入端接收校时脉冲,负脉冲有效,每收到1个校时脉冲,对应的计数单元(时单元或分单元或秒单元)计数加1;Sec_co输出由秒计数单元的进位提供,Min_co输入输出由秒计数单元的进位提供;Sec_sn、Min_en、Hour_en提供三个计数单元所需要的使能信号(由此模块的内部逻辑在前级进位输出和校时脉冲之间作二选一)。计数单元功能选择及相应信号的定义如下表-1 所示:表-1 计数单元功能选择表内部模4计数状态Q1 Q0当前功能Sec_en取值Min_co取值Hour_en取值00计数高电平秒单元进位分单元进位01调时低电平低电平校时脉冲10调分低电平小时脉冲低电平11调秒小时脉冲低电平低电平Count_control模块的AHDL源码如下:subdesign count_control(func_sel:input;setn:input;sec_co,min_co:input;sec_en,min_en,hour_en:output;)variableq1.0:dff;beginq.clk=func_sel;q=q+1;if(q3)then q=0;end if;case qiswhen 0=sec_en=vcc;min_en=sec_co;hour_en=min_co;when 1=sec_en=gnd;min_en=gnd;hour_en=!setn;when 2=sec_en=gnd;min_en=!setn;hour_en=gnd;when 3=sec_en=!setn;min_en=gnd;hour_en=gnd;end case;end;以上述模块为基础,可以完成下图-1所示的顶层设计。下面采用扫描显示方式实现时分秒的小时,其扫描显示驱动电路如下图-7所示:图-7 扫描显示驱动电路期中,Select_disp根据模6计数器Counter6的输出将待显示的6位十进制结果分时送给七段译码器Deled以产生显示字形,Counter6的输出同时可以用来将显示结果在6个数码管上展开,只要时钟Clk_scan的频率合适,就可以看到完整的时分秒显示结果。 模块Counter6的AHDL源码如下(其中使用了状态机描述方法):subdesign counter6(clk:input;q2.0:output;)variable ss:machine of bits(q2.0)with states(s0=0,s1=1,s2=2,s3=3,s4=4,s5=5);beginss.clk=clk;table ss=ss;s5=s4;s4=s3;s3=s2;s2=s1;s1=s0;s0=s5;end table;end; 模块select_disp的AHDL源码如下:subdesign select_disp(sel2.0:input;in03.0:input;in13.0:input;in23.0:input;in33.0:input;in43.0:input;in53.0:input;out3.0:output;)begin case seliswhen 0=out=in0;when 1=out=in1;when 2=out=in2;when 3=out=in3;when 4=out=in4;when 5=out=in5;end case;end; 模块deled的AHDL源码如下:SUBDESIGN deled( num3.0:INPUT; a,b,c,d,e,f,g:OUTPUT;)BEGINTABLE num3.0=a,b,c,d,e,f,g; H0 = 1,1,1,1,1,1,0; H1 = 0,1,1,0,0,0,0; H2 = 1,1,0,1,1,0,1; H3 = 1,1,1,1,0,0,1; H4 = 0,1,1,0,0,1,1; H5 = 1,0,1,1,0,1,1; H6 = 1,0,1,1,1,1,1; H7 = 1,1,1,0,0,0,0; H8 = 1,1,1,1,1,1,1; H9 = 1,1,1,1,0,1,1; HA = 1,1,1,0,1,1,1; HB = 0,0,1,1,1,1,1; HC = 1,0,0,1,1,1,0; HD = 0,1,1,1,1,0,1; HE = 1,0,0,1,1,1,1; HF = 1,0,0,0,1,1,1;END TABLE;END;数字钟设计的层次关系如下图-8所示:图-8 数字钟设计的层次关系图四、软件仿真结果【截图】A.时间从01:59:5902:00:00的转变B.时间从09:59:5910:00:00的转变C.时间从23:59:5900:00:00的转变5、 硬件调试结果六、设计心得与体会通过数字钟的设计,体会到了数字逻辑理论在实际生产实践中的应用,学会了设计一个简单数字系统的全过程,熟练掌握了MAX+plus II的各种操作与应用,其中出现了各种大大小小的问题,学会了自己查找资料、查看英文版帮助文档的并解决问题的能力,体会到了研究与设计的乐趣。学会了MAX+plus II的三种常用的逻辑设计输入方式:图形设计输入、文本设计输入、波形设计输入。当然也初步掌握了AH

温馨提示

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

评论

0/150

提交评论