数电设计报告3班20号

晶体振荡器是构成数字式时钟的核心,它保证了时钟的走时准确及稳定。

电路通过CMOS非门构成的输出为方波的数字式晶体振荡电路,这个电路中,CMOS非门U1与晶体、电容和电阻构成晶体振荡器电路,U2实现整形功能,将振荡器输出的近似于正弦波的波形转换为较理想的方波。输出反馈电 阻R1为非门提供偏置,使电路工作于放大区域,即非门的功能近似于一个高增益的反相放大器。电容C1、C2与晶体构成一个谐振型网络,完成对振荡频率的控制功能,同时提供了一个180度相移,从而和非门构成一个正反馈网络,实现了振荡器的功能。由于晶体具有较高的频率稳定性及准确性,从而保证了输出频率的稳定和准确。

晶体XTAL的频率选为32768HZ。该元件专为数字钟电路而设计,其频率较低,有利于减少分频器级数。

从有关手册中,可查得C1、C2均为30pF。当要求频率准确度和稳定度更高时,还可接入校正电容并采取温度补偿措施。

由于CMOS电路的输入阻抗极高,因此反馈电阻R1可选为10MΩ。较高的反馈电阻有利于提高振荡频率的稳定性,非门电路可选74HC00。

COMS晶体振荡器 3.2分频电路

由于振荡器产生的频率很高,要得到1Hz秒脉冲需要进行分频。555定时器与RC电路组合产生1KHz脉冲,可采用74ls90组成分频电路,得到1Hz秒脉冲。

74160功能:十进制计数器(÷2 和÷5)

原理说明:本电路是由4 个主从触发器和用作除2 计数器及计数周期长度为除5 的3 位2 进制计数器所用的附加选通所组成。有选通的零复位和置9 输入。74LS90 可以获得对称的十分频计数,办法是将QD 输出接到A 输入端,并把输入计数脉冲加到B 输入端,在QA 输出端处产生对称的十分频方波。

真值表

Reset Inputs复位输入 R0(1) H H X X L L X R0(2) H H X L X X L R9(1) L X H X L X L R9(2) X L H L X L X COUNT H=高电平 L=低电平 ×=不定 由74160组成的分频器电路如图:

输出 QD L L H QC L L L QB L L L QA L L H COUNT COUNT COUNT

在quartus2上对分频器电路进行仿真得到如下波形:

3.3时间计数器模块

时间计数电路由秒个位和秒十位计数器、分个位和分十位计数器及时个位和时十位计数器电路构成,其中秒个位和秒十位计数器、分个位和分十位计数器为60进制计数器,而根据设计要求,时个位和时十位计数器为24进制计数器。时间计数器电路使用CPLD实现。

分秒计时器的设计:

分,秒电路采用60进制计数,可采用74LS160与与非门组成60进制计数器。将第一片74LS160做为十进制计数器,将第一片的进位脉冲作为第二片的时钟脉冲信号,当个位计到1001时,在下一个脉冲到达后,个位将进位脉冲输出给十位,十位进位输出为0001。第二片采用同步置零法将其设计为6进制计数器。两片组合共同组成60进制计数器。 74160的功能表如表1所示。由表1可知,74160具有以下功能: ① 异步清零

当CR(CLR’)=0时,不管其他输入端的状态如何(包括时钟信号CP ),计数器输出将被直接置零,称为异步清零。 ② 同步并行预置数

在CR=1的条件下,当LD(LOAD’)=0、且有时钟脉冲CP 的上升沿作用时,D0、D1、D2、D3 输入端的数据将分别被Q0~Q3所接收。由于这个置数操作要与CP 上升沿同步,且D0、D1、D2、D3的数据同时置入计数器,所以称为同步并行置数。 ③ 保持

在CR=LD=1的条件下,当ENT=ENP=0,即两个计数使能端中有0时,不管有无CP 脉冲作用,计数器都将保持原有状态不变(停止计数)。需要说明的是,当ENP=0, ENT=1时,进位输出C也保持不变;而当ENT=0时,不管ENP状态如何,进位输出RCO=0。 ④ 计数

当CR=LD=ENP=ENT=1时,74160处于计数状态,电路从0000状态开始,连续输入10个计数脉冲后,电路将从1001状态返回到0000状态,RCO端从高电平跳变至低电平。可以利用RCO端输出的高电平或下降沿作为进位输出信号。

表3—1 74160的功能表 输入 输出 0 1 2 3CP CR LD P T DDDD Q0 Q1 Q2 Q3 × 0 × × × × × × × 0 0 0 0 ↑ 1 0 × × a b c d a b c d 保持 保持(C=0) 计数 × 1 1 0 1 × × × × × 1 1 × 0 × × × × ↑ 1 1 1 1 × × × × 在这个模块之中,我把它分成了三个小模块实现,分别是: (1) 60进制的秒计数器(Sec_60timer.bsf) (2) 60进制的分钟计数器(Min_60timer.bsf) (3) 24进制的小时计数器(24timer.bsf)

(1)60进制的秒计数器(Sec_60timer.bsf)

其中第一个计数器Units_Sec与第二个计数器Tens_Sec组成了一个60进制的秒计数器。Units_Sec是用来显示秒或分的第一位,即个位,个位数能从0到9,而十位则从0-5。当脉冲进行到59次后,下一次将直接进为1,个位和十位将变为0。根据这样,设计了如下原理图。

联系客服:779662525#qq.com(#替换为@)