MCS-51指令的取指/执行时序
发布时间:2014/6/4 20:26:43 访问次数:1470
单片机执行任何一条指令时都可以分为取指令阶段和执行指令阶段。取指令阶段简称取指阶段,HEF4013BT单片机在这个阶段里可以把程序计数器PC中的地址送到程序存储器,并从中取出需要执行指令的操作码和操作数。指令执行阶段可以对指令操作码进行译码,以产生一系列控制信号完成指令的执行。图3-14给出了MCS-51指令的取指/执行时序。
由图3-14可知,ALE引脚上出现的信号是周期性的,每个机器周期内出现两次高电平,出现时刻为SIP2和S4P2,持续时间为一个状态S。ALE信号每出现一次,CPU就进行一次取指操作,但由于不同指令的字节数和机器周期数不同,因此取指令操作也随指令不同而有小的差异。
按照指令字节数和机器周期数,MCS-51的111条指令可分为单字节单周期指令、单字节双周期指令、单字节四周期指令、双字节单周期指令、双字节双周期指令和三字节双周期指令6类,分别财应于6种基本时序。为了弄清楚这些基本时序的特点,现将几种主要时序作一简述。
1.单字节单周期指令时序
这类指令的指令码只有一个字节(如INCA指令),存放在程序存储器ROM中,机器从取出指令码到完成指令的执行仅需一个机器周期,如图3-14 (a)所示。
图3-14 (a)中,机器在ALE第一次有效(SIP2)时从ROM中读出指令码,把它送到指令寄存器IR,接着开始执行。在执行期间,CPU -方面在ALE第二次有效(S4P2)时封锁PC加“1”,使第二次读操作无效;另一方面在S6P2时完成指令的执行。
2.双字节单周期指令时序
双字节单周期指令时序如图3-14 (b)所示,MCS-51在执行这类指令时需要分两次从ROM中读出指令码。ALE在第一次有效时读出指令操作码,CPU对它译码后便知道是双字节指令,故使程序计数器PC加“1”,并在ALE第二次有效时读出指令的第二字节(也使PC加“1”一次),最后在S6P2时完成指令的执行。
3.单字节双周期指令时序
单字节双周期指令时序如图3-14 (c)所示。这类指令执行时,CPU在第一机器周期Sl期间从程序存储器ROM中读出指令操作码,经译码后便知道是单字节双周期指令,故控制器自动封锁后面的连续三次读操作,并在第二机器周期的S6P2时完成指令的执行。
单片机执行任何一条指令时都可以分为取指令阶段和执行指令阶段。取指令阶段简称取指阶段,HEF4013BT单片机在这个阶段里可以把程序计数器PC中的地址送到程序存储器,并从中取出需要执行指令的操作码和操作数。指令执行阶段可以对指令操作码进行译码,以产生一系列控制信号完成指令的执行。图3-14给出了MCS-51指令的取指/执行时序。
由图3-14可知,ALE引脚上出现的信号是周期性的,每个机器周期内出现两次高电平,出现时刻为SIP2和S4P2,持续时间为一个状态S。ALE信号每出现一次,CPU就进行一次取指操作,但由于不同指令的字节数和机器周期数不同,因此取指令操作也随指令不同而有小的差异。
按照指令字节数和机器周期数,MCS-51的111条指令可分为单字节单周期指令、单字节双周期指令、单字节四周期指令、双字节单周期指令、双字节双周期指令和三字节双周期指令6类,分别财应于6种基本时序。为了弄清楚这些基本时序的特点,现将几种主要时序作一简述。
1.单字节单周期指令时序
这类指令的指令码只有一个字节(如INCA指令),存放在程序存储器ROM中,机器从取出指令码到完成指令的执行仅需一个机器周期,如图3-14 (a)所示。
图3-14 (a)中,机器在ALE第一次有效(SIP2)时从ROM中读出指令码,把它送到指令寄存器IR,接着开始执行。在执行期间,CPU -方面在ALE第二次有效(S4P2)时封锁PC加“1”,使第二次读操作无效;另一方面在S6P2时完成指令的执行。
2.双字节单周期指令时序
双字节单周期指令时序如图3-14 (b)所示,MCS-51在执行这类指令时需要分两次从ROM中读出指令码。ALE在第一次有效时读出指令操作码,CPU对它译码后便知道是双字节指令,故使程序计数器PC加“1”,并在ALE第二次有效时读出指令的第二字节(也使PC加“1”一次),最后在S6P2时完成指令的执行。
3.单字节双周期指令时序
单字节双周期指令时序如图3-14 (c)所示。这类指令执行时,CPU在第一机器周期Sl期间从程序存储器ROM中读出指令操作码,经译码后便知道是单字节双周期指令,故控制器自动封锁后面的连续三次读操作,并在第二机器周期的S6P2时完成指令的执行。
上一篇:MCS-51 单片机的对奇
上一篇:访问片外ROM/RAM的指令时序