导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[求助] keil c51中,MOVX @R0,A 的问题[tif2000]

 *第15665篇: [求助] keil c51中,MOVX @R0,A 的问题

  
楼 主:tif2000 2003年8月21日09:52
 [求助] keil c51中,MOVX @R0,A 的问题
各位大侠请帮忙
      我用keil c51 7。04版,写汇编,用MOVX @R0,A时,外RAM中的内容不变,但用MOVX @DPTR,A则可以 这是为什么,是不是有什么设置没搞对,请各位大侠多多帮忙,多谢了
  
2楼:guest 2003年8月21日11:58
 还与P2口的值有关。
如:
    

还与P2口的值有关。
如:
    mov r0,#00h
    mov p2,#0ah
    mov a,#55h
    movx @r0,a
相当于:
    mov dptr,#0a00h
    mov a,#55h
    movx @dptr,a
  
3楼:demon_3000 2003年8月21日14:54
 MOVX @R0,A
MOVX @DP

MOVX @R0,A
MOVX @DPTR,A
用R0/R1以寄存器间址的方法访问外部RAM(或I/O口)的00H~FFH256个单元的任一个单元
用16位数据存储指针DPTR,以寄存器间址的方法则能访问0000H~FFFFH64KB的片外RAM(或扩展I/O)的任何单元
所以我觉得,你的外部RAM内容是改变了,只不过他们改变的单元不同
  
4楼:tif2000 2003年8月21日17:03
 [求助]
我用的是89C51,P2口作为I/O使用,外RAM只有256字节
  
5楼:jeiboy 2003年8月23日17:21
 demon_3000  已说清楚了.  
demon_3000  已说清楚了.  在摸拟时, 外RAM的地址是64KByte,高8位地址由P2口来决定的.低8位地址由R0来决定的.你用movx @r0,a 的时候.
  
6楼:tif2000 2003年8月21日17:08
 是在模拟时,XDATA中无变化
是在模拟时,XDATA中无变化
  
7楼:guest 2003年8月23日19:06
 想看看你的电路图,你是怎样将P2口做I/
想看看你的电路图,你是怎样将P2口做I/O口使用的
扩展RAM 时,P2口只是做高8位地址口。
你做I/O口?什么意思?
另,想看你的读写外部RAM的程序
  
8楼:tif2000 2003年8月23日19:50
 [quote][b]以下是引用[i]gu
以下是引用guest在2003-8-23 19:06:48的发言:
 扩展RAM 时,P2口只是做高8位地址口。
 你做I/O口?什么意思?


总线方式时,P2口是否做高8位地址线,完全取决于外扩RAM的容量和指令类型,并不是P2口一定要做总线
  
9楼:tif2000 2003年8月23日19:55
 [求助]
在电路板中运行正常,但在keil C51中出现了这种奇怪的问题,是keil C51自身的错误还是我设置中存在问题

>>>>>>对该主题发表你的看法

本主题贴数9,分页: [第1页]


[上一篇主题]:有朋友用到了LYT-EM0系列的MODEM吗?

[下一篇主题]:uclinux中用于各任务间相互通讯的是什么东东?