单片机的时序就是CPU在执行指令时所需控制信号的时间顺序,为了保证各部件间的同步工作,单片机内部电路需要在时钟脉冲的触发下按时序进行工作。 1.时钟电路。 8051单片机内部有一个用于构成振荡器的高增益反相放大器,引脚 XTALI和XTAI2分别是此放大器的输入端和输出端。时钟脉冲的产生有内部方式和外部方式两种。 (1)内部时钟方式。 内部方式时钟电路如图3-10a所示。外接晶体以及电容C、C2构成并联谐振电路,接在放大器的反馈回路中。内部振荡器产生自激振荡,晶振频率fosc在2~12MHz之间任选。 外接晶体时,C1和C2通常选30pF左右;外接陶瓷谐振器时,Cl和C2的典型值为47pF。 (2)外部时钟方式。 外部方式时钟电路如图3-10b所示。当采用外部方式时钟电路时,外部信号接至XTAL2(内部时钟电路输入端),而 XTAL1接地。由于XTAL2端的逻辑电平不是TTL的,因而通常需要外接一个上拉电阻。
2.CPU的时序。
计算机在执行指令时,是将一条指令分解为若干基本的微操作。这些微操作所对应的脉冲信号在时间上的先后次序称为计算机时序。8051单片机的时序由下面四种周期构成振荡周期:振荡脉冲的周期,即节拍,用P表示。
时钟周期:两个振荡周期为一个状态周期,也称为时钟周期,用S表示,它是单片机的基本时间单位。
机器周期:CPU完成一个基本操作所需要的时间称为机器周期。一个机器周期包含12振荡周期,分为6个状态S1~S6,每个状态又分为两个节拍(P1、P2)。振荡周期、时钟周期和机器周期的关系如图3-11所示。
指令周期:执行一条指令所需的时间,它是以机器周期为单位。8051系列单片机除乘法、除法指令是4周期指令外,其余都是单周期指令和双周期指令。若用12MHz晶振,则单周期指令和双周期指令的指令周期分别为1us和2us。
3.单片机的工作方式。
8051单片机的工作方式有:程序执行方式、复位方式、待机运行方式、掉电工作方式以及EPROM编程和检验方式。
(1)程序执行方式。
程序执行方式是单片机的基本工作方式,CPU按照程序计数器(PC)所提供的地址从ROM中取指并执行。每取出一个字节,PC+1→PC,因而在一般的情况下CPU顺序执行程序。当调用子程序、中断或执行转移指令时,PC则会产生相应的地址码,使CPU根据PC新的地址从ROM中取指并执行。
(2)复位方式。
复位是单片机的一个重要工作状态。在单片机工作时,上电时要复位,断电后要复位,发生故障后要复位。因此,充分了解单片机的复位条件、复位电路及复位后的状态十分必要。
1)复位条件。8051单片机的复位操作是使RST引脚(9脚)保持高电平在两个机器周期以上。如果时钟频率为6MHz,机器周期就为2μs,则需要使RST引脚保持4μs以上的高电平。
2)复位后的状态。单片机复位操作不会改变片内RAM中低128B存储单元的内容,但特殊寄存器区中(高128B)SFR将被初始化。复位期间单片机的ALE、PSEN输出高电平复位后片内各寄存器的状态见表3-2。
单片机复位期间ALE、PSEN不输出信号,即单片机在复位期间不会有任何取指操作。
从单片机复位后各寄存器的状态,我们应该注意如下情况:
①程序计数器PC被清零,程序将从0000H地址开始执行。
②SP值为07H,表明初始化的堆栈底为07H。若在程序中不重新设置SP值,堆栈操作时堆栈将占用原属于通用寄存器区的08H~1FH存储单元(共24B),20H以上为位寻址区。
若启动工作寄存器1~3区,或堆栈容量超出24B,就将出错。因此,系统若要求堆栈深度足够大或不占用部分工作寄存器区及位寻址区,就需要在程序初始化中重设SP值。通常置SP值为50H或60H,相应的堆栈深度为48B和32B。
③P0~P3口值为FFH,即复位后已使P0~P3口每一端线均为高电平,为这些端线用作输入口做好了准备。
④其余各寄存器复位后均为0,这些寄存器在使用时通常需要先赋值,因而无需记忆这些寄存器复位后的状态。
3)复位电路。单片机的复位电路通常采用上电自动复位和按键复位两种方式。最简单的上电自动复位电路和按钮复位电路如图3-12所示。
上电自动复位是通过外部复位电路的电容充电来实现的。RC构成微分电路,在接电瞬间产生微分脉冲,其宽度大于两个机器周期,因而单片机实现复位。
按键复位是通过手动按复位键( RESET)实现单片机的复位。按下 RESET键,单片机ST端线就通过RS接通电源VCC,使RST端线足以保持高电平两机器周期以上。
手动按键复位除了图3-12所示的按键电平方式外,还有按键脉冲方式,按下 RESET键后,通过RC微分电路产生的正脉冲来实现复位。
(3)待机运行方式。
将PCON寄存器的IDL位置1,即进入待机运行方式。在程序运行过程中,CPU没有工作要做(等待定时、中断请求等的到来)时,进入待机运行方式,可降低功耗。在待机运行方式下,时钟电路仍然工作,但不向CPU提供,只是向中断系统、定时/计数器和串行口等提供时钟脉冲。
单片机进入待机方式后,有两种退出方式:一种是中断系统发出了中断请求,响应中断(PCON的IDL位被清零)而中止待机方式;另一种是通过硬件复位。
(4)掉电工作方式。
掉电工作方式也是一种低功耗工作方式,将RCON寄存器的PD位置1,即进入掉电方式。在掉电工作方式下,片内时钟停振,仅保留RAM单元中的内容。退出掉电工作状态的唯一方法是硬件复位。