首页 理论教育C51存储类型详解-单片机基础及应用

C51存储类型详解-单片机基础及应用

【摘要】:2)片外程序存储空间,简称片外ROM。C51的6种存储类型与存储空间的对应关系如表5-2所示。表5-2C51的存储类型与存储空间的对应关系表5-3C51的存储类型及其数据长度和值域当使用存储类型data、bdata定义常量和变量时,C51编译器会将它们定位在片内数据存储空间中,这个存储区根据单片机的型号不同,其长度也不同。整型变量var的存储类型是pdata,C51编译器将该变量定位在片外RAM中,并用指令MOVX@Ri访问。

MCS-51系列单片机物理上有以下4个存储空间:

1)片内程序存储空间,简称片内ROM。

2)片外程序存储空间,简称片外ROM。

3)片内数据存储空间,简称片内RAM。

4)片外数据存储空间,简称片外RAM。

变量的存储类型就是指该变量存放在以上4个存储空间中的哪一个空间。

C51的6种存储类型与存储空间的对应关系如表5-2所示。各种存储类型所占的位数、字节数如表5-3所示。

表5-2 C51的存储类型与存储空间的对应关系

表5-3 C51的存储类型及其数据长度和值域

当使用存储类型data、bdata定义常量和变量时,C51编译器会将它们定位在片内数据存储空间(片内RAM)中,这个存储区根据单片机的型号不同,其长度也不同。这个存储区不是很大,但它能快速收发各种数据,是存放临时性传递变量或使用频率较高的变量的理想场所。

当使用code存储类型定义数据时,C51编译器会将其定义在程序存储区(ROM)中,这里存放着指令代码和其他非易变信息,如常量表格数据等。

当使用xdata存储类型定义常量、变量时,C51编译器会将其定义在外部数据存储空间(片外RAM),该空间的最大可寻址范围为64KB。

pdata存储类型属于xdata类型,它的一个字节(高8位)由P2口提供,用于外部I/O操作。(www.chuimin.cn)

idata存储类型可以间接寻址数据存储器

访问片内数据存储器(data,bdata,idata)比访问片外数据存储器相对要快些,因此可将经常使用的变量定义于片内RAM,而将规模较大或不常使用的数据定义在片外RAM中。

带存储类型变量的定义的一般格式为

数据类型 存储类型 变量名

C51允许在定义变量类型之前先指定存储类型,如

存储类型 数据类型 变量名

建议使用前一种方法,即先定义变量的数据类型,后定义变量的存储类型。

例如,带存储类型的变量定义

字符变量char var1被定义为data存储类型,C51编译器将该变量定位在片内RAM中(地址:00H~7FH)。

位变量flags被定义为bdata存储类型,C51编译器将该变量定位在片内RAM中的位寻址区(地址:20H~2FH)。

浮点变量x,y,z的存储类型是idata,C51编译器将该变量定位在片内RAM中,并只能使用间接寻址的方法进行访问。

整型变量var的存储类型是pdata,C51编译器将该变量定位在片外RAM中,并用指令MOVX@Ri访问。

无符号字符二维数组变量的存储类型是xdata,C51编译器将该变量定位在片外RAM中。