时钟振荡电路用于产生单片机正常工作时所需要的时钟信号。51系列单片机可以采用两种方式的时钟振荡电路:内部振荡电路和外部振荡电路。下面分别介绍这两种方式。
内部振荡电路
内部振荡电路采用单片机内部振荡器来产生工作所需的时钟。51系列单片机内部包含一个高增益的单级反相放大器,引脚XTAL1和XTAL2分别为片内反相放大器的输入端口和输出端口。当单片机工作于内部时钟模式的时候,只需在XTAL1引脚和XTAL2引脚连接一个晶体振荡器或者陶瓷振荡器,并通过两个电容后接地即可,如图2.2所示。使用时,对于电容的选择有一定的要求。
图2.2 内部时钟模式
当外接晶体振荡器的时候,接地电容一般选择C1=C2=30±10pF。
当外接陶瓷振荡器的时候,接地电容一般选择C1=C2=40±10pF。
在实际的硬件电路板设计时,应该保证外接的振荡器和电容尽可能靠近单片机的XTAL1和XTAL2引脚。这样可以减少寄生电容的影响,使振荡器能够稳定可靠地为单片机CPU提供时钟信号。如果振荡器连接不当,会导致电路不起振,没有时钟信号产生。
外部振荡电路
外部振荡电路是采用外部振荡器产生时钟信号直接供单片机使用。对于不同结构的单片机,外部振荡电路的方式有所不同,如图2.3所示。
图2.3 外部振荡电路
对于普通的8051单片机,外部时钟信号由XTAL2引脚接入后直接送到单片机内部的时钟发生器,而引脚XTAL1则应直接接地。这里需要注意,由于XTAL2引脚的逻辑电平不是TTL信号,因此建议外接一个上拉电阻。
对于CMOS型的80C51、80C52、AT89S52等单片机,其内部的时钟发生器的信号取自于反相放大器的输入端。因此,外部的时钟信号应该接到单片机的XTAL1引脚,而XTAL2引脚悬空即可。
另外,无论采用内部振荡电路还是外部振荡电路,振荡电路的频率应该满足单片机的工作频率要求,比如对于AT89S52单片机,其工作频率为0~33MHz。