首页 理论教育 单片机指令时序及应用原理

单片机指令时序及应用原理

时间:2023-10-23 理论教育 版权反馈
【摘要】:任何一条指令的执行都分为取指令和执行指令阶段。在指令执行阶段,对指令操作码进行译码,产生一系列控制信号以完成指令的执行。由于是单字节指令,CPU自动封锁后面的读操作,故后3次读操作无效,并在第二机器周期的S6P2时完成指令的执行。图2-22访问片外RAM的双周期指令的时序外部数据存储器读写时序。

单片机指令时序及应用原理

任何一条指令的执行都分为取指令和执行指令阶段。在取指令阶段,根据程序计数器PC中指示的地址,从程序存储器ROM中取出需要执行指令的操作码和操作数。在指令执行阶段,对指令操作码进行译码,产生一系列控制信号以完成指令的执行。

1.单周期指令的时序

单周期指令可分为单周期单字节指令和单周期双字节指令。它们的时序如图2-20所示。

图2-20 单周期指令的时序

(1)单字节单周期指令(如:INC A),单字节指令的读取开始于S1P2,接着锁存于指令寄存器IR内并开始执行。当第二个ALE有效时,在S4虽仍有读操作,由于CPU封锁住程序计数器PC,使其不增量,因而第二次读操作无效,指令在S6P2时执行完成。

(2)双字节单周期指令(如:ADD A,#data),此时对应ALE的两次读操作都有效,在机器周期的S1P2读第一字节(操作码),CPU对其译码后便知道是双字节指令,即使程序计数器PC加1,并在ALE第二次有效时的S4P2期间读第二字节(操作数),在S6P2结束时完成操作。

2.单字节双周期指令的时序

单字节双周期指令(如:INC DPTR)的时序如图2-21所示。两个机器周期内共进行了4次读操作码操作。由于是单字节指令,CPU自动封锁后面的读操作,故后3次读操作无效,并在第二机器周期的S6P2时完成指令的执行。

图2-21 单字节双周期指令的时序(www.xing528.com)

上面的时序图中还标示了地址锁存允许信号ALE的波形。由图可见,在片外存储器不作存取时,每一个机器周期中ALE信号有效两次,具有稳定的频率。所以,ALE信号是时钟振荡频率的1/6,可以用作外部设备的时钟信号。

3.片外存储器访问指令时序

单片机有两类访问片外存储器的专门指令,一类是读片外ROM指令,另一类是读写片外RAM指令。执行这两类指令的时序与P0~P2、ALE、img等信号有关。

(1)片外ROM进行读操作的时序(执行非MOVX指令的时序)。片外ROM进行读操作的时序如图2-22所示。P0口作为地址/数据复用的双向总线,用于输入指令或输出程序存储器的低8位地址PCL(即PC0~7)。P2口专门用于输出程序存储器的高8位地址PCH(即PC8~15)。P0口分时复用,故首先要将P0口输出的低8位地址PCL锁存在锁存器中,然后P0口再作为数据口。在每个机器周期中,允许地址锁存两次有效,ALE在下降沿时,将P0口的低8位地址PCL锁存在锁存器中。

图2-22 访问片外RAM的双周期指令的时序

(2)外部数据存储器读写时序(执行MOVX指令的时序)。在指令取指令阶段,P2口输出的地址PCH与P0的地址PCL指向程序存储器ROM,并取出指令并分析;在指令执行阶段,判定出指令是MOVX指令后,ALE在该机器周期S5状态锁存的是P0口发出的片外RAM或I/O低8位地址。若执行的是“MOVX A,@DPTR”或“MOVX@DPTR,A”指令,则此地址就是DPL(数据指针低8位);同时在P2口上出现的是DPH(数据指针的高8位)。若执行的是“MOVX A,@Ri”或“MOVX@Ri,A”指令,则Ri的内容为低8位地址,而P2口线上将是P2口锁存器的内容。在同一机器周期中将不再出现有效取指信号,下一个机器周期中ALE的有效锁存信号也不再出现;当img有效时,P0口将读/写数据存储器中的数据。

由图2-22可见,将ALE用作定时脉冲输出时,执行一次MOVX指令就会丢失一个ALE脉冲;只有在执行MOVX指令时的第二个机器周期中,才对数据存储器(或I/O)读/写,地址总线才由数据存储器使用。同时,img在每个机器周期中一次有效,用于选通片外程序存储器,将指令读入片内。

应注意的是,在对片外RAM进行读/写时,ALE信号会出现非周期现象。在第二机器周期无读操作码的操作,而是进行外部数据存储器的寻址和数据选通,所以在S1P2~S2P1间无ALE信号。因此,只有当系统无片外RAM(或I/O)时,此ALE信号以振荡器频率的1/6出现在引脚上,它可用作外部时钟或定时脉冲信号。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