单片机在执行指令时,通常将一条指令分解为若干基本的微操作,这些微操作所对应的脉冲信号在时间上的先后次序称为单片机的时序。单片机发出的时序信号有两类:一类用于片内各功能部件的控制;另一类用于片外的存储器或扩展的i/o口的控制。
单片机的时序信号是以单片机内部时钟电路产生的时钟周期(振荡周期)或外部时钟电路送入的时钟周期为基础形成的,在它的基础上形成机器周期、指令周期和各种时序信号。
1)时钟周期(振荡周期):时钟周期是指cpu工作时钟的周期,用tosc表示。它是时钟频率fosc的倒数。时钟周期由为单片机提供定时信号的振荡源提供,因此又称为振荡周期。
2)状态周期:两个时钟周期为1个状态周期,用s表示。
3)机器周期:机器周期是指单片机与存储器进行一次通信所需的时间,用t表示。mcs-51系列单片机的每个机器周期由6个s状态组成,用s1、s2、…、s6表示。每个状态周期包含两个振荡器周期,分为两个节拍。这样,一个机器周期由12个振荡器周期组成。若采用6mhz的晶体振荡器,则每个机器周期为2μs(机器周期频率为晶体振荡器频率的1/12)。一般通过sm和pi的组合来表示一个机器周期中的时间点,如cpu在机器周期的s1p2期间取指令代码。
4)指令周期:指令周期是指执行一条指令所需的时间,用tⅠ表示。不同的指令,由于功能不同,它们的执行时间也是不同的。在mcs-51系列单片机的指令系统中,指令长度为1~4b,其中单/双字节指令的指令周期为1个或2个机器周期,3字节指令的指令周期为2个机器周期,乘除指令的指令周期为4个机器周期。若采用6mhz晶体振荡器,则指令执行时间分别为2μs、4μs、8μs。
以上3个周期是表述cpu时序的时间概念。时钟周期是最小的时间单位,机器周期是表述指令时间的单位。
图2-14 mcs51系列单片机各种周期的关系(www.xing528.com)
在cpu时序中还涉及一些控制信号,如ale(地址锁存控制信号),它的作用是访问片外rom的低8位地址锁入地址锁存器。下面结合指令系统的学习,对ale信号作一些补充说明。
在cpu执行指令时,大多数情况下,一个机器周期有两个ale信号,用于锁定指令地址,如图2-15a、b、c,即ale信号的频率是时钟频率的1/6,如fosc=12mhz时,ale信号的频率为2mhz。但是,在个别情况下,也就是在cpu执行访问外部ram和i/o接口指令(movx@dptr,a)时,在第二个机器周期,会少一个ale信号,如图215d所示。
图2-15 单片机执行指令的时序
ale信号被设计成在一个机器周期内有两个脉冲,主要原因是为了加快双字节长度的指令执行速度,使得这些指令能够在一个机器周期内被取出执行。
mcs-51系列单片机的指令系统如果按时间分类,可以分成3类:单机器周期指令、双机器周期指令、四机器周期指令。
在整个指令系统中,大多数指令能够在一个机器周期内完成。在两个机器周期内完成的主要涉及3字节长度的指令、与外部ram打交道的指令、与程序存储器打交道的指令等。在4个机器周期内完成的指令只有两条,即乘法指令和除法指令。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。