0150H E0H MOVX A,@DPTR;A←(DPTR)
这是单字节双周期指令,其作用是以数据指针DPTR的内容作为16位地址在ROM中寻址,取数并将此数送入累加器A。设指令执行前DPTR=2000H,A=01H,片外RAM(2000H)=0FH。
MCS-51系列单片机执行读片外RAM中数据指令时的时序关系如图8-19所示。
下面对照图8-19来依次看一下各个状态的情况。
(1)第一阶段 按PC值读片外ROM中MOVX机器码(E0H)情况同MOVC的第一阶段。
1)在S1P2时ALE高电平有效,使74LS373接受P0接口输出的PC低8位的值50H,这个值也就是存着MOVX机器码(E0H)的ROM单元的低8位A0~A7地址。
2)在S2状态时,P2接口也开始送PC高8位地址01H,这是存着MOVX机器码(E0H)的ROM单元高8位地址。而从S2P2起,ALE变为低电平,P0接口地址A0~A7在ALE下降沿被锁存到锁存器74LS373中。
3)在S3状态时,变为低电平有效,选中片外ROM工作,这时P2接口输出的高8位地址01H和地址锁存器输出的低8位地址50H合成为16位地址0150H,按照这个地址选通片外ROM的0150H单元,将该单元中存放的MOVX机器码(E0H)送出到数据总线上,也就是P0接口上。这样,CPU就可经P0接口读入这个机器码,并存放到指令寄存器IR。然后,8051对指令寄存器IR中MOVC机器码译码,产生执行该指令所需的一系列控制信号。(www.xing528.com)
图8-19 MCS-51系列单片机执行读片外RAM中数据指令时的时序关系
(2)第二阶段 对MOVX译码后按DPTR地址值读片外RAM,将数送至A。
1)在S5P1时,CPU把DPTR中的2000H的高8位地址20H送到P2接口,低8位地址00H送P0接口。且ALE在S5P2的下降沿时,将低8位地址A0~A7锁存到锁存器74LS373中。
2)CPU在第二机器周期S1~S3,有效,选中片外RAM工作,把外部RAM中A15~A0地址指定单元的数据放在P0总线上,此后无效时,外部RAM把其自身的数据线悬浮,以不影响P0接口的其他工作。
3)CPU把片外RAM中读出的数0FH经P0接口送CPU累加器A。至此,完成“MOVX A,@DPTR”指令的全部操作过程。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。