数字钟数字逻辑.docx
上传人:王子****青蛙 上传时间:2024-09-13 格式:DOCX 页数:3 大小:1.3MB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

数字钟数字逻辑.docx

数字钟数字逻辑.docx

预览

在线预览结束,喜欢就下载吧,查找使用更方便

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

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”,输出低电平使计数器清零。整个计数循环为00→01→02→……→23→00→……,共有24个稳定状态。计数值采用BCD码形式,Q7-Q4表示小时的十位,Q3-Q0表示小时的个位。EN输入端当正常计数状态时接收分钟计时电路的进位输出,而在校时状态时接收校时脉冲用于控制小时值的翻转。小时计时模块的输入输出端口如下图-3所示:图-3小时计时电路的端口特征(2)分钟、秒计时电路分钟、秒计时需要60进制计数,其电路下图-4所示:图-4分钟计时电路该电路用两片74160(一位十进制加法计数器)采用同步连接构成60进制计数器,通过译码电路识别暂态“59”,输出低电平使计数器清零。整个计数循环为00→01→02→……→58→59→00→……,共有60个稳定状态。计数值采用BCD码形式,Q7-Q4表示分钟或秒的十位,Q3-Q0表示分钟或秒的个位。EN输入端当正常计数状态时接收分钟计时电路的进位输出,而在校时状态时接收校时脉冲用于控制小时值的翻转。计满进位输出端CO用于触发高一级计数器的计数动作(秒计满触发分钟的计数,分钟计满触发小时的计数)。分钟、秒计时模块的输入输出端口如下图-5所示:图-5分钟/秒计时电路的端口特征计时/校时的切换由模块Count_control实现,其端口特征如下图-6所示:图-6计时/校时切换(计数控制)端口特征期中,Func_sel输入端接收功能脉冲输入,维护内部一个模4计数器,以此控制数字钟在计时/校时/校分/校秒四种状态间转换;Setn输入端接收校时脉冲,负脉冲有效,每收到1个校时脉冲,对应的计数单元(时单元或分单元或秒单元)计数加1;Sec_co输出由秒计数单元的进位提供,Min_co输入输出由秒计数单元的进位提供;Sec_sn、Min_en、Hour_en提供三个计数单元所需要的使能信号(由此模块的内部逻辑在前级进位输出和校时脉冲之间作二选一)。计数单元功能选择及相应信号的定义如下表-1所示:表-1计数单元功能选择表内部模4计数状态Q1Q0当前功能Sec_en取值Min_co取值Hour_en取值00计数高电平秒单元进位分单元进位01调时低电平低电平校时脉冲10调分低电平小时脉冲低电平11调秒小时脉冲低电平低电平Count_control模块的AHDL源码如下:subdesigncount_control(func_sel:input;setn:input;sec_co,min_co:input;sec_en,min_en,hour_en:output;)variableq[1..0]:dff;beginq[].clk=func_sel;q[]=q[]+1;if(q[]>3)thenq[]=0;endif;caseq[]iswhen0=>sec_en=vcc;min_en=sec_co;hour_en=min_co;when1=>sec_en=gnd;min_en=gnd;hour_en=!setn;when2=>sec_en=gnd;min_en=!setn;hour_en=gnd;when3=>sec_en=!setn;min_en=gnd;hour_en=gnd;endcase;end;以上述模块为基础,可以完成下图-1所示的顶层设计。下面采用扫描显示方式实现时分秒的小时,其扫描显示驱动电路如下图-7所示:图-7扫描显示驱动电路期中,Select_disp根据模6计数器Co