访问电脑版页面

导航:老古开发网手机版51单片机51单片机Keil C51编程

A51 2.1.3 菲利浦80C51MX

导读:
关键字:

菲利浦80C51MX提供了统一的16MB地址空间。新的指令最大可以存取16MB的内存,其中CODE和XDATA空间被配置到单一的地址空间中。堆栈指针可以被设置为16位,可以在EDATA内存类型中寻址片内RAM。下表所示为对80C51MX架构编程用到的内存类型。当我们使用AX51宏汇编器和LX51连接/定位器时,这些内存类型都可用。

内存类型 地址范围 说明罗亩的笔记
DATA 7F:0000 - 7F:007F  可直接寻址的片内RAM
BIT 7F:0020 - 7F:002F  可位寻址的RAM;使用位指令访问
IDATA 7F:0000 - 7F:FFFF  间接寻址的片内RAM;可以使用@R0或@R1访问
EDATA 7F:0000 - 7F:FFFF 完全片内RAM;可以用作堆栈空间,也可用@PR0或PR1存取。
XDATA X:0000 - X:FFFF  64KB RAM(读/写访问)。使用MOVX指令访问。
HDATA X:0000 - X: FFFFFF 8MB RAM(读/写访问)。使用MOVX指令和扩展的DPTR访问。
CODE C:0000 - C:FFFF  与传统8051兼容的64KB ROM(只读)。用于存储常量或可执行代码。
ECODE C:0000 - C:FFFFFF 8MB ROM(只读)。
HCONST 80:0000 - 80:FFFF 8MB ROM。同ECODE,由CX51编译器用于存储常量。
BANK0
...BANK31
80:0000 - 0xBF:FFFF
B0:0000 - B63:FFFF
由CX51编译器把程序存储器空间扩展到超过64KB。罗亩的笔记


注意
冒号只是用来提高可读性。地址在工具软件中输入时作为数字,不带冒号。

存储空间的类型前缀D:I:X:C:B0:..B31:不能用于Ax51汇编器级。列出存储类型的前缀只是为了更好地理解。Lx51连接/定位器和一些调试工具,例如μVersion2调试器,使用存储类型前缀来标志地址的存储空间类型。

80C51MX的存储器布局

菲利浦80C51MX的存储器布局如下图所示,提供了一个统一的内存地图,在单一的16MB地址区域内包含了所有的存储器类型。

80C51MX提供了新型的CPU指令,采用一种新的寻址模式,叫做通用指针寻址(Universal Pointer Addressing)。共有两个通用指针寄存器PR0和PR1。PR0由寄存器R1、R2和R3构成。PR1由R5、R6和R7构成。这些新型的通用指针寄存器持有24位地址,与EMOV指令一起使用,可以对整个16MB存储空间寻址。

来源:   作者:  2006/9/25 16:50:53
栏目: [ 51单片机Keil C51编程]

相关阅读

几种码制转换 BCD TO HEX,HEX TO BCD ,BIN TO HEX

让Ultra Edit和Keil结合的更紧密

在Keil c51调试中,如何查看外部存储器XDATA?

在KEIL C51上仿真完了,怎样生成HEX文件去烧写??

Keil C51中如何实现代码优化?

C51中 INT 转换为 2个CHAR?

Keil C51编译错误总结

proteus与keil的完美结合(没有开发板,让你也学的爽!)

C51 的重入问题 WARNING L15: MULTIPLE CALL TO SEGMENT(转)

[转载]C51中断处理过程

那位大虾能告诉我C51 的printf()函数有什么用?

keil 7.0编译出现:error C316: unterminated conditionals

51单片机CO2检测显示程序解析

在Keil c51调试中,如何查看特殊寄存器?

volatile的用法

Keil C51单片机中变量的使用方法解析

在Keil c51调试中,如何查看全部256bytes的内部RAM?

MCS51单片机程序设计时堆栈的计算方法解析

SBUF=0x65,c=SBUF结果为c=0???

keil C51 怎样把修改的startup.a51 加到工程文件中