您的位置 首页 资料

MCS-51单片机地址指针的使用

MCS-51单片机地址指针的应用-其中DPTR为16位地址寄存器,地址高8位存于DPH,地址低8位存于DPL;Ri(I=0,1)是8位寄存器,作为地址指针时仅存低8位地址。

MCS-51执行上述指令时分为两个阶段:首先,是从外接程序存储器中取出指令代码,并进行分析。然后,执行对外接RAM的数据读/写操作。在这两个阶段,P0口、P1口上的地址选通是有区别的。

MCS-51单片机外部RAM的地址空间为64K,地址总线为16位,拜访外接RAM可履行如下4条指令:

MOVX A,@DPTR

MOVX @DPTR,A

MOVX A,@RI

MOVX @RI,A

其间DPTR为16位地址寄存器,地址高8位存于DPH,地址低8位存于DPL;Ri(I=0,1)是8位寄存器,作为地址指针时仅存低8位地址。

MCS-51履行上述指令时分为两个阶段:首要,是从外接程序存储器中取出指令代码,并进行剖析。然后,履行对外接RAM的数据读/写操作。在这两个阶段,P0口、P1口上的地址选通是有差异的。

履行“MOVX A,@DPTR”和“MOVX @DPTR,A”指令时,在读指令代码阶段,由程序计数器(PC)供给A0~A15,低8位地址安稳后,在单片机地址锁存信号ALE效果下,P0.X口开端读入MOVX指令代码。在对外接RAM读写阶段,其进程与前述相同,只不过低8位地址不是来自程序计数器的低8位PCL,而是来自地址寄存器的高8位DPH;高8位地址不是来自程序计数器的高8位PCH,而是来自地址寄存器的高8位PCH。当DPL安稳后,由地址锁存器锁存,P0.X口上呈现的是读/写外接RAM的数据信息。

MCS-51单片机地址指针的运用

履行“MOVX A,@Ri”和“MOVX @RI,A”指令时,取指阶段舆“movx a, @ dptr”和“movx @ dptr, a”进程完全相同。但在履行对外部RAM的读/写阶段,低8位地址来自Ri;高8位地址来自P2口锁存器(P2 SFR)。

由上所述,用R0和R1对外接RAM的直接寻址,可看作是一种页面寻址,由P2锁存器(P2 SFR)的当时值决议了当时页面地址。MCS-51单片机在复位时,P2 SFR为FFH,若程序运转中没有改动P2 SFR中的值,R0和R1只能对FF00H~FFFFH规模的外接RAM进行直接寻址,即FF页面寻址。因为用指令改动P2 SFR的值并不影响程序正常运转,因而能够用R0和R1对64K外接RAM空间的恣意一个单元进行直接寻址。这样就使MCS-51单片机外接RAM的地址指针由1个变成3个,大大方便了程序设计。

下面以数据块传送子程序为例,阐明R0和R1对外接RAM直接寻址的程序设计办法。假定数据块的源首地址为1000H,意图首地址为3045H,数据块长度为50H,程序清单如下所示:

程序1—用DPTR做地址指针

MOV R2,#00H

MOV R3,#10H

MOV R4,45H

MOV R5,#30H

MOV R7,#50H

LOOP: MOV DPL,R2

MOV DPH,R3

MOVX A,@DPTR

INC DPTR

MOV R2,DPL

MOV R3,DPH

MOV DPL,R4

MOV DPH,R5

MOVX @DPTR,A

INC DPTR

MOV R4,DPL

MOV R5,DPH

DJNZ R7,LOOP

RET

程序2—运用R0和R1做地址指针

MOV DPTR,#1000H

MOV P2,#30H

MOV R0,#45H

MOV R7,#50H

LOOP: MOVX A,@DPTR

MOVX @R0,A

INC DPTR

INC R0

DJNZ R7,LOOP

RET

程序1用了19条指令,程序2用了10条指令。恰当运用R0和R1地址指针,能够大大提高程序运转功率。

在运用R0和R1间址的外接RAM数据传送操作中,一般运用“MOV P2,#ADDR”和“MOV A,@RI”方法,其间#ADDR为高8位地址。在这两条指令之间不该刺进有关改动P2 SFR值的指令。对P2口的读有两种状况:一种是读P2锁存器,如履行“MOV A,P2”指令,这并不会改动P2 SFR中的内容;另一种是读P2锁存器,如履行“INC P2”指令,该指令中的P2既是源操作数,又是意图操作数,一般称为“读—修正—写”指令,即从P2 SFR中读出内容,修正后又写入P2 SFR中。

在中止服务程序中,假如要用到地址指针,有必要在维护现场程序段维护运用的地址指针,即运用“PUSH P2”和“PUSH Ri”指令。在中止回来之前又有必要在康复现场程序段康复运用过的地址指针,即用“POP RI”和“POP P2”指令。

当单片机进入等候方法或节电方法,且又用硬件复位回来到本来的正常操作状况时,因为复位对P2 SFR写入FFH,改动了页地址。因而,在单片机进入等候方法或节电方法之前,也有必要先将P2 SFR内容进行维护。当状况康复进入原正常操作程序入口处时,再康复P2 SFR的内容。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/345148.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部