单片机的I/O口和外部RAM统一编址,请问如何统一编址???

来源:百度知道 编辑:UC知道 时间:2024/05/31 00:40:42
谢谢啊!!! 在XBYTE[]中括号里的 地址如何确定?

一般来说,片内外统一编址是对程序存储器来说的,因为统一用PC计数。至于你说的“单片机的I/O口和外部RAM统一编址”意思是MOVX送出的地址是由p2和p0口上的数据决定的。

在XBYTE[]中括号里的 地址如何确定?
答:要按照电路实际情况决定,XBYTE 的作用,可以用来定义绝对地址,即P0口和P2口共同决定的地址。
如 XBYTE[0x1234] = 0x35;
则等价于
mov dptr,#1234h
mov @dptr,#35h 。
在电路设计时,地址的分配不可能总是连续的,因为各种选通器件的电路不同,将导致出现离散的地址,这是就要用到XBYTE来决定绝对地址了。比如p2决定外部地址的高八位,它的一些引脚是选通器件的,所以对外部器件而言的地址跟单片机内部的地址是不一样的,这要根据经验来决定电路设计和绝对地址的分配。
这就是使用 XBYTE的一个原因。

接法书上有介绍 只是我们编程的时候没必要考虑它的地址 也就像统一编址一样 只要一个MOVX 指令就可以实现了 要定义地址的话 可以直接在128字节后加上相应地址 它和ROM里的地址是不冲突的 ROM里的地址和RAM里的地址是相互独立的