【单片机】2.6 时钟电路与时序

  • 时钟电路产生AT89S52工作时所必需的控制信号,在时钟信号的控制下,严格按时序执行指令。
  • 执行指令时,CPU 首先到程序存储器中取出需要执行的指令操作码(取指),然后译码,并由时序电路产生一系列控制信号完成指令所规定的操作(执行)。
  • CPU发的时序信号两类,一类用对片内各个功能部件控制,用户无须了解; 另一类用于对片外存储器或I/O口的控制,这部分时序对于分析、设计硬件接口电路至关重要。

2.6.1 时钟电路设计

  • 时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式,一种是内部时钟方式,另一种是外部时钟方式。

1.内部时钟方式

  • AT89S52内部有一个用于构成振荡器的高增益反相放大器,输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,构成一个稳定的自激振荡器,图2-14是AT89S52内部时钟方式的电路。
    图2-14 内部时钟方式电路
  • C1和C2的典型值通常选择为30pF。电容大小会影响振荡器频率高低、振荡器的稳定性和起振的快速性。晶振频率范围通常是1.2~12MHz。晶体频率越高,单片机速度就越快。速度快对存储器的速度要求就高,印制电路板的工艺要求也高,即线间的寄生电容要小。晶体和电容应尽可能与单片机靠近,以减少寄生电容,保证振荡器稳定、可靠地工作。为提高温度稳定性,采用温度稳定性能好的电容。
  • 常选6MHz或12MHz石英晶体。随着集成电路制造工艺技术的发展,单片机的时钟频率也在逐步提高,已达33MHz

2.外部时钟方式

  • 用现成的外部振荡器产生脉冲信号,常用于多片 AT89S52同时工作,以便于多片AT89S52单片机之间的同步,一般为低于12MHz的方波。
  • 外部时钟源直接接到XTAL1端,XTAL2端悬空,见图2-15。
    图2-15 AT89S52的外部时钟方式电路

3.时钟信号的输出

  • 当使用片内振荡器,XTAL1、XTAL2引脚还能为应用系统中的其他芯片提供时钟,但需增加驱动能力。引出的方式有两种,如图2-16所示。

图2-16 时钟信号的两种引出方式

2.6.2 时钟周期、机器周期、指令周期与指令时序

  • 各种指令时序与时钟周期相关。

1.时钟周期

  • 时钟控制信号的基本时间单位。若晶振频率为fosc,则时钟周期Tosc=1/fosc。如fosc=6MHz,Tosc=166.7ns

2.机器周期

  • CPU完成一个基本操作所需时间为机器周期执行一条指令分为几个机器周期。每个机器周期完成一个基本操作,如取指令、读或写数据等。
  • 12个时钟周期1个机器周期
  • 1个机器周期包括12个时钟周期,分6个状态S1~S6。每个状态又分两拍:P1和P2。
  • 因此,一个机器周期中的12个时钟周期表示为S1P1、S1P2、S2P1、S2P2、…、S6P2,如图2-17所示。
    图2-17 AT89S52的机器周期

3.指令周期

  • 执行一条指令所需的时间。简单的单字节指令,取出指令立即执行,只需一个机器周期的时间
  • 而有些复杂的指令,如转移、乘、除指令则需两个或多个机器周期。
  • 从指令执行时间看:
    • 单字节和双字节指令一般为单机器周期双机器周期;
    • 三字节指令都是双机器周期;
    • 乘、除指令占用4个机器周期

版权声明:本文为Chancy_Lu原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。