读外部RAM指令时序
发布时间:2014/6/4 20:31:55 访问次数:3151
设片外RAM的2000H单元中有一数x,且DPTR中已存放有该数地址2000H,则CPU执行如下指令HEF4021BT便可从片外RAM中取出x送到累加器A中:
上述指令执行时的时序如图3-16所示。
指令的详细执行过程如下:
(1) ALE在第一次有效期间,用于从片外ROM中读取MOVX指令的指令码。即PC中高8位地址送到P2口,PC中低8位地址送到PO口,并在ALE第一个下降沿将PO口低8位地址锁存于片外地址锁存器74LS3 73。
(2) CPU在PSEN有效低电平(S3和S4Pl时)作用下,把从片外ROM读得的指令码经PO口送入指令寄存器IR,译码后产生一系列控制信号,控制以下各步骤昀完成。
(3) CPU在S5Pl时把DPTR中的高8位地址20H送到P2口,并把低8位地址OOH送到PO口,且ALE在它的第2个下降沿时锁存PO口上的地址。
(4) CPU在第二机器周期的S1~S3期间使RD有效,选中片外RAM工作,以读出3000H单元中的数x。
(5) CPU把外部RAM中读出的数x经PO口送到CPU的累加器A中,以终止指令的执行。上述过程表明,执行“MOVX A,@DPTR”指令也可以分为两个阶段。第一阶段是根据PC中的地址读片外ROM中的指令码EOH,第二阶段是根据DPTR中的地址读片外RAM,并把读出的数x送往累加器A。在读片外RAM时,PSEN被封锁为高电平,RD有效,用作片外RAM的选通信号。这就是说,MCS-51执行“MOVXA,@DPTR”指令时1次访问的是片外ROM,以便从中存取MOVX A,@DPTR的指令码EOH;第2次访问的是片外RAM,以便从中读出由DPTR中的地址所指片外RAM单元中的操作数。
设片外RAM的2000H单元中有一数x,且DPTR中已存放有该数地址2000H,则CPU执行如下指令HEF4021BT便可从片外RAM中取出x送到累加器A中:
上述指令执行时的时序如图3-16所示。
指令的详细执行过程如下:
(1) ALE在第一次有效期间,用于从片外ROM中读取MOVX指令的指令码。即PC中高8位地址送到P2口,PC中低8位地址送到PO口,并在ALE第一个下降沿将PO口低8位地址锁存于片外地址锁存器74LS3 73。
(2) CPU在PSEN有效低电平(S3和S4Pl时)作用下,把从片外ROM读得的指令码经PO口送入指令寄存器IR,译码后产生一系列控制信号,控制以下各步骤昀完成。
(3) CPU在S5Pl时把DPTR中的高8位地址20H送到P2口,并把低8位地址OOH送到PO口,且ALE在它的第2个下降沿时锁存PO口上的地址。
(4) CPU在第二机器周期的S1~S3期间使RD有效,选中片外RAM工作,以读出3000H单元中的数x。
(5) CPU把外部RAM中读出的数x经PO口送到CPU的累加器A中,以终止指令的执行。上述过程表明,执行“MOVX A,@DPTR”指令也可以分为两个阶段。第一阶段是根据PC中的地址读片外ROM中的指令码EOH,第二阶段是根据DPTR中的地址读片外RAM,并把读出的数x送往累加器A。在读片外RAM时,PSEN被封锁为高电平,RD有效,用作片外RAM的选通信号。这就是说,MCS-51执行“MOVXA,@DPTR”指令时1次访问的是片外ROM,以便从中存取MOVX A,@DPTR的指令码EOH;第2次访问的是片外RAM,以便从中读出由DPTR中的地址所指片外RAM单元中的操作数。
上一篇:访问片外ROM/RAM的指令时序