打印

关于DPTR的问题

[复制链接]
7763|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
idly|  楼主 | 2010-3-9 00:16 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
ov, hm, AC, AI, RAM
对于DPTR的理解,就是用它来寻址片外RAM/程序存储器;今看到有一些C语言经过KEIL转汇编后有看见如MOV DPTR,#0EH      MOVX A,@DPTR的语句
疑问1:(51单片机、EA=1)DPTR的赋值不是应该大于0x0FFF的吗?
疑问2:假设上面的赋值可以(等待帮助解释-_-?);我写了个下面的程序;
P1接LED灯,I/O低电平亮

直接如:MOV P1,#0F0H灯是会亮的;
ORG 0000H

MAIN:  MOV        A,#0F0H
          MOV        DPTR,#0050H
          MOVX      @DPTR,A
          CLR         A
          MOVX      A,@DPTR
          MOV        P1,A
         ;MOV       C,ACC.0
         ;MOV       P1.0,C
          SJMP MAIN
          END
灯就是不亮?

相关帖子

沙发
杨工| | 2010-3-9 02:47 | 只看该作者
片外RAM和片内RAM是不同的地址空间,所以片外RAM地址从0开始。
我怀疑你没有接好片外RAM
MOVX      A,@DPTR  //导致A=0FFH
否则灯应该亮的。

使用特权

评论回复
板凳
原野之狼| | 2010-3-9 08:37 | 只看该作者
片外地址从0x0000开始
翻一下单片机关于片外扩展的章节
你的程序有点奇怪 不知道你要实现什么

使用特权

评论回复
地板
idly|  楼主 | 2010-3-9 08:44 | 只看该作者
我的目的是先验证一下:我没有外接外部RAM,但是这样的语句是否可以实现。也就是感性的看看结果。因为之前看过的程序

使用特权

评论回复
5
idly|  楼主 | 2010-3-9 08:45 | 只看该作者
我的目的是先验证一下:我没有外接外部RAM,但是这样的语句是否可以实现。也就是感性的看看结果。

使用特权

评论回复
6
原野之狼| | 2010-3-9 08:52 | 只看该作者
那查看下板子就差不多了呀

使用特权

评论回复
7
idly|  楼主 | 2010-3-9 08:56 | 只看该作者
假设没有外接RAM,这样的语句是无法实现的对吧?

使用特权

评论回复
8
冷漠| | 2010-3-9 10:10 | 只看该作者
谁说灯不亮?没有外部XDATA,一样做实验。


使用特权

评论回复
9
idly|  楼主 | 2010-3-9 10:15 | 只看该作者
但是我在板上跑,灯就是没有亮起来

使用特权

评论回复
10
idly|  楼主 | 2010-3-9 10:20 | 只看该作者
我的疑问就是,当没有外接RAM的时候,使用DPTR是否会使用内部RAM;如上面冷漠的调试结果。查看对应的寄存器。都会有相应的变化。但是在板上就是没有亮LED灯。。。怎么回事呢?

使用特权

评论回复
11
dwq175| | 2010-3-9 10:38 | 只看该作者
内部RAM是使用直接或者R0,R1访问的。
如果MCU有内部XDATA,需要打开XDATA,DPTR就可以访问了。

使用特权

评论回复
12
冷漠| | 2010-3-9 10:51 | 只看该作者
这不是很简单的道理吗:如果你没有外部XDATA,却仍然使用了MOVX  A,@DPTR 指令,那么由于数据总线悬空,读取的数据是0xFF,——正如2楼杨工所说,所以灯不会亮。

使用特权

评论回复
13
idly|  楼主 | 2010-3-9 11:04 | 只看该作者
但是用KEIL调试的时候没有外部XDATA,却仍然使用了MOVX  A,@DPTR 指令;A还是有值F0H

使用特权

评论回复
14
idly|  楼主 | 2010-3-9 11:05 | 只看该作者
如你上面的调试面板所示:借鉴你的图了。。。。。呵

使用特权

评论回复
15
冷漠| | 2010-3-9 11:30 | 只看该作者
Keil调试是软件模拟—simulator。
谁说Keil调试时没有外部XDATA?Memory窗口Address栏不是分明选择的X:0000吗?

你还可以选择C:0000/d:00/P:0000看看有什么不同。

要让板上有XDATA,可以选用那些带内部XDATA的芯片,像89C51RD2之类。

使用特权

评论回复
16
idly|  楼主 | 2010-3-9 11:56 | 只看该作者
明白咯。TKS

使用特权

评论回复
17
peigang| | 2010-3-9 20:38 | 只看该作者
没有片外RAM
有可能跑飞了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

20

帖子

0

粉丝