大学校园网

大学生活网 > 大学生学习 > 电气工程

keil C51存储区的分类详解

keilC51存储区域分为程序存储区和数据存储区2大类型。

一.程序存储区(PragramArea):

欲将声明的数据存放在程序存储区域,可以使用关键字“code”说明。

例unsignedcharcodei=10;则表示i为无符号字符型数据存放区域为程序存储区。

二.数据存储区(DataMemory):

数据存储区域分为内部数据存储区、外部数据存储区域和特殊功能寄存器寻址区。

1.内部数据存储区域(InternalDataMemory):可以使关键字"data、iadta、bdata"做相应说明。

data:直接寻址区,声明的数据存储范围为内部RAM低128字节0X00~0X7F。

例unsignedchardatai=10;则表示i为无符号字符型数据存放区域为数据存储区域(RAM)的低128字节范围内。

idata:间接寻址区,声明的数据存储范围为整个内部RAM区0X00~0XFF。

例unsignedcharidatai=10;则表示i为无符号字符型数据存放区域为数据存储区域(RAM)内。

bdata:可位寻址区,寻址范围为0X20~0X2F。

2.外部数据存储区(ExternalDataMemory):可以使用关键字"pdata、xdata"进行说明。

pdata:主要用于紧凑模式,能访问1页(256字节)的外部RAM,即在访问使用,pdata定义的数据时,不会影响P2口的输出电平(在访问某些自身内部扩展的外部RAM时本身就不会影响I/O端口)。

例unsignedcharpdatai;则表示i为无符号字符型数据存放区域为外部数据存储区域(RAM)内(只能在一页范围内)具体操作哪一页,可由其他i/o口设定。

xdata:可访问64k的外部数据存储区,地址范围0X0000~0XFFFF,同pdata一样在访问芯片自身内部扩展的RAM时也不会影响I/O端口。

例unsignedcharpdatai;则表示i为无符号字符型数据存放区域为外部数据存储区(RAM)。

3.特殊功能寄存器寻址区域(SpeciacFunctionRegisterMemory)-SFR:8051提供128字节的SFR寻址区,该区域可以字节寻址,字寻址,能被8整除的地址单元还可以位寻址。该区域用于控制定时器、计数器、串口等外围接口。使用时可用关键字“sfr、sfr16、sbit”做相应的声明。

例字节寻址sfrP0=0x80;为P0口地址为80H,“=”后0X00~0XFF之间的常数。

字寻址sfr16T2=0XCC;指定Timer2口地址T2L=0XCCT2H=0XCD。

位寻址sbitEA=0xAF;指定第0xAF位为EA,即中断允许