打印

关于MOVX @R0,A的问题

[复制链接]
9860|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ov, vr, RAM, hm, ST
关于MOVX @R0,A的问题

请较各位一下MOVX @R0,A的问题

MOVX

请较各位一下面这段代码,我在keil,WAVE6000,TKStudio中“软件仿真”但都得不到正确的效果,是怎么回事啊,(就是将xRAM_45,46,47,48 都写入0x55)。
mov    A,#55h
mov     R0, #45h ;  
movx    @R0, A         
mov     R0, #46h ;  
movx    @R0, A         
mov     R0, #47h ;
movx    @R0, A         
mov     R0, #48h ;
movx    @R0, A         

仿真的结果是看xRAM的值都为0,根本没写进去呀!

谢谢各位了。




这个是另外一张贴,但是我用stc的单片机验证过后,发现结果与那贴完全不一样。
mov    A,#55h
mov     R0, #45h ;  
movx    @R0, A         
mov     R0, #46h ;  
movx    @R0, A         
mov     R0, #47h ;
movx    @R0, A         
mov     R0, #48h ;
movx    @R0, A
就是说执行后读外部ram地址0x0045,0x0046,0x0047,0x0048都是0x55.

希望哪位大虾发表下意见,看是什么问题

相关帖子

沙发
jack821119|  楼主 | 2010-10-10 11:09 | 只看该作者
请较各位一下MOVX @R0,A的问题

MOVX

请较各位一下面这段代码,我在keil,WAVE6000,TKStudio中“软件仿真”但都得不到正确的效果,是怎么回事啊,(就是将xRAM_45,46,47,48 都写入0x55)。
mov    A,#55h
mov     R0, #45h ;  
movx    @R0, A         
mov     R0, #46h ;  
movx    @R0, A         
mov     R0, #47h ;
movx    @R0, A         
mov     R0, #48h ;
movx    @R0, A         

仿真的结果是看xRAM的值都为0,根本没写进去呀!

谢谢各位了。





忘记说了,这部分就是那张贴的内容




用stc的单片机验证过后,发现结果与那贴完全不一样。
mov    A,#55h
mov     R0, #45h ;  
movx    @R0, A         
mov     R0, #46h ;  
movx    @R0, A         
mov     R0, #47h ;
movx    @R0, A         
mov     R0, #48h ;
movx    @R0, A
就是说执行后读外部ram地址0x0045,0x0046,0x0047,0x0048都是0x55.


这个是本人实验的结果

使用特权

评论回复
板凳
ayb_ice| | 2010-10-10 11:43 | 只看该作者
还要考虑页的问题

使用特权

评论回复
地板
jack821119|  楼主 | 2010-10-10 11:47 | 只看该作者
mov P2,#0fh
movx a,@r0

movx a,@r0结果都是一样的,这个就表明跟页无关。
我希望回复贴的每一个人都先自己验证下,别只说理论

使用特权

评论回复
5
流行音乐| | 2010-10-10 13:47 | 只看该作者
你的仿真器可能不支持显示外部RAM的值。你写几个指令将外部RAM读入到寄存器中,然后用仿真器看寄存器的值。
例如:
  mov r0,#47h  //被写入的地址
  mov a,#33h   //写入的值
movx @r0,a    //将a写到外部RAM
  clr a               //这句可省略
  movx a,@r0   //将外部RAM读入到寄存器a中
  nop               //在这里设断点,查看寄存器a的值。

使用特权

评论回复
6
流行音乐| | 2010-10-10 13:49 | 只看该作者
还有就是,软件仿真有可能得不到正确结果,这是仿真软件的问题。

使用特权

评论回复
7
jack821119|  楼主 | 2010-10-10 14:02 | 只看该作者
我不是软件仿真验证的,是实际出来的效果

使用特权

评论回复
8
刘前辈| | 2010-10-10 15:06 | 只看该作者
少写了一句:
MOV  P2, #0  ;  确定第0页地址输出;

因为你要写的是外部RAM 0x0045……R0只能确定低8位地址,高8位由P2确定。
或者写为:
MOV DPTR,#0045H
MOV A,#55H
MOVX  @DPTR,A

