1.3 时钟电路及复位电路
1.3.1 时钟电路与时序
1.时钟电路
单片机内有时钟电路(又称时钟发生器),与振荡器共同产生单片机工作所需要的时钟信号。它使单片机在唯一的时钟信号控制下,严格地按一定的节拍进行工作,或者说按一定的时序进行工作。振荡器可由单片机内振荡电路外接振荡元件(如晶振)实现,构成内部时钟方式,如图1-11(a)所示。振荡器也可以是外振荡源,将其信号接单片机XTAL1脚,XTAL2脚悬空,构成外部时钟方式,如图1-11(b)所示。
图1-11 单片机时钟方式原理框图
2.时序
单片机执行的指令均是在CPU控制器的时序控制电路的控制下进行的,各种时序均与时钟周期有关。各时序关系图如图1-12所示。
图1-12 各时序关系图
(1)时钟周期
时钟周期是为单片机提供定时信号的振荡源的周期,也称为振荡周期,是单片机的基本时间单位。为了描述方便,下面叙述中的振荡周期用P表示。
(2)状态时钟周期
时钟周期经2分频后成为内部两相脉冲信号P1、P2,用做单片机内部功能部件按序协调工作的控制信号,称为状态时钟周期,简称状态周期,用S表示。
(3)机器周期
CPU完成一个基本操作所需要的时间称为机器周期。规定一个机器周期的宽度为6个状态周期,并依次表示为S1~S6。由于一个状态又包括两个时钟周期,因此,一个机器周期总共有12个时钟周期,分别记做S1P1、S1P2、……、S6P2。即,机器周期=12/fOSC。
(4)指令周期
执行一条命令所需要的时间称为指令周期。AT89S51单片机有单周期指令、双周期指令和四个机器周期指令。
例如:当振荡脉冲频率为fOSC=12MHz时,则
时钟周期=1/fOSC=0.0833μs
状态周期=2×时钟周期=0.167μs
机器周期=12×时钟周期=1μs
指令周期=(1~4)机器周期=1~4μs
1.3.2 复位电路
复位是令单片机初始化的操作,其主要功能是初始化单片机的工作状态。例如复位后PC=0000H,这样使单片机从0000H单元开始执行程序。另外,当程序运行出错或因操作错误而使系统处于死锁状态时都需要进行复位操作。
单片机常见的复位电路如图1-13所示。
图1-13 单片机复位电路
图1-13(a)为上电复位电路,它是利用电容充电来实现的。在接电瞬间,RST端的电位与VCC(+5V)相同,随着充电电流的减小,RST的电位逐渐下降。只要保证RST为高电平的时间大于两个机器周期,便能正常复位。
图1-13(b)为按键复位电路。该电路除了具有上电复位功能,还可以使用按键复位,只需按下图1-13(b)中的SW按键,此时电源VCC经电阻R1、R2分压,在RST端产生一个复位高电平。通常晶振为6MHz时,复位电路元件参数为22μF的电解电容和1KΩ的电阻;若晶振为12MHz时,复位电路元件参数为10μF的电解电容和10KΩ的电阻。复位后,内部各专用寄存器状态如表1-7所示。
表1-7 AT89S51单片机复位后各内部寄存器的状态