就不需要关心P2的值了。

使用特权

评论回复
9
singleywy| | 2010-10-10 15:59 | 只看该作者
3# ayb_ice
恩,对P2,涉及到页的问题

使用特权

评论回复
10
jack821119|  楼主 | 2010-10-10 16:22 | 只看该作者
MOV DPTR,#0045H
MOV A,#55H
MOVX  @DPTR,A

那这样的话是不是就会改变P2的值,为什么在仿真的状态下却看不到

使用特权

评论回复
11
刘前辈| | 2010-10-10 20:16 | 只看该作者
谁说看不到?

使用特权

评论回复
12
不亦心| | 2010-10-10 20:48 | 只看该作者
LZ可否讲讲你用STC实测的时候,是怎么测出来的
具体如何操作的,把过程描述一下。。。。

使用特权

评论回复
13
xuhai20092009| | 2010-10-11 08:33 | 只看该作者
学习了,8楼的应该对的

使用特权

评论回复
14
jack821119|  楼主 | 2010-10-11 09:26 | 只看该作者
11楼的兄弟误会我的意思了。我是说执行
MOV DPTR,#0045H
MOV A,#55H
MOVX  @DPTR,A
后,P2端口怎么没变化的

使用特权

评论回复
15
HWM| | 2010-10-11 09:34 | 只看该作者
to 14L:
执行“MOVX  @DPTR,A”中,P2会暂时输出DPTR的高八位。执行完后,恢复原状。故一般不易被察觉,硬件是使用ALE将其由外寄存器锁存。

使用特权

评论回复
16
jack821119|  楼主 | 2010-10-11 10:00 | 只看该作者
谢谢了,明白,还有
用stc的单片机验证过后,发现结果与那贴完全不一样。
mov    A,#55h
mov     R0, #45h ;  
movx    @R0, A         
mov     R0, #46h ;  
movx    @R0, A         
mov     R0, #47h ;
movx    @R0, A         
mov     R0, #48h ;
movx    @R0, A
就是说执行后读外部ram地址0x0045,0x0046,0x0047,0x0048都是0x55.

这个问题是由于stc内部外扩的ram引起的,把它屏蔽掉就不是0x55了,多谢大家的意见啊。本人是用stc12c5a60s2单片机测试的。

使用特权

评论回复
17
刘前辈| | 2010-10-11 10:55 | 只看该作者
呀!“老九不能走!”  恳请LZ能不能教教咱你是如何操作stc12内部XRAM的?也就是说:
如何写、读内部Xram地址0x0045,0x0046,0x0047,0x0048 都是0x55.——读写内部XRAM前256字节是不影响P2的,前期程序还需要加什么语句?如何屏蔽XRAM?

先谢了。

使用特权

评论回复
18
jack821119|  楼主 | 2010-10-11 11:09 | 只看该作者
AUXR EQU 8EH org 0000h ljmp start ORG 0100H start: mov TMOD,#21h mov SCON,#50h //mov AUXR,#02h setb EA SETB ES MOV TH1,#0FAh mov TL1,#0FAh setb TR1 //mov dptr,#2045h //mov a,#04h //movx @dptr,a //mov P2,#00h //mov P2,#7fh mov A,#55h mov R0, #45h movx @R0, A mov R0, #46h movx @R0, A mov R0, #47h movx @R0, A mov R0, #48h movx @R0, A 我一开始是按照这程序来测试的,但后来发现根本没有将数据写进去到0xff45,0xff46,0xff47,0xff48, 而事实上数据却写进去了0x0045,0x0046,0x0047,0x0048 . 因为这时候是使用的是内部外扩的xram, 而movx @r0,a这指令只能访问到 00-ffh单元,这个pdf上有说明。加上mov AUXR,#02h后,就禁止了访问内部的扩展ram.

使用特权

评论回复
19
刘前辈| | 2010-10-11 17:26 | 只看该作者
多谢LZ 经验共享,收藏了。

使用特权

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

本版积分规则

24

主题

206

帖子

3

粉丝